二、OpenAI 兼容性
注意: OpenAI 兼容性是实验性的,可能会有重大调整,包括破坏性更改。要完全访问 Ollama API,请查看 Ollama Python库、JavaScript库 和 REST API。
Ollama 提供了与 OpenAI API 部分功能的实验性兼容性,以帮助将现有应用程序连接到 Ollama。
1. 使用方法
(1). OpenAI Python库
from openai import OpenAI
client = OpenAI(
base_url='http://localhost:11434/v1/',
# 必需但被忽略
api_key='ollama',
)
chat_completion = client.chat.completions.create(
messages=[
{
'role': 'user',
'content': 'Say this is a test',
}
],
model='llama2',
)
(2). OpenAI JavaScript库
import OpenAI from 'openai'
const openai = new OpenAI({
baseURL: 'http://localhost:11434/v1/',
// 必需但被忽略
apiKey: 'ollama',
})
const chatCompletion = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'llama2',
})
(3). curl
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!"
}
]
}'
2. 端点
(1). /v1/chat/completions
支持的功能
- 聊天完成
- 流式传输
- JSON 模式
- 可复现的输出
- 视觉
- 函数调用
- Logprobs
支持的请求字段
-
model
-
messages
- 文本
content
-
content
部分的数组
- 文本
-
frequency_penalty
-
presence_penalty
-
response_format
-
seed
-
stop
-
stream
-
temperature
-
top_p
-
max_tokens
-
logit_bias
-
tools
-
tool_choice
-
user
-
n
注意事项
- 设置
seed
将始终将temperature
设置为0
finish_reason
将始终为stop
- 对于缓存了提示评估的完成,
usage.prompt_tokens
将为 0
3. 模型
在使用模型之前,先在本地拉取它:ollama pull
:
ollama pull llama2
(1). 默认模型名称
对于依赖于默认 OpenAI 模型名称(如 gpt-3.5-turbo
)的工具,可以使用 ollama cp
将现有模型名称复制到临时名称:
ollama cp llama2 gpt-3.5-turbo
然后,可以在 model
字段中指定这个新模型名称:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'