OpenAI 接口兼容性
请注意:OpenAI 兼容性处于实验阶段,可能会进行重大调整,包括破坏性更改。如需访问 Ollama API 的所有功能,请参阅 Ollama 的 Python 库、JavaScript 库 和 REST API 文档。
Ollama提供了对OpenAI API部分功能的实验性兼容性,以帮助现有应用程序连接到Ollama。
使用方法
开放人工智能Python库
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='llama3',
)开放人工智能JavaScript库
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: 'llama3',
})curl
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'api 接口
"/v1/chat/completions"
支持的功能
- [x] Chat completions(完整的对话补全)
- [x] Streaming(流媒体)
- [x] JSON mode(JSON模式)
- [x] Reproducible outputs(可复现的输出)
- [ ] Vision(视觉)
- [ ] Function calling(函数调用)
- [ ] Logprobs(日志概率)
支持的请求字段
- [x]
model - [x]
messages- [x] Text
content - [ ] Array of
contentparts
- [x] Text
- [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。
shell
ollama pull llama3默认模型名称
对于依赖默认OpenAI模型名称(如gpt-3.5-turbo)的工具,使用ollama cp将现有模型名称复制到一个临时名称:
ollama cp llama3 gpt-3.5-turbo然后,可以将这个新的模型名称指定给 model 字段:
shell
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'