同花顺智能选ETF skill。根据行情、跟踪指数基本面、规模、风格类型等条件筛选ETF。返回符合条件的相关ETF数据。当用户询问ETF筛选问题时,必须使用此技能。
本技能提供ETF智能筛选能力,通过自然语言查询支持:
接收用户的自然语言ETF筛选请求,分析用户意图。
将用户问句适当改写为标准的金融查询问句,保持原意不变:
改写规则:
思维链拆解(如果需要): 根据用户需求自行决定是否拆解思维链:
调用金融查询接口获取数据,支持分页参数:
# 使用 Python 标准库
import urllib.request
import json
import os
url = "https://openapi.iwencai.com/v1/query2data"
headers = {
"Authorization": f"Bearer {os.environ['IWENCAI_API_KEY']}",
"Content-Type": "application/json"
}
payload = {
"query": "改写后的查询语句",
"source": "test",
"page": "1",
"limit": "10",
"is_cache": "1",
"expand_index": "true"
}
data = json.dumps(payload).encode("utf-8")
request = urllib.request.Request(url, data=data, headers=headers, method="POST")
response = urllib.request.urlopen(request, timeout=30)
result = json.loads(response.read().decode("utf-8"))
datas = result.get("datas", [])
如果 datas 为空或无数据,适当放宽或简化查询条件后重新请求(最多尝试2次):
每次重试都算作一次改写,最终返回时需说明最终使用的查询问句。
解析返回的 datas 数组,提取相关指标:
for item in datas:
# 根据查询类型提取相应字段
skill 需要自行决策当前数据是否足够回答用户问题:
组织语言回答用户问题,确保:
IWENCAI_API_URLAuthorization: Bearer {IWENCAI_API_KEY}IWENCAI_API_KEY| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | STRING | 是 | 用户问句 |
| source | STRING | 否 | 来源,默认值:test |
| page | STRING | 否 | 分页参数,默认值:1 |
| limit | STRING | 否 | 分页参数,默认值:10 |
| is_cache | STRING | 否 | 缓存参数,默认值:1 |
| expand_index | STRING | 否 | 是否展开指数,默认值:true |
| 参数名 | 类型 | 说明 |
|---|---|---|
| datas | ARRAY | 金融数据列表,对象数组 |
响应示例:
{
"datas": [
{"ETF代码": "510300.SH", "ETF简称": "华泰柏瑞沪深300ETF", "涨跌幅": 1.25},
{"ETF代码": "159919.SZ", "ETF简称": "嘉实沪深300ETF", "涨跌幅": 1.18}
]
}
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
--query | STRING | 是 | 直接传入查询字符串 |
--page | STRING | 否 | 分页参数,默认值:1 |
--limit | STRING | 否 | 每页条数,默认值:10 |
--is-cache | STRING | 否 | 缓存参数,默认值:1 |
--api-key | STRING | 否 | API密钥(默认从环境变量读取) |
# 直接查询(默认分页10条)
python scripts/cli.py --query "沪深300ETF有哪些?"
# 指定分页参数
python scripts/cli.py --query "规模最大的ETF" --page "1" --limit "20"
# 指定API密钥
python scripts/cli.py --query "创业板ETF" --api-key "your-key"
重要提示:
hithink-etf-selector/
├── SKILL.md # Skill 配置文件
├── references/
│ ├── api.md # API 接口文档
│ └── requirement.md # 构建要求文档
└── scripts/
└── cli.py # CLI 入口(单一脚本,内含API调用和数据处理)