魔兽世界先祖战熊获取方式详细说明
2026-08-14
2026-08-16 0
硅基流动平台已全面支持Function Calling功能,开发者可让大模型主动调用预定义函数完成数据库查询、天气获取等外部操作;当前明确支持Qwen2.5、DeepSeek-V2.5、GLM4、InternLM2.5四款模型。

硅基流动平台已全面支持Function Calling功能,开发者可让大模型主动调用预定义函数完成数据库查询、天气获取、API中转等外部操作,避免手动解析意图与硬编码逻辑。
进入硅基流动控制台 →「模型市场」→ 筛选「支持Function Calling」标签。当前明确支持的模型包括:【Qwen2.5、DeepSeek-V2.5、GLM4、InternLM2.5】。注意:DeepSeek-R1、V3虽性能强,但截至2026年8月仍不支持该功能,强行传入functions参数将返回400错误。
点击任一支持模型卡片 → 查看「能力说明」栏 → 确认存在「Function Calling」图标及文档链接。部分新上线模型存在延迟同步,若页面未显示但文档提及,以官方SDK文档为准。
方法一:使用官方siliconflow-sdk(v0.8.3+)
安装最新版SDK:pip install --upgrade siliconflow-sdk
定义函数工具(必须为标准JSON Schema格式):
tools = [{ "type": "function", "function": { "name": "get_weather", "description": "获取指定城市当前天气", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "城市名称,如北京、上海" } }, "required": ["city"] } } }]
发起带工具调用的请求:
from siliconflow import Clientclient = Client(api_key=os.getenv("SILICONFLOW_API_KEY"))
response = client.chat.completions.create(
model="qwen2.5",
messages=[{"role": "user", "content": "上海今天天气怎么样?"}],
tools=tools,
tool_choice="auto"
)
这一步操作起来很简单,直接把tools列表传进去就行。关键点在于:tool_choice不能设为"none",否则模型即使识别出需要调用也不会触发;若设为"required",则强制必须调用至少一个工具。
方法二:原生REST API调用
构造POST请求体时,在JSON中显式加入tools字段,结构与SDK一致;同时确保HTTP Header中包含Content-Type: application/json和有效的Authorization: Bearer YOUR_API_KEY。
注意:REST方式下,若模型返回tool_calls字段,需你自行解析function name与arguments,再同步调用对应函数,并将结果拼回messages继续发送——这一步容易漏掉第二轮请求,导致流程中断。
第一步:检查response.choices[0].message.tool_calls是否存在
第二步:若存在,遍历每个tool_call,提取function.name和function.arguments(字符串,需json.loads解析)
第三步:根据name路由到本地函数,执行后获得结果result
第四步:构造新的user消息:{"role": "tool", "content": json.dumps(result), "tool_call_id": tool_call.id}
第五步:将原始messages + 新增tool消息 → 再次调用create接口,获取最终答案
这五步必须严格按顺序执行。跳过第四步或错填tool_call_id会导致硅基流动服务端无法关联上下文,返回空响应或500错误。工具函数执行失败时,应返回明确的错误字符串(如{"error": "城市未找到"}),而非抛异常,否则整个链路会断开。