Ollama OpenAI 相容性更新
Ollama 現在內建了與 OpenAI Chat Completions API 的相容性。此更新讓開發者只需將現有的工具與應用程式重新導向至本地 Ollama 實例,即可使用大量專為 OpenAI 設計的現有工具與應用程式。
透過 OpenAI API 格式進行本地整合
Ollama 允許使用者透過將主機名稱更改為 http://localhost:11434,使用標準的 OpenAI API 格式來調用本地模型。這種相容性確保了預期使用 OpenAI 風格端點的應用程式可以與在本地運行的 Llama 2 或 Mistral 等模型進行通訊。
透過 cURL 實作
若要使用 cURL 與 API 進行互動,請求將被發送到 /v1/chat/completions 端點。一個典型的請求包含模型名稱以及包含 system 與 user 角色的 messages 陣列:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
透過官方函式庫實作
Ollama 與 OpenAI 官方的 Python 與 JavaScript 函式庫相容。整合時需要將 base_url (或 baseURL) 設定為 http://localhost:11434/v1。雖然函式庫需要 api_key 來初始化客戶端,但 Ollama 並不會使用它。
Python 範例:
from openai import OpenAI
client = OpenAI(
base_url = 'http://localhost:11434/v1',
api_key='ollama',
)
response = client.chat.completions.create(
model="llama2",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The LA Dodgers won in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
print(response.choices[0].message.content)
JavaScript 範例:
import OpenAI from 'openai'
const openai = new OpenAI({
baseURL: 'http://localhost:11434/v1',
apiKey: 'ollama',
})
const completion = await openai.chat.completions.create({
model: 'llama2',
messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(completion.choices[0].message.content)
生態系統相容性與框架
由於 Ollama 採用了 OpenAI API 標準,因此它可以直接與熱門的開源 AI 框架整合。
Vercel AI SDK
開發者在構建對話式串流應用程式時,可以使用 Vercel AI SDK,只需在 API 路由中更新 OpenAI 客戶端配置,將其指向本地 Ollama 的 base URL,並使用 stream: true 指定所需的本地模型 (例如 llama2)。
Microsoft AutoGen
Ollama 支援透過 Microsoft AutoGen 進行多代理人應用程式開發。藉由將 config_list 配置為本地 base URL 與如 codellama 之類的模型,AutoGen 代理人可以本地執行任務,例如編寫程式碼來繪製股價變化圖。
未來開發路線圖
目前的 OpenAI API 支援屬於初步且實驗性質。Ollama 正在考慮在未來版本中進行以下改進:
- Embeddings API: 支援生成向量嵌入 (embeddings)。
- Function Calling: 模型觸發外部函式的能力。
- Vision Support: 整合多模態能力。
- Logprobs: 提供 token 生成的對數機率 (log probabilities)。
Sources
- OriginalOpenAI compatibility
相關
- 專案
- Dispatch
- Dispatch
- Dispatch
- Dispatch