f561eecfb8
* OpenAI Docs * Update docs/openai.md Co-authored-by: Jeffrey Morgan <jmorganca@gmail.com> * Remove newline --------- Co-authored-by: Jeffrey Morgan <jmorganca@gmail.com>
3.2 KiB
3.2 KiB
OpenAI compatibility
Note: OpenAI compatibility is experimental and is subject to major adjustments including breaking changes. For fully-featured access to the Ollama API, see the Ollama Python library, JavaScript library and REST API.
Ollama provides experimental compatibility with parts of the OpenAI API to help connect existing applications to Ollama.
Usage
OpenAI Python library
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',
)
list_completion = client.models.list()
OpenAI JavaScript library
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',
})
const listCompletion = await openai.models.list()
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!"
}
]
}'
curl http://localhost:11434/v1/models
Endpoints
/v1/chat/completions
Supported features
- Chat completions
- Streaming
- JSON mode
- Reproducible outputs
- Tools (streaming support coming soon)
- Vision
- Logprobs
Supported request fields
model
messages
- Text
content
- Array of
content
parts
- Text
frequency_penalty
presence_penalty
response_format
seed
stop
stream
temperature
top_p
max_tokens
tools
tool_choice
logit_bias
user
n
/v1/models
Notes
created
corresponds to when the model was last modifiedowned_by
corresponds to the ollama username, defaulting to"library"
Models
Before using a model, pull it locally ollama pull
:
ollama pull llama3
Default model names
For tooling that relies on default OpenAI model names such as gpt-3.5-turbo
, use ollama cp
to copy an existing model name to a temporary name:
ollama cp llama3 gpt-3.5-turbo
Afterwards, this new model name can be specified the model
field:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "Hello!"
}
]
}'