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