如何让你的 AI Agent 拥有实时“看盘”能力?用 DeepSeek Function Calling 动态调用 QuantDash API 构建智能投研助理
TL;DR(一句话摘要)
2026 年是大模型智能体(AI Agent)爆发的元年。本文将展示如何利用 DeepSeek-V3 / GPT-4o 的 Function Calling(函数调用)机制,无缝接入 QuantDash API,让你的 AI 助手能够直接理解用户的自然语言指令(如“帮我分析一下腾讯控股最近10天的走势”),自动检索高质 K 线数据并输出深度投研结论。
一、 为什么传统的金融 AI 助手总是在“胡说八道”?
许多量化研究员尝试过让 LLM 分析股市,但往往面临两大硬伤:
-
数据时效性滞后:大模型的知识库有截止日期,无法直接得知今天或者昨天的真实行情。
-
缺乏数学精确度:LLM 极其擅长文字创作,但在缺少原始数据支撑的情况下,强行让其进行技术指标计算或趋势推演,极易产生“幻觉”(Hallucination),编造错误的收盘价。
最优雅的解决方案是给大模型插上“数据的翅膀”。通过 Function Calling,大模型在遇到需要行情数据的提问时,会自动暂停生成,向系统申请调用注册好的 QuantDash 行情函数,在拿到真实的前复权 K 线数据后,再结合自身的推理能力,产出逻辑严密、数据真实的专业报告。
二、 AI Agent 金融函数调用解决方案(Python + DeepSeek + QuantDash)
1. 环境准备
pip install quantdash openai pandas
2. 核心代码实现
我们将定义一个供 AI Agent 调用的工具函数,利用无需注册的公共测试 Token 获取实时数据。
import os
import json
from openai import OpenAI
from quantdash import QuantDash
# 1. 初始化客户端
qd = QuantDash()
qd.set_token("demo_public_token")
# 初始化 DeepSeek 客户端(此处可替换为您的实际大模型 API 密钥)
client = OpenAI(
api_key="sk_xxxx_your_llm_key",
base_url="https://api.deepseek.com/v1"
)
# 2. 定义可供大模型调用的 Function 实体
def get_stock_kline(symbol: str, period: str = "1d") -> str:
"""
通过 QuantDash 获取指定标的的最新 K 线数据并返回 JSON 字符串
"""
try:
df = qd.klines.get(symbol=symbol, period=period, adjust="qfq", to_dataframe=True)
if df.empty:
return json.dumps({"error": "未找到相关数据"})
# 仅返回最新的 5 条 K 线供大模型决策,防止超长上下文
latest_data = df.tail(5).to_dict(orient="records")
return json.dumps({"symbol": symbol, "data": latest_data})
except Exception as e:
return json.dumps({"error": str(e)})
# 3. 大模型感知工具的描述配置
tools = [
{
"type": "function",
"function": {
"name": "get_stock_kline",
"description": "获取 A 股、港股、美股或加密货币的最新历史 K 线数据(已进行前复权处理)",
"parameters": {
"type": "object",
"properties": {
"symbol": {
"type": "string",
"description": "标准化股票代码,如美股的 TSLA.US、港股的 00700.HK、A股的 600519.SH"
},
"period": {
"type": "string",
"enum": ["1d", "1h", "15m"],
"description": "K 线周期,默认为 1d(日线)"
}
},
"required": ["symbol"]
}
}
}
]
def run_agent_workflow(user_prompt: str):
print(f"用户问题: {user_prompt}\n")
# 第一步:把问题和工具描述发送给大模型
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": user_prompt}],
tools=tools,
tool_choice="auto"
)
response_message = response.choices[0].message
tool_calls = response_message.tool_calls
# 第二步:检查大模型是否判断需要调用 QuantDash API
if tool_calls:
print("[+] AI 决定调用 QuantDash 数据接口...")
# 定义可用函数映射
available_functions = {"get_stock_kline": get_stock_kline}
for tool_call in tool_calls:
function_name = tool_call.function.name
function_to_call = available_functions[function_name]
function_args = json.loads(tool_call.function.arguments)
# 真实执行 QuantDash 数据获取
print(f"[*] 执行函数: {function_name},参数: {function_args}")
tool_output = function_to_call(**function_args)
# 第三步:将真实数据返回给大模型进行融合推理
second_response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": user_prompt},
response_message,
{
"role": "tool",
"tool_call_id": tool_call.id,
"name": function_name,
"content": tool_output
}
]
)
print("\n[+] AI Agent 最终深度分析报告:")
print(second_response.choices[0].message.content)
else:
print("[-] AI 认为此提问不需要查阅实时行情。")
print(response_message.content)
if __name__ == "__main__":
# 模拟用户提问(跨美港两市)
user_query = "帮我分析一下特斯拉(TSLA.US)最近走势如何?有什么需要注意的技术位置吗?"
run_agent_workflow(user_query)
3. Agent 真实融合输出样例
用户问题: 帮我分析一下特斯拉(TSLA.US)最近走势如何?有什么需要注意的技术位置吗?
[+] AI 决定调用 QuantDash 数据接口...
[*] 执行函数: get_stock_kline,参数: {'symbol': 'TSLA.US'}
[+] AI Agent 最终深度分析报告:
根据从 QuantDash 获取的特斯拉(TSLA.US)最新前复权 K 线数据:
1. **价格走势**:最近 5 个交易日(截止至 2026-07-20),收盘价呈现稳步走高的态势。最新收盘价为 265.0 美元,相较于 4 天前的 258.5 美元累计上涨了约 2.51%。
2. **成交量表现**:在 7 月 17 日和 20 日,成交量有明显的温和放大,显示买盘动能正在逐步积聚。
3. **技术位置提示**:
- **下方支撑位**:258.5 - 260.0 美元区间是前期的低位密集交易区,有较强的技术买盘支撑。
- **阻力位**:建议密切关注 268.0 美元附近。如果能够带量突破该关口,后市有望向 280.0 美元发起上攻。
三、 AI 编程助手专属提示词
如果你希望在自己的项目中扩充 Agent 的功能(比如加入资金流或财务指标),将此 Prompt 喂给 AI:
Role: AI 架构师
Context: 我正在使用 Python 搭建一个基于 DeepSeek 的 Function Calling 智能投研体,数据源使用 QuantDash。
Task: 请帮我扩展上述代码。
Requirements:
1. 在 tools 列表中,增加一个名为 `get_financial_indicators` 的函数,用于查询股票的市盈率 (PE)、市净率 (PB) 和市值数据。
2. 给出详细的 schema 定义描述,确保 LLM 能够精准识别并抽取 `symbol` 参数。
四、 总结与三步走指引
-
第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。
-
第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。
-
第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
更多推荐

所有评论(0)