DeepSeek R1 在 Novita AI 上支持函数调用,享受 60% 折扣!

DeepSeek R1 在 Novita AI 上支持函数调用,享受 60% 折扣!

关键亮点

Novita AI 推出了 DeepSeek R1 Turbo,提供 **3 倍吞吐量 ** 和 ** 限时 60% 折扣 。此外,该版本完全支持 ** 函数调用

如果你想测试其性能,请直接 开始免费试用 Novita AI Playground!

deepseek r1 turbo 价格

什么是函数调用?

函数调用是一项强大的功能,它允许大型语言模型(LLM)以结构化方式与外部系统和你的代码进行交互。除了文本生成,支持函数调用的 LLM 可以识别何时需要执行特定操作,生成所需的参数,并执行现实世界的任务。这使得 AI 模型更加动态和实用,能够与外部工具和 API 无缝集成。

函数调用如何工作,能解决哪些问题?

其流程简单且结构化:

  1. 用户向 LLM 发送请求。
  2. LLM 分析请求,判断是否需要函数调用。
  3. 如果需要,LLM 生成一个结构化的 JSON 调用,包含函数名和参数,调用相应的函数。
  4. 应用程序接收该调用并执行函数。
  5. 结果返回给 LLM。
  6. LLM 利用结果生成对用户的最终响应。

对于多步骤或复杂任务,此循环可重复进行。工具(函数)需要使用名称、描述和指定其参数的 JSON 模式来定义。为了增加验证,可以使用 Pydantic 模型强制执行类型安全。

函数调用扩展了 LLM 的能力,解决了许多实际用例:

  • 数据检索:将语言查询转换为实时数据的 API 调用(例如:“我最近的订单有哪些?”)。
  • 操作执行:执行特定任务(例如:“安排会议”触发日历 API)。
  • 计算:处理计算或运算(例如复利或统计分析)。
  • 数据管道:为复杂工作流链接函数(例如:获取 → 处理 → 存储数据)。
  • UI/UX 集成:触发界面更新,如地图标记或图表。
  • 对话代理:使聊天机器人能够调用 API 获取相关响应(例如天气更新)。
  • 自然语言理解:将文本转换为结构化数据或提取信息(例如情感分析、命名实体识别)。

函数调用

如何通过 Novita AI 使用 DeepSeek R1 函数调用

Novita AI 已经为每个 LLM 推出了支持能力描述,你可以直接在 控制台文档 中查看。

选择你的模型

1. 初始化客户端

首先,你需要使用你的 Novita API 密钥初始化客户端。

from openai import OpenAI
import json

client = OpenAI(
    base_url="https://api.novita.ai/v3/openai",
    # 从 https://novita.ai/settings/key-management 获取 Novita AI API 密钥。
    api_key="<YOUR Novita AI API Key>",
)

model = "deepseek/deepseek_r1"
  • 定义要调用的函数

接下来,定义模型可以调用的 Python 函数。本示例中是一个获取天气信息的函数。

# 模拟获取天气数据的示例函数。
def get_weather(location):
    """检索给定地点的当前天气。"""
    print("Calling get_weather function with location: ", location)
    # 在实际应用中,你应在此处调用外部天气 API。
    # 这是一个简化的示例,返回硬编码数据。
    return json.dumps({"location": location, "temperature": "60 degrees Fahrenheit"})

2. 构建包含工具和用户消息的 API 请求

现在,创建发送到 Novita 端点的 API 请求。该请求包含 tools 参数,定义模型可以使用的函数,以及用户的消息。

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get weather of an location, the user shoud 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": "What is the weather in San Francisco?"
    }
]

# 让我们发送请求并打印响应。
response = client.chat.completions.create(
    model=model,
    messages=messages,
    tools=tools,
)

# 在生产环境中请检查响应中是否包含 tool_calls。
tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.model_dump())

3. 输出

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

4. 使用函数调用结果进行响应并获取最终答案

下一步是处理函数调用,执行 get_weather 函数,并将结果回传给模型以生成对用户的最终响应。

# 确保前面步骤中已定义 tool_call
if tool_call:
    # 将助手工具调用消息添加到对话历史
    messages.append(response.choices[0].message)

    function_name = tool_call.function.name
    if function_name == "get_weather":
        function_args = json.loads(tool_call.function.arguments)
        # 执行函数并获取响应
        function_response = get_weather(
            location=function_args.get("location"))
        # 将函数响应追加到消息列表
        messages.append(
            {
                "tool_call_id": tool_call.id,
                "role": "tool",
                "content": function_response,
            }
        )

    # 从模型获取最终响应,此时已包含函数结果
    answer_response = client.chat.completions.create(
        model=model,
        messages=messages,
        # 注意:此处不要包含 tools 参数。
    )
    print(answer_response.choices[0].message)

5. 输出

{'id': '0', 'function': {'arguments': '{"location": "San Francisco, CA"}', 'name': 'get_weather'}, 'type': 'function'}

常见问题解答

可以调用哪些类型的函数?

你可以定义应用程序能够执行的几乎任何函数,使 LLM 能够与数据库、API 和内部逻辑交互。

函数调用是否实际执行代码?

不,当 LLM 决定调用函数时,它仅输出一个包含函数名和必要参数的结构化 JSON 对象。

DeepSeek R1 是否支持函数调用?

是的!Novita AI 推出了 DeepSeek R1 Turbo,提供 **3 倍吞吐量 ** 和 ** 限时 20% 折扣 。此外,该版本完全支持 ** 函数调用

Novita AI 是全栈云平台,助力你的 AI 雄心。集成 API、无服务器、GPU 实例——你需要的经济高效工具。无需基础设施,免费开始,让你的 AI 愿景成为现实。

推荐阅读