AI Function Calling对接指南
前言
本系列AI的API对接均以 DeepSeek 为例,其他大模型的对接方式类似。
在人工智能领域,Function Calling(函数调用)是一种允许AI模型直接调用外部函数或API以执行特定任务的技术。
这种技术可以增强AI模型的能力,使其能够访问实时数据、执行复杂计算或与外部系统集成。
本文将介绍如何使用DeepSeek API进行AI Function Calling,并提供两个简单的实际对接案例。
什么是AI Function Calling?
AI Function Calling允许AI模型在对话中调用预定义的函数。
这些函数可以是任何外部服务或API,它们可以提供信息、执行操作或返回数据。
通过这种方式,AI模型可以扩展其能力,为用户提供更丰富的交互体验。
如何使用DeepSeek API进行AI Function Calling?
使用DeepSeek API进行AI Function Calling的步骤如下:
1、设置OpenAI客户端:首先,你需要创建一个OpenAI客户端实例,并提供API密钥和基础URL。
from openai import OpenAI
client = OpenAI(
api_key="<your api key>",
base_url="https://api.deepseek.com",
)
2、定义工具:定义一个或多个工具,每个工具包含一个函数的名称、描述和参数。
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"]
},
}
},
]
3、发送消息并调用函数:创建一个函数send_messages,它将用户的消息发送到DeepSeek API,并处理返回的响应。
def send_messages(messages):
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
tools=tools
)
return response.choices[0].message
4、 构建对话流:构建对话流,包括用户消息和工具调用。
messages = [{"role": "user", "content": "How's the weather in Hangzhou?"}]
message = send_messages(messages)
print(f"User>\t {messages[0]['content']}")
5、处理工具调用:处理工具调用,将工具的响应添加到消息流中。
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}")
实际对接案例
案例1:获取天气信息
在这个案例中,用户询问杭州的天气情况。
AI模型通过调用get_weather函数获取天气信息,并返回给用户。
messages = [{"role": "user", "content": "How's the weather in Hangzhou?"}]
message = send_messages(messages)
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}")
案例2:汇率转换
在这个案例中,用户想要知道1美元等于多少人民币。
AI模型可以调用一个汇率转换的函数来提供最新的汇率信息。
messages = [{"role": "user", "content": "How much is 1 USD in CNY?"}]
message = send_messages(messages)
tool = message.tool_calls[0]
messages.append(message)
messages.append({"role": "tool", "tool_call_id": tool.id, "content": "7.05 CNY"})
message = send_messages(messages)
print(f"Model>\t {message.content}")
总结
通过这些案例,我们可以看到AI Function Calling如何使AI模型更加强大和灵活,能够提供实时数据和执行复杂任务。
这只是一个开始,随着技术的发展,我们可以预见AI Function Calling将在更多领域发挥重要作用。
– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。