
类型:人工智能
简介:一款基于深度学习和自然语言处理技术的产品,人气赶超ChatGPT。
DeepSeek Function Calling功能允许模型调用外部工具,从而增强其能力,执行一些超出模型本身的任务。
提示:当前版本的 Deepseek-Chat 模型的 Function Calling 功能效果不稳定,可能会出现循环调用或空回复等问题。我们正在积极进行修复,预计下一个版本将解决这些问题。
以下是一个示例代码,展示如何使用 Function Calling 获取用户当前位置的天气信息。
一、Function Calling示例代码
假设我们想获取用户询问的某个地点的天气情况,以下是使用 Function Calling 的完整 Python 代码:
from openai import OpenAI
def send_messages(messages):
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
tools=tools
)
return response.choices[0].message
client = OpenAI(
api_key="<your api key>",
base_url="https://api.deepseek.com",
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather of an location, the user should supply a location first",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
}
},
"required": ["location"]
},
}
},
]
messages = [{"role": "user", "content": "How's the weather in Hangzhou?"}]
message = send_messages(messages)
print(f"User>\t {messages[0]['content']}")
tool = message.tool_calls[0]
messages.append(message)
messages.append({"role": "tool", "tool_call_id": tool.id, "content": "24℃"})
message = send_messages(messages)
print(f"Model>\t {message.content}")
二、Function Calling执行流程
1、用户提问当前天气情况,例如:“Hangzhou 的天气怎么样?”
2、模型返回调用函数 get_weather({location: ‘Hangzhou’}) 的请求。
3、用户调用 get_weather 函数,提供必要的参数(例如,返回 Hangzhou 的天气数据),并传回模型。
4、模型最终返回自然语言的响应,例如:“Hangzhou 当前的温度是 24°C。”
说明:
- 在上述代码中,get_weather 函数是用户提供的功能,模型本身并不执行该函数;
- 这段代码使用了 Function Calling 功能,通过外部工具提供的天气信息来增强模型的回答能力。

