|
| 1 | +# 股票分析智能助手 - Stock Analysis |
| 2 | + |
| 3 | +## 概述 |
| 4 | + |
| 5 | +这是一个基于火山引擎AgentKit构建的具备股票分析功能的智能助手。 |
| 6 | + |
| 7 | +## 核心功能 |
| 8 | + |
| 9 | +- 功能 1:股票数据分析 |
| 10 | +- 功能 2:股票走势预测 |
| 11 | +- 功能 3:股票投资建议 |
| 12 | + |
| 13 | +## Agent 能力 |
| 14 | + |
| 15 | +```text |
| 16 | +用户消息 |
| 17 | + ↓ |
| 18 | +AgentKit 运行时 |
| 19 | + ↓ |
| 20 | +Stock Analysis Agent |
| 21 | + ├── 网页信息工具 (web_search) |
| 22 | + ├── 代码执行工具 (run_code) |
| 23 | +``` |
| 24 | + |
| 25 | +## 目录结构说明 |
| 26 | + |
| 27 | +```bash |
| 28 | +stock_analysis/ |
| 29 | +├── agent.py # Agent |
| 30 | +├── client.py # 测试客户端(SSE 流式调用) |
| 31 | +├── requirements.txt # Python 依赖列表 (agentkit部署时需要指定依赖文件) |
| 32 | +├── pyproject.toml # 项目配置(uv 依赖管理) |
| 33 | +├── agentkit.yaml # AgentKit 部署配置(运行agentkit config之后会自动生成) |
| 34 | +├── Dockerfile # Docker 镜像构建文件(运行agentkit config之后会自动生成) |
| 35 | +└── README.md # 项目说明文档 |
| 36 | +``` |
| 37 | + |
| 38 | +## 本地运行 |
| 39 | + |
| 40 | +### 前置准备 |
| 41 | + |
| 42 | +**1. 开通火山方舟模型服务:** |
| 43 | + |
| 44 | +- 访问 [火山方舟控制台](https://exp.volcengine.com/ark?mode=chat) |
| 45 | +- 开通模型服务 |
| 46 | + |
| 47 | +**2. 获取火山引擎访问凭证:** |
| 48 | + |
| 49 | +- 参考 [用户指南](https://www.volcengine.com/docs/6291/65568?lang=zh) 获取 AK/SK |
| 50 | + |
| 51 | +**3. 开通`web_search`工具权限:** |
| 52 | + |
| 53 | +- 使用[`web_search`工具](https://www.volcengine.com/docs/85508/1650263),需提前开通并创建联网问答Agent[相应权限](https://www.volcengine.com/docs/85508/1544858) |
| 54 | + |
| 55 | +**4. 创建 AgentKit 工具:** |
| 56 | + |
| 57 | +- 工具类型选择:预置工具 -> AIO Sandbox |
| 58 | + |
| 59 | +### 依赖安装 |
| 60 | + |
| 61 | +#### 1. 安装 uv 包管理器 |
| 62 | + |
| 63 | +```bash |
| 64 | +# macOS / Linux(官方安装脚本) |
| 65 | +curl -LsSf https://astral.sh/uv/install.sh | sh |
| 66 | + |
| 67 | +# 或使用 Homebrew(macOS) |
| 68 | +brew install uv |
| 69 | +``` |
| 70 | + |
| 71 | +#### 2. 初始化项目依赖 |
| 72 | + |
| 73 | +```bash |
| 74 | +# 进入项目目录 |
| 75 | +cd 02-use-cases/stock_analysis |
| 76 | +``` |
| 77 | + |
| 78 | +您可以通过 `pip` 工具来安装本项目依赖: |
| 79 | + |
| 80 | +```bash |
| 81 | +pip install -r requirements.txt |
| 82 | +``` |
| 83 | + |
| 84 | +或者使用 `uv` 工具来安装本项目依赖: |
| 85 | + |
| 86 | +```bash |
| 87 | +# 如果没有 `uv` 虚拟环境,可以使用命令先创建一个虚拟环境 |
| 88 | +uv venv --python 3.12 |
| 89 | + |
| 90 | +# 使用 `pyproject.toml` 管理依赖 |
| 91 | +uv sync --index-url https://pypi.tuna.tsinghua.edu.cn/simple |
| 92 | + |
| 93 | +# 使用 `requirements.txt` 管理依赖 |
| 94 | +uv pip install -r requirements.txt |
| 95 | + |
| 96 | +# 激活虚拟环境 |
| 97 | +source .venv/bin/activate |
| 98 | +``` |
| 99 | + |
| 100 | +### 环境准备 |
| 101 | + |
| 102 | +```bash |
| 103 | +# 火山方舟模型名称 |
| 104 | +export MODEL_AGENT_NAME=doubao-seed-1-6-251015 |
| 105 | + |
| 106 | +# 火山引擎访问凭证(必需) |
| 107 | +export VOLCENGINE_ACCESS_KEY=<Your Access Key> |
| 108 | +export VOLCENGINE_SECRET_KEY=<Your Secret Key> |
| 109 | + |
| 110 | +export AGENTKIT_TOOL_ID=<Your Tool ID> |
| 111 | +``` |
| 112 | + |
| 113 | +### 调试方法 |
| 114 | + |
| 115 | +#### 单线程运行:使用 VeADK Web 调试界面,调试 agent.py |
| 116 | + |
| 117 | +```bash |
| 118 | +# 进入 02-use-cases 目录 |
| 119 | +cd agentkit-samples/02-use-cases |
| 120 | + |
| 121 | +# 启动 VeADK Web 界面 |
| 122 | +veadk web --port 8080 |
| 123 | + |
| 124 | +# 在浏览器访问:http://127.0.0.1:8080 |
| 125 | +``` |
| 126 | + |
| 127 | +Web 界面提供图形化对话测试环境,支持实时查看消息流和调试信息。 |
| 128 | + |
| 129 | +此外,还可以使用命令行测试,调试 agent.py。 |
| 130 | + |
| 131 | +```bash |
| 132 | +cd agentkit-samples/02-use-cases/stock_analysis |
| 133 | + |
| 134 | +# 启动 Agent 服务 |
| 135 | +uv run agent.py |
| 136 | +# 服务将监听 http://0.0.0.0:8000 |
| 137 | + |
| 138 | +# 新开终端,运行测试客户端 |
| 139 | +# 需要编辑 client.py,将其中的第 14 行和第 15 行的 base_url 和 api_key 修改为 agentkit.yaml 中生成的 runtime_endpoint 和 runtime_apikey 字段 |
| 140 | +uv run client.py |
| 141 | +``` |
| 142 | + |
| 143 | +## AgentKit 部署 |
| 144 | + |
| 145 | +### 前置准备 |
| 146 | + |
| 147 | +**重要提示**:在运行本示例之前,请先访问 [AgentKit 控制台授权页面](https://console.volcengine.com/agentkit/region:agentkit+cn-beijing/auth?projectName=default) 对所有依赖服务进行授权,确保案例能够正常执行。 |
| 148 | + |
| 149 | +**1. 开通火山方舟模型服务:** |
| 150 | + |
| 151 | +- 访问 [火山方舟控制台](https://exp.volcengine.com/ark?mode=chat) |
| 152 | +- 开通模型服务 |
| 153 | + |
| 154 | +**2. 获取火山引擎访问凭证:** |
| 155 | + |
| 156 | +- 参考 [用户指南](https://www.volcengine.com/docs/6291/65568?lang=zh) 获取 AK/SK |
| 157 | + |
| 158 | +**3. 开通`web_search`工具权限:** |
| 159 | + |
| 160 | +- 使用[`web_search`工具](https://www.volcengine.com/docs/85508/1650263),需提前开通并创建联网问答Agent[相应权限](https://www.volcengine.com/docs/85508/1544858) |
| 161 | + |
| 162 | +**4. 创建 AgentKit 工具:** |
| 163 | + |
| 164 | +- 工具类型选择:预置工具 -> AIO Sandbox |
| 165 | + |
| 166 | +**5. 设置环境变量:** |
| 167 | + |
| 168 | +```bash |
| 169 | +# 火山引擎访问凭证(必需) |
| 170 | +export VOLCENGINE_ACCESS_KEY=<Your Access Key> |
| 171 | +export VOLCENGINE_SECRET_KEY=<Your Secret Key> |
| 172 | +``` |
| 173 | + |
| 174 | +### AgentKit 云上部署 |
| 175 | + |
| 176 | +```bash |
| 177 | +cd agentkit-samples/02-use-cases/stock_analysis |
| 178 | + |
| 179 | +# 配置部署参数 |
| 180 | +# optional:如果 agentkit config 中不添加 --runtime_envs AGENTKIT_TOOL_ID={{your_tool_id}},可以在 AgentKit 控制台 智能体运行时 中,关键组件,选择 沙箱工具,并发布 |
| 181 | +agentkit config \ |
| 182 | +--agent_name stock_analysis \ |
| 183 | +--entry_point 'agent.py' \ |
| 184 | +--runtime_envs AGENTKIT_TOOL_ID={{your_tool_id}} \ |
| 185 | +--launch_type cloud |
| 186 | + |
| 187 | +# 启动云端服务 |
| 188 | +agentkit launch |
| 189 | + |
| 190 | +# 测试部署的 Agent |
| 191 | +agentkit invoke '帮我搜一下宁德时代近期的股票走势, 并给我一个简单的投资建议。' |
| 192 | + |
| 193 | +# 或使用 client.py 连接云端服务 |
| 194 | +# 需要编辑 client.py,将其中的第 14 行和第 15 行的 base_url 和 api_key 修改为 agentkit.yaml 中生成的 runtime_endpoint 和 runtime_apikey 字段 |
| 195 | +uv run client.py |
| 196 | +``` |
| 197 | + |
| 198 | +## 示例提示词 |
| 199 | + |
| 200 | +以下是一些常用的提示词示例: |
| 201 | + |
| 202 | +- "帮我搜一下比亚迪近期股票数据,分析一下走势" |
| 203 | +- "帮我搜一下宁德时代近期的股票走势, 并给我一个简单的投资建议" |
| 204 | + |
| 205 | +## 效果展示 |
| 206 | + |
| 207 | +| 示例提示词 1 | 示例提示词 2 | |
| 208 | +| -------- | ------- | |
| 209 | +| 帮我搜一下比亚迪近期股票数据,分析一下走势。 | 帮我搜一下宁德时代近期的股票走势, 并给我一个简单的投资建议 | |
| 210 | +|  |  | |
| 211 | + |
| 212 | +## 常见问题 |
| 213 | + |
| 214 | +无。 |
| 215 | + |
| 216 | +## 参考资料 |
| 217 | + |
| 218 | +- [VeADK 官方文档](https://volcengine.github.io/veadk-python/) |
| 219 | +- [AgentKit 开发指南](https://volcengine.github.io/agentkit-sdk-python/) |
| 220 | +- [火山方舟模型服务](https://console.volcengine.com/ark/region:ark+cn-beijing/overview?briefPage=0&briefType=introduce&type=new&projectName=default) |
| 221 | + |
| 222 | +## 代码许可 |
| 223 | + |
| 224 | +本工程遵循 Apache 2.0 License |
0 commit comments