Tài liệu

Tài liệu

API tương thích với OpenAI của Ollama

Ollama cung cấp API tương thích với OpenAI cho các mô hình cục bộ. Sau đây là cách gọi API bằng OpenAI SDK — và cách dùng chính đoạn mã đó để truy cập Claude và GPT được lưu trữ, chỉ bằng cách thay đổi base_url và model.

Ollama chạy các mô hình mã nguồn mở trên máy của bạn và cung cấp chúng qua một API tương thích với OpenAI tại http://localhost:11434/v1. Vì định dạng giao tiếp trùng khớp với OpenAI, OpenAI SDK chính thức có thể hoạt động với Ollama mà không cần chỉnh sửa — và cũng chính đoạn mã đó có thể truy cập các mô hình tiên tiến được lưu trữ bằng cách chỉ thay đổi URL cơ sở.

Tóm tắt nhanh — API OpenAI của Ollama nằm tại http://localhost:11434/v1. Đặt base_url của ứng dụng OpenAI tại đó và dùng api_key bất kỳ. Để dùng Claude/GPT được lưu trữ, hãy đổi base_url thành https://api.kunavo.com/v1 và đổi slug mô hình — không cần thay đổi gì khác.

API tương thích với OpenAI của Ollama là gì

Ollama là một dự án mã nguồn mở riêng biệt để chạy cục bộ các mô hình như Llama, Qwen và Mistral. Bên cạnh API gốc, dự án cung cấp giao diện tương thích với OpenAI, giúp các công cụ được xây dựng cho OpenAI hoạt động mà không cần viết lại. API triển khai các endpoint mà hầu hết ứng dụng sử dụng:

Điểm cuốiMục đích
POST /v1/chat/completionsChat — endpoint được hầu hết ứng dụng sử dụng
POST /v1/completionsCompletions văn bản kiểu cũ
POST /v1/embeddingsEmbeddings cho mô hình cục bộ
GET /v1/modelsLiệt kê các mô hình đã tải xuống cục bộ

API hỗ trợ chat, completions và embeddings (cùng đầu vào hình ảnh trên các mô hình cục bộ đa phương thức). API không tạo hình ảnh, video hoặc âm thanh. Kunavo triển khai cùng giao thức /v1/chat/completions — tài liệu tham khảo đó mô tả mọi tham số, cấu trúc delta khi truyền trực tuyến và đối tượng usage, đồng thời có bảng đối chiếu từng dòng với giao diện v1 của Ollama.

Gọi Ollama bằng OpenAI SDK

Trỏ base_url đến http://localhost:11434/v1. SDK yêu cầu api_key, nhưng Ollama cục bộ bỏ qua giá trị này — hãy truyền vào chuỗi bất kỳ. Đặt model thành mô hình bạn đã tải xuống (ví dụ: ollama pull llama3.2).

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",  # Ollama's OpenAI-compatible API
    api_key="ollama",  # required by the SDK, ignored by local Ollama
)

resp = client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)

Hoặc dùng curl:

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

Dùng cùng đoạn mã với các mô hình tiên tiến được lưu trữ

Ollama phù hợp cho phát triển ngoại tuyến và các công việc nhạy cảm về quyền riêng tư, nhưng các mô hình cục bộ chưa bằng những mô hình tiên tiến nhất về suy luận khó, lập trình và ngữ cảnh dài. Vì Kunavo cũng tương thích với OpenAI, bạn chỉ cần thay đổi hai dòng để chuyển lệnh gọi sang mô hình được lưu trữ — base_url và slug mô hình:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.kunavo.com/v1",  # only this line changes
    api_key="sk-kn-...",               # a real key now
)

resp = client.chat.completions.create(
    model="claude-sonnet-5",  # a hosted frontier model
    messages=[{"role": "user", "content": "Explain quicksort in one paragraph."}],
)
print(resp.choices[0].message.content)
Ollama (cục bộ)Kunavo (được lưu trữ)
URL cơ sởlocalhost:11434/v1api.kunavo.com/v1
Chạy trênMáy của bạnAPI được quản lý
Mô hìnhCác mô hình mã nguồn mở cục bộClaude, GPT, Veo, Suno
Phương thứcVăn bản + embeddingsVăn bản, hình ảnh, video, âm thanh
Chi phíPhần cứng / điện của bạnTheo token, thấp hơn giá niêm yết
Phù hợp nhất choPhát triển ngoại tuyến, quyền riêng tưChất lượng tiên tiến hàng đầu cho môi trường sản xuất
Một khóa Kunavo cho phép truy cập mọi mô hình được lưu trữ, thanh toán một lần qua Stripe — xem hướng dẫn bắt đầu nhanh để thực hiện lệnh gọi đầu tiên.

Chuyển đổi bằng biến môi trường

Một cách phổ biến là dùng Ollama cho phát triển cục bộ và mô hình được lưu trữ trong môi trường sản xuất, lựa chọn bằng biến môi trường. Mã ứng dụng và mã yêu cầu giống hệt nhau — chỉ base_url và mô hình là khác:

import os
from openai import OpenAI

# One client, switched by environment. Local for dev, hosted for prod.
if os.getenv("APP_ENV") == "production":
    client = OpenAI(base_url="https://api.kunavo.com/v1",
                    api_key=os.environ["KUNAVO_API_KEY"])
    MODEL = "claude-haiku-4-5"
else:
    client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
    MODEL = "llama3.2"

resp = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "ping"}],
)
print(resp.choices[0].message.content)

Câu hỏi thường gặp

Ollama có API tương thích OpenAI không?

Có. Ollama cung cấp REST API tương thích OpenAI tại http://localhost:11434/v1 với các đường dẫn /chat/completions, /completions, /embeddings và /models. Trỏ OpenAI SDK chính thức đến base_url đó, truyền bất kỳ chuỗi nào làm api_key (Ollama bỏ qua khóa này khi chạy cục bộ) và đặt model thành một model đã tải, chẳng hạn llama3.2. Định dạng yêu cầu và phản hồi khớp với OpenAI.

Ollama sử dụng URL cơ sở nào cho API OpenAI?

http://localhost:11434/v1 by default. Set the OpenAI client base_url to that value. If Ollama runs on another host or port, substitute it — the /v1 suffix stays.

Làm cách nào để chuyển từ Ollama sang mô hình được lưu trữ?

Vì cả hai đều tương thích với OpenAI, bạn chỉ cần thay đổi base_url và model. Đổi http://localhost:11434/v1 thành https://api.kunavo.com/v1, dùng khóa sk-kn- hợp lệ và đặt model thành một slug mô hình được lưu trữ như claude-sonnet-5 hoặc claude-haiku-4-5. Không cần thay đổi mã nào khác.

API OpenAI của Ollama có hỗ trợ hình ảnh hoặc video không?

Giao diện tương thích với OpenAI của Ollama hỗ trợ chat, completions và embeddings, cùng đầu vào hình ảnh trên các mô hình cục bộ đa phương thức. API này không tạo hình ảnh, video hoặc âm thanh. Để tạo hình ảnh, video và âm thanh bằng mô hình được lưu trữ qua cùng API kiểu OpenAI, hãy dùng các endpoint /v1/images, /v1/video và /v1/audio của Kunavo.

Tiếp theo nên xem gì