重點摘要
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
| **面向 ** | ** 函式呼叫 ** | ** 檢索增強生成 (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("正在以 location 參數呼叫 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 願景成真。
