本 Skill 支持通过自然语言或基金列表查询基金持仓信息,返回包含 AI 持仓摘要、行业配置(含具体比例)、资产配置的完整分析报告,支持单只基金和批量查询。
本 Skill 基于天天基金持仓接口构建,通过调用 FUND_HOLDING_INFO 核心能力,为单只或多只基金生成完整的持仓分析报告。
核心功能:
当前版本: 1.1.0
在调用任何接口前,必须先检查本地环境变量 TTFUND_APIKEY 是否存在。
检查流程:
TTFUND_APIKEY,直接使用该 apikey 发起请求apikey 获取路径:
缺失提示文案:
当前未检测到本地环境变量 TTFUND_APIKEY,请先前往天天基金搜索 skills 获取 apikey,并在本机配置环境变量后再继续使用。
本 Skill 提供了 Python 脚本封装 API 调用逻辑,支持自动处理基金列表的循环查询。
脚本位置: scripts/query_fund_holdings.py
脚本特性:
TTFUND_APIKEY使用示例:
# 查询单只基金
python scripts/query_fund_holdings.py 015916
# 查询多只基金(自动循环调用)
python scripts/query_fund_holdings.py 015916 018419 110011
# 指定报告期和持仓类型
python scripts/query_fund_holdings.py 015916 --report-period 2024-Q3 --holding-type stock
# 输出 JSON 格式
python scripts/query_fund_holdings.py 015916 --json
# 仅输出汇总信息
python scripts/query_fund_holdings.py 015916 018419 --summary-only
# 保存报告为 Markdown 文件
python scripts/query_fund_holdings.py 015916 018419 --save
脚本参数说明:
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
funds | string | 是 | 基金代码列表(位置参数) | 015916 018419 |
--report-period | string | 否 | 报告期 YYYY-QN | 2024-Q3 |
--holding-type | string | 否 | stock/bond/all,默认 all | all |
--json | flag | 否 | 以 JSON 格式输出 | - |
--summary-only | flag | 否 | 仅输出汇总信息 | - |
--save | flag | 否 | 将报告保存为 Markdown 文件到当前目录,文件名格式 report_{日期}_{序号}.md | - |
使用 POST 请求调用统一网关接口,apikey 放入 X-API-Key 请求头。
请求要求:
skill_id 和 _skill_version_skill_version 必须填写: 1.1.0fund_id 参数),批量查询需循环调用调用示例:
# 单只基金查询
curl --location 'https://skills.tiantianfunds.com/ai-smart-skill-service/openapi/skill/invoke' \
--header "X-API-Key: $TTFUND_APIKEY" \
--header 'Content-Type: application/json' \
--data '{
"skill_id": "FUND_HOLDING_INFO",
"_skill_version": "1.1.0",
"fund_id": "025209",
"holding_type": "all"
}'
该 skill 使用服务端 workflow 自动完成名称解析、数据获取与结果聚合,对调用方透明。
fcode,服务端优先直查;缺少时可根据 fund_id 自动解析候选代码4 个业务步骤data.raw_result.body,不展开内部字段映射关系| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
fund_id | string | 是 | 基金代码(6位)或基金名称 | 025209 |
report_period | string | 否 | 报告期,格式 YYYY-QN,如 2024-Q3 | 2024-Q3 |
holding_type | string | 否 | 持仓类型:stock/bond/all,默认 all | all |
重要说明:
fund_id 参数)python scripts/query_fund_holdings.py 015916 018419 000001| 场景 | 示例 |
|---|---|
| 单只基金查询 | 帮我分析基金 025209 的持仓情况 |
| 基金列表查询 | 分析这些基金的持仓:025209, 110011, 000001 |
| 带报告期查询 | 查询 025209 在 2024-Q3 的持仓报告 |
| 行业配置重点 | 帮我看看 025209 的行业配置,重点看比例 |
| AI 摘要解读 | 用 AI 总结一下 025209 的持仓特点 |
| 批量对比分析 | 对比这几只基金的持仓差异:025209, 110011, 000001 |
返回数据位于 data.raw_result.body:
| 字段 | 类型 | 说明 |
|---|---|---|
success | boolean | 接口是否成功 |
errorCode | integer | 错误码,0=成功 |
data | object | 核心业务数据 |
data.fund_profile)| 字段 | 说明 |
|---|---|
input_fund_id | 原始输入的基金代码或名称 |
fund_code | 解析后的基金代码 |
fund_name | 解析后的基金名称 |
fund_type | 基金类型(股票型/混合型/债券型/FOF等) |
data.holding_overview)| 字段 | 说明 |
|---|---|
report_date | 持仓报告截止日期 |
top10_ratio_components | 前十大持仓占净值比列表 |
data_lag_notice | 数据滞后说明 |
data.top_holdings)股票持仓 (stock):
GPJC: 股票名称列表GPDM: 股票代码列表JZBL: 占净值比例列表(百分比)PCTNVCHGTYPE: 变化类型(新增/增持/减持/不变)PCTNVCHG: 较上期变化幅度INDEXCODE: 所属行业代码INDEXNAME: 所属行业名称HOLDCOUNT: 进入重仓列表的期数其他持仓:
bond: 债券重仓列表fof: FOF 底层基金持仓列表etf_code: ETF 联接基金对应的 ETF 代码etf_shortname: ETF 联接基金对应的 ETF 简称| 字段 | 说明 |
|---|---|
asset_allocation | 资产配置结果(股票/债券/现金等占比) |
industry_allocation | 行业配置结果(含各行业名称、比例、变化) |
data.ai_summary)| 字段 | 说明 |
|---|---|
report_date | 摘要对应报告日期 |
fund_code | 基金代码 |
text | AI 持仓摘要文本,包含投资风格、持仓集中度、行业偏好等洞察 |
| 字段 | 说明 |
|---|---|
disambiguation_candidates | 名称歧义时的候选基金列表 |
resolution_selected | 自动选中的基金候选 |
risk_disclaimer | 风险提示语 |
按以下顺序展示:
data.ai_summary.text 完整内容示例格式:
行业配置(前8大):
1. 电子信息 25.3% ↑2.1% 代表:贵州茅台、立讯精密
2. 医药生物 18.7% ↓1.5% 代表:恒瑞医药、药明康德
3. 消费 15.2% — 代表:五粮液、美的集团
...
| 基金代码 | 基金名称 | 类型 | 股票仓位 | 前3大行业 | AI摘要关键词 |
|---|---|---|---|---|---|
| 025209 | XXX基金 | 股票型 | 85.2% | 电子(25%)、医药(18%)、消费(15%) | 科技成长、高集中度 |
| 110011 | XXX基金 | 混合型 | 72.5% | 金融(20%)、制造(16%)、地产(12%) | 价值蓝筹、分散配置 |
对每只基金按"单只基金报告"格式依次展示
输出顺序: 汇总概览表 → 详细报告 → 对比分析
TTFUND_APIKEYskill_id 和 _skill_version: 1.1.0fund_id 或 fund_listfund_id 参数(单只基金)scripts/query_fund_holdings.py 脚本时,传入多个基金代码会自动循环调用| 错误场景 | 处理方案 |
|---|---|
| 缺少 apikey | 提示配置 TTFUND_APIKEY,前往天天基金搜索 skills 获取 |
缺少 _skill_version | 提示升级到最新版本 1.1.0 |
_skill_version 无效 | 提示升级到最新版本 1.1.0 |
| HTTP 请求失败/超时 | 提示"基金持仓分析报告服务暂时不可用,请稍后重试" |
| 版本落后 | 优先提示升级 skill,再提示重试 |
业务失败(success=false) | 简要说明错误信息,不伪造结果 |
| 核心数据为空 | 提示检查输入参数 |
scripts/query_fund_holdings.py 脚本时自动处理以下逻辑共查询 X 只基金,成功 Y 只,失败 Z 只。失败基金:[基金代码] - [失败原因]data.version_info.is_outdated = true,完成本次回答后附加升级提醒data_lag_noticescripts/query_fund_holdings.py)