AI 模块 API¶
FundAgent¶
Fund-CLI 智能分析 Agent
基于 LangGraph 构建的基金分析智能体,能够: 1. 理解用户的自然语言查询 2. 自主调用数据工具获取实时数据 3. 进行多轮对话并保持上下文 4. 提供专业的基金分析建议
使用示例
agent = FundAgent() response = await agent.ainvoke("分析基金000001的投资价值")
源代码位于: src/fund_cli/ai/agent.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 | |
__init__ ¶
__init__(
llm: BaseChatModel | None = None,
checkpointer: Any = None,
enable_human_review: bool | None = None,
)
初始化 Fund Agent
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
llm
|
BaseChatModel | None
|
语言模型实例,不传则使用配置创建 |
None
|
checkpointer
|
Any
|
状态检查点存储,用于持久化对话记忆 |
None
|
enable_human_review
|
bool | None
|
是否启用人工审核,不传则读取配置 |
None
|
源代码位于: src/fund_cli/ai/agent.py
ainvoke
async
¶
异步调用 Agent
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
user_input
|
str
|
用户输入 |
必需 |
user_id
|
str
|
用户标识,用于记忆隔离 |
'default'
|
thread_id
|
str | None
|
会话标识,用于多轮对话。不传则自动生成新会话 |
None
|
返回:
| 类型 | 描述 |
|---|---|
str
|
Agent 响应文本 |
源代码位于: src/fund_cli/ai/agent.py
invoke ¶
同步调用 Agent
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
user_input
|
str
|
用户输入 |
必需 |
user_id
|
str
|
用户标识 |
'default'
|
thread_id
|
str | None
|
会话标识 |
None
|
返回:
| 类型 | 描述 |
|---|---|
str
|
Agent 响应文本 |
源代码位于: src/fund_cli/ai/agent.py
get_history ¶
获取对话历史
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
user_id
|
str
|
用户标识 |
必需 |
thread_id
|
str
|
会话标识 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
list
|
对话历史列表 |
源代码位于: src/fund_cli/ai/agent.py
clear_history ¶
清除对话历史
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
user_id
|
str
|
用户标识 |
必需 |
thread_id
|
str
|
会话标识 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
bool
|
是否成功清除 |
AIAnalyzer¶
AI 分析服务
使用 LLM 进行基金分析、报告生成等功能。
源代码位于: src/fund_cli/ai/analyzer.py
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 | |
__init__ ¶
summarize_fund ¶
生成基金分析摘要
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_code
|
str
|
基金代码 |
必需 |
fund_data
|
dict[str, Any]
|
基金数据字典,包含info、nav、metrics等 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
str
|
AI生成的基金摘要文本 |
源代码位于: src/fund_cli/ai/analyzer.py
compare_funds ¶
对比分析多只基金
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_codes
|
list[str]
|
基金代码列表 |
必需 |
funds_data
|
list[dict]
|
基金数据列表 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
str
|
AI生成的对比分析报告 |
源代码位于: src/fund_cli/ai/analyzer.py
investment_advice ¶
investment_advice(
fund_code: str,
fund_data: dict[str, Any],
risk_profile: str,
) -> dict[str, str]
生成投资建议
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_code
|
str
|
基金代码 |
必需 |
fund_data
|
dict[str, Any]
|
基金数据 |
必需 |
risk_profile
|
str
|
风险偏好 (conservative/moderate/aggressive) |
必需 |
返回:
| 类型 | 描述 |
|---|---|
dict[str, str]
|
结构化投资建议字典 |
源代码位于: src/fund_cli/ai/analyzer.py
risk_assessment ¶
risk_assessment(
fund_code: str,
fund_data: dict[str, Any],
detailed: bool = False,
) -> dict[str, str]
深度风险评估
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_code
|
str
|
基金代码 |
必需 |
fund_data
|
dict[str, Any]
|
基金数据 |
必需 |
detailed
|
bool
|
是否生成详细分析 |
False
|
返回:
| 类型 | 描述 |
|---|---|
dict[str, str]
|
风险评估结果字典 |
源代码位于: src/fund_cli/ai/analyzer.py
market_insight ¶
market_insight(
fund_code: str,
fund_data: dict[str, Any],
market_context: str | None = None,
) -> str
市场解读分析
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_code
|
str
|
基金代码 |
必需 |
fund_data
|
dict[str, Any]
|
基金数据 |
必需 |
market_context
|
str | None
|
市场环境描述(可选) |
None
|
返回:
| 类型 | 描述 |
|---|---|
str
|
市场解读文本 |
源代码位于: src/fund_cli/ai/analyzer.py
portfolio_review ¶
投资组合分析
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
portfolio_data
|
dict[str, Any]
|
组合数据,包含持仓、权重、历史收益等 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
dict[str, str]
|
组合分析结果 |
源代码位于: src/fund_cli/ai/analyzer.py
generate_report ¶
生成分析报告
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
fund_code
|
str
|
基金代码 |
必需 |
fund_info
|
dict[str, Any]
|
基金信息 |
必需 |
metrics
|
dict[str, Any]
|
分析指标 |
必需 |
返回:
| 类型 | 描述 |
|---|---|
str
|
报告文本 |
源代码位于: src/fund_cli/ai/analyzer.py
LLMProvider¶
Bases: ABC
flowchart TD
fund_cli.ai.providers.LLMProvider[LLMProvider]
click fund_cli.ai.providers.LLMProvider href "" "fund_cli.ai.providers.LLMProvider"
LLM 提供商抽象基类
源代码位于: src/fund_cli/ai/providers.py
OpenAIProvider¶
Bases: LLMProvider
flowchart TD
fund_cli.ai.providers.OpenAIProvider[OpenAIProvider]
fund_cli.ai.providers.LLMProvider[LLMProvider]
fund_cli.ai.providers.LLMProvider --> fund_cli.ai.providers.OpenAIProvider
click fund_cli.ai.providers.OpenAIProvider href "" "fund_cli.ai.providers.OpenAIProvider"
click fund_cli.ai.providers.LLMProvider href "" "fund_cli.ai.providers.LLMProvider"
OpenAI 提供商
源代码位于: src/fund_cli/ai/providers.py
generate ¶
使用 OpenAI API 生成文本
源代码位于: src/fund_cli/ai/providers.py
is_available ¶
检查OpenAI API是否可用
源代码位于: src/fund_cli/ai/providers.py
QwenProvider¶
Bases: LLMProvider
flowchart TD
fund_cli.ai.providers.QwenProvider[QwenProvider]
fund_cli.ai.providers.LLMProvider[LLMProvider]
fund_cli.ai.providers.LLMProvider --> fund_cli.ai.providers.QwenProvider
click fund_cli.ai.providers.QwenProvider href "" "fund_cli.ai.providers.QwenProvider"
click fund_cli.ai.providers.LLMProvider href "" "fund_cli.ai.providers.LLMProvider"
阿里云Qwen 提供商
源代码位于: src/fund_cli/ai/providers.py
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | |
generate ¶
使用 Qwen API 生成文本
源代码位于: src/fund_cli/ai/providers.py
is_available ¶
检查Qwen API是否可用
源代码位于: src/fund_cli/ai/providers.py
LiteLLMProvider¶
Bases: LLMProvider
flowchart TD
fund_cli.ai.providers.LiteLLMProvider[LiteLLMProvider]
fund_cli.ai.providers.LLMProvider[LLMProvider]
fund_cli.ai.providers.LLMProvider --> fund_cli.ai.providers.LiteLLMProvider
click fund_cli.ai.providers.LiteLLMProvider href "" "fund_cli.ai.providers.LiteLLMProvider"
click fund_cli.ai.providers.LLMProvider href "" "fund_cli.ai.providers.LLMProvider"
LiteLLM 统一封装提供商
源代码位于: src/fund_cli/ai/providers.py
generate ¶
使用 LiteLLM 生成文本
源代码位于: src/fund_cli/ai/providers.py
is_available ¶
检查LiteLLM是否可用