使用样例
限制与约束
Atlas 800I A2 推理产品 和Atlas 300I Duo 推理卡支持此特性。- 当前仅ChatGLM3-6B模型支持此特性。
操作步骤
本节以使用ChatGLM3-6B为例,介绍Function Call如何使用,使用Function Call时无需配置额外参数。
- 配置服务化参数config.json,启动服务化。
cd ${mindie-service安装路径} vi conf/config.json ./bin/mindieservice_daemon
- 向服务发送请求,参数说明见推理接口章节。请求样例:
curl -H "Accept: application/json" -H "Content-type: application/json" --cacert ca.pem --cert client.pem --key client.key.pem -X POST -d '{ "model": "chatglm3-6b", "messages": [ { "role": "system", "content": "You are a helpful customer support assistant. Use the supplied tools to assist the user." }, { "role": "user", "content": "Hi, can you tell me the delivery date for my order? my order number is 999888" } ], "tools": [ { "type": "function", "function": { "name": "get_delivery_date", "description": "Get the delivery date for a customer\u0027s order. Call this whenever you need to know the delivery date, for example when a customer asks \u0027Where is my package\u0027", "parameters": { "type": "object", "properties": { "order_id": { "type": "string", "description": "The customer\u0027s order ID." } }, "required": [ "order_id" ], "additionalProperties": false } } } ], "tool_choice": "required", "stream": false }' https://127.0.0.1:1025/v1/chat/completions
响应样例:
{ "id": "chatcmpl-123", "object": "chat.completion", "created": 1677652288, "model": "chatglm3-6b", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "", "tool_calls": [ { "function": { "arguments": "{\"order_id\": \"999888\"}", "name": "get_delivery_date" }, "id": "call_JwmTNF3O", "type": "function" } ] }, "finish_reason": "tool_calls" } ], "usage": { "prompt_tokens": 226, "completion_tokens": 122, "total_tokens": 348 }, "prefill_time": 200, "decode_time_arr": [56, 28, 28] }
- 根据模型返回的tool_calls调用相关的本地工具,使用assistant角色关联2中接口返回的tool_calls和id,并使用tool角色关联工具执行的结果和2中接口返回的id,向大模型发送请求。
curl -H "Accept: application/json" -H "Content-type: application/json" --cacert ca.pem --cert client.pem --key client.key.pem -X POST -d '{ "model": "chatglm3-6b", "messages": [ { "role": "user", "content": "Hi, can you tell me the delivery date for my order? my order number is 999888" }, { "role": "assistant", "content": "", "tool_calls": [ { "function": { "arguments": "{\"order_id\": \"999888\"}", "name": "get_delivery_date" }, "id": "call_JwmTNF3O", "type": "function" } ] }, { "role": "tool", "content": "the delivery date is 2024.09.10.", "tool_call_id": "call_JwmTNF3O" } ], "stream": false, "max_tokens": 4096 }' https://127.0.0.1:1025/v1/chat/completions
父主题: Function Call