AI对接之Function Calling对接

261 阅读3分钟

AI Function Calling对接指南

前言

本系列AI的API对接均以 DeepSeek 为例,其他大模型的对接方式类似。

在人工智能领域,Function Calling(函数调用)是一种允许AI模型直接调用外部函数或API以执行特定任务的技术。

这种技术可以增强AI模型的能力,使其能够访问实时数据、执行复杂计算或与外部系统集成。

本文将介绍如何使用DeepSeek API进行AI Function Calling,并提供两个简单的实际对接案例。

image.png

什么是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将在更多领域发挥重要作用。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。