Skip to content

Ollama cung cấp tính tương thích với một số phần của OpenAI API để giúp kết nối các ứng dụng hiện có với Ollama.

Sử dụng

Ví dụ đơn giản về /v1/chat/completions

Ví dụ đơn giản về /v1/responses

Ví dụ /v1/chat/completions với thị giác

Điểm cuối API

/v1/chat/completions

Tính năng được hỗ trợ

  • [x] Chat completions
  • [x] Streaming
  • [x] JSON mode
  • [x] Đầu ra có tính tái lập
  • [x] Vision
  • [x] Tools
  • [x] Kiểm soát suy luận/tiền xử lý suy nghĩ (dành cho các mô hình suy nghĩ)
  • [ ] Logprobs

Các trường yêu cầu được hỗ trợ

  • [x] model
  • [x] messages
    • [x] Nội dung văn bản (content)
    • [x] Nội dung hình ảnh (content)
      • [x] Hình ảnh được mã hóa Base64
      • [ ] URL hình ảnh
    • [x] Mảng các phần content
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] response_format
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] tools
  • [x] reasoning_effort ("high", "medium", "low", "max", "none")
  • [x] reasoning
    • [x] effort ("high", "medium", "low", "max", "none")
  • [ ] tool_choice
  • [ ] logit_bias
  • [ ] user
  • [ ] n

/v1/completions

Tính năng được hỗ trợ

  • [x] Completions
  • [x] Streaming
  • [x] JSON mode
  • [x] Đầu ra có tính tái lập
  • [ ] Logprobs

Các trường yêu cầu được hỗ trợ

  • [x] model
  • [x] prompt
  • [x] frequency_penalty
  • [x] presence_penalty
  • [x] seed
  • [x] stop
  • [x] stream
  • [x] stream_options
    • [x] include_usage
  • [x] temperature
  • [x] top_p
  • [x] max_tokens
  • [x] suffix
  • [ ] best_of
  • [ ] echo
  • [ ] logit_bias
  • [ ] user
  • [ ] n

Lưu ý

  • Trường prompt hiện chỉ chấp nhận kiểu string

/v1/models

Lưu ý

  • Trường created tương ứng với thời điểm mô hình được chỉnh sửa lần cuối
  • Trường owned_by tương ứng với tên người dùng ollama, với giá trị mặc định là "library"

/v1/models/{model}

Lưu ý

  • Trường created tương ứng với thời điểm mô hình được chỉnh sửa lần cuối
  • Trường owned_by tương ứng với tên người dùng ollama, với giá trị mặc định là "library"

/v1/embeddings

Các trường yêu cầu được hỗ trợ

  • [x] model
  • [x] input
    • [x] Giá trị kiểu string
    • [x] Mảng các giá trị string
    • [ ] Mảng các token
    • [ ] Mảng các mảng token
  • [x] encoding format
  • [x] dimensions
  • [ ] user

/v1/images/generations (thử nghiệm)

Lưu ý: Điểm cuối này đang ở giai đoạn thử nghiệm và có thể thay đổi hoặc bị xóa trong các phiên bản sau.

Tạo hình ảnh bằng cách sử dụng các mô hình tạo hình ảnh.

Các trường yêu cầu được hỗ trợ

  • [x] model
  • [x] prompt
  • [x] size (ví dụ: "1024x1024")
  • [x] response_format (chỉ hỗ trợ giá trị b64_json)
  • [ ] n
  • [ ] quality
  • [ ] style
  • [ ] user

/v1/responses

Lưu ý: Được thêm vào trong Ollama v0.13.3

Ollama hỗ trợ OpenAI Responses API. Chỉ phiên bản không lưu trạng thái (non-stateful) được hỗ trợ (tức là không hỗ trợ previous_response_id hay conversation).

Tính năng được hỗ trợ

  • [x] Streaming
  • [x] Tools (gọi hàm)
  • [x] Tóm tắt suy luận (dành cho các mô hình suy nghĩ)
  • [ ] Yêu cầu lưu trạng thái (Stateful requests)

Các trường yêu cầu được hỗ trợ

  • [x] model
  • [x] input
  • [x] instructions
  • [x] tools
  • [x] stream
  • [x] temperature
  • [x] top_p
  • [x] max_output_tokens
  • [ ] previous_response_id (phiên bản lưu trạng thái v1/responses không được hỗ trợ)
  • [ ] conversation (phiên bản lưu trạng thái v1/responses không được hỗ trợ)
  • [ ] truncation

Các mô hình

Trước khi sử dụng một mô hình, kéo nó về máy cục bộ bằng lệnh ollama pull:

shell
ollama pull llama3.2

Tên mô hình mặc định

Đối với các công cụ phụ thuộc vào tên mô hình mặc định của OpenAI như gpt-3.5-turbo, hãy sử dụng lệnh ollama cp để sao chép tên một mô hình hiện có thành tên tạm thời:

shell
ollama cp llama3.2 gpt-3.5-turbo

Sau đó, tên mô hình mới này có thể được chỉ định cho trường 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!"
            }
        ]
    }'

Thiết lập kích thước ngữ cảnh

API OpenAI không có cách để thiết lập kích thước ngữ cảnh cho mô hình. Nếu bạn cần thay đổi kích thước ngữ cảnh, hãy tạo một tệp Modelfile có nội dung như sau:

FROM <some model>
PARAMETER num_ctx <context size>

Sử dụng lệnh ollama create mymodel để tạo một mô hình mới với kích thước ngữ cảnh đã được cập nhật. Gọi API với tên mô hình đã cập nhật:

shell
curl http://localhost:11434/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "mymodel",
        "messages": [
            {
                "role": "user",
                "content": "Hello!"
            }
        ]
    }'