关键亮点
Novita AI 推出了 Llama 4 Scout!而且,这个版本完全支持 ** 函数调用**。
如果你想测试它的性能,可以直接在 Novita AI Playground 上 开始免费试用!

函数调用使 Llama 4 Scout 这样的 LLM 能够通过集成 API 和外部工具执行现实世界任务,将自然语言命令转化为可操作的输出。
什么是函数调用?
函数调用代表了大型语言模型(LLM)能力的关键进步,使其能够与外部工具、API 和数据源交互。通过将自然语言提示转化为结构化的函数调用,LLM 可以执行现实行动、检索动态信息,并执行超越其固有文本生成能力的复杂计算。
定义函数调用
函数调用是一种结构化方法,允许 LLM 通过根据用户查询生成可执行命令来与外部系统交互。与传统 LLM 输出仅限于文本生成不同,函数调用使模型能够触发带有特定参数的预定义函数,通过外部代码执行这些函数,并将结果整合到连贯的响应中。
https://www.youtube.com/watch?v=i-oHvHejdsc&t=429s
函数调用如何工作?
函数调用涉及一个结构化过程,其中大型语言模型(LLM)解释用户提示以确定要执行哪个预定义函数以及使用什么参数。以下是一个简化的概述:
- 用户提示:用户向系统提交查询。
- LLM 解释:LLM 分析提示以确定合适的函数和参数。
- 函数执行:系统使用提供的参数执行函数。
- 响应生成:结果反馈给 LLM,LLM 生成包含输出的最终响应。

函数调用 vs. RAG
| **方面 ** | ** 函数调用 ** | ** 检索增强生成** |
|---|---|---|
| 定义 | 调用外部函数(API、数据库)以执行实时任务。 | 从外部来源检索并综合信息以生成响应。 |
| 使用场景 | 查询数据库、API 请求、外部工具(例如支付)。 | 问答系统检索数据以生成答案。 |
| 优势 | - 实时任务 - 与外部系统交互 - 模块化系统 |
- 访问大量知识 - 高效处理复杂查询 - 适合最新数据 |
| 目的 | 调用外部系统或服务。 | 利用检索到的知识增强生成。 |
| 实现 | 预定义的外部调用(例如 API)。 | 在生成过程中检索信息。 |
| 灵活性 | 对于实时交互更灵活。 | 利用外部/内部知识进行生成。 |
如何通过 Novita AI 使用 Llama 4 Scout 函数调用
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 = "meta-llama/llama-4-scout-17b-16e-instruct"
- 定义要调用的函数
接下来,定义模型可以调用的 Python 函数。在这个例子中,它是一个获取天气信息的函数。
# 模拟获取天气数据的示例函数。
def get_weather(location):
"""检索给定地点的当前天气。"""
print("正在调用 get_weather 函数,地点为:", location)
# 在实际应用中,你应该在此处调用外部天气 API。
# 这是一个简化的示例,返回硬编码数据。
return json.dumps({"location": location, "temperature": "60 degrees Fahrenheit"})
2. 构建包含工具和用户消息的 API 请求
现在,创建对 Novita 端点的 API 请求。该请求包含 tools 参数,定义了模型可以使用的函数,以及用户的消息。
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取某个地点的天气,用户应首先提供地点",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和州,例如 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_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'}
通过 Llama 4 Scout 和 Novita AI,函数调用重新定义了 LLM 应用,为现代需求提供了实时、动态的解决方案。
常见问题
什么是函数调用?
它允许 LLM 触发外部工具或 API 来执行任务和检索数据。
Llama 4 Scout 如何与函数调用配合工作?
Llama 4 Scout 通过 Novita AI 简化了实时系统集成。
函数调用适合实时需求吗?
是的,它非常适合诸如 API 调用或动态数据查询等任务。
Novita AI 是一个一站式云平台,助力你的 AI 雄心。集成 API、无服务器、GPU 实例——你需要的经济高效工具。消除基础设施,免费开始,让你的 AI 愿景成为现实。
