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ở.
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ối | Mục đích |
|---|---|
POST /v1/ | Chat — endpoint được hầu hết ứng dụng sử dụng |
POST /v1/ | Completions văn bản kiểu cũ |
POST /v1/ | Embeddings cho mô hình cục bộ |
GET /v1/models | Liệ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: | api. |
| Chạy trên | Máy của bạn | API được quản lý |
| Mô hình | Các mô hình mã nguồn mở cục bộ | Claude, GPT, Veo, Suno |
| Phương thức | Văn bản + embeddings | Văn bản, hình ảnh, video, âm thanh |
| Chi phí | Phần cứng / điện của bạn | Theo token, thấp hơn giá niêm yết |
| Phù hợp nhất cho | Phá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 |
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.