VI ▾
Lấy khóa API

API Ollama vs API OpenAI: Endpoint và Mã

Câu hỏi về api ollama so với api openai quy về hai định dạng yêu cầu và hai nơi để chạy mô hình. Ollama có API gốc của riêng mình và cũng có lớp tương thích OpenAI, nên việc chuyển sang endpoint kiểu OpenAI được lưu trữ có thể là thay đổi URL cơ sở và khóa.

Cập nhật

Máy tính để bàn và máy chủ đám mây được liên kết bằng hai cầu nối nhẹ mang các gói tin giống hệt nhau
Cửa sổ trò chuyện được kết nối với cả máy tính cục bộ và máy chủ đám mây bằng các cáp phát sáng

Không cần thẻ. Sau khi đăng ký, nhận $0,50 tín dụng dùng thử miễn phí bằng một cú nhấp chuột (một lần mỗi người).

Lấy khóa API

Điểm chính

  • Ollama có các tuyến gốc dưới /api và lớp tương thích OpenAI dưới /v1; các client được viết cho SDK OpenAI thường hoạt động với cả hai.
  • Ollama truyền phát JSON phân tách bằng dòng mới, trong khi định dạng OpenAI truyền phát các sự kiện do máy chủ gửi.
  • Chuyển từ cục bộ sang lưu trữ có nghĩa là thay đổi URL cơ sở, khóa và tên mô hình, không phải mã của bạn.
  • Cục bộ giữ dữ liệu trên máy của bạn; lưu trữ loại bỏ công việc phần cứng và thêm hóa đơn theo token.

Tóm tắt ngắn

Cả hai đều yêu cầu bạn POST một danh sách các thông điệp và nhận lại văn bản. Sự khác biệt là hình dạng của yêu cầu, nơi máy chủ hoạt động và ai trả tiền cho tài nguyên GPU. Ollama chạy các mô hình trên máy tính của riêng bạn và lắng nghe trên cổng 11434. API OpenAI là một dịch vụ được lưu trữ với các mô hình trả tiền riêng của nó. Trong so sánh api ollama so với api openai, mọi người thường bỏ qua một điều thứ ba: Ollama cũng cung cấp các tuyến tương thích OpenAI, vì vậy hai định dạng này chồng chéo.

Sự chồng chéo này là thứ khiến việc di chuyển rẻ. Nếu ứng dụng của bạn đã sử dụng SDK OpenAI, bạn có thể cấu hình nó để trỏ đến Ollama cục bộ ngay hôm nay và đến URL tương thích OpenAI được lưu trữ vào ngày mai. Endpoint được lưu trữ trên trang web này là một trong những endpoint đó. Nó cung cấp một mô hình duy nhất, uncensored, tại https://api.ollamansfw.com/v1, và nó không phải là sản phẩm chính thức của OpenAI, Meta hoặc bất kỳ phòng thí nghiệm nào khác.

Sự khác biệt theo từng endpoint

Nhiệm vụOllama gốcKiểu OpenAI
Trò chuyệnPOST /api/chatPOST /v1/chat/completions
Prompt đơnPOST /api/generatePOST /v1/responses hoặc hoàn tất trò chuyện
Liệt kê các mô hìnhGET /api/tagsGET /v1/models
Xác thựcKhông có theo mặc địnhAuthorization: Bearer key
Truyền phátJSON phân tách bằng dòngCác sự kiện do máy chủ gửi, kết thúc bằng dấu hiệu hoàn tất
Tên mô hìnhBất kỳ mô hình nào bạn đã kéo, chẳng hạn như llama3Bất cứ thứ gì nhà cung cấp liệt kê

Ollama cũng cung cấp /v1/chat/completions và /v1/models trên cùng một cổng, điều này cho phép các client OpenAI hoạt động với nó. Mặc định cho các yêu cầu native là truyền phát, vì vậy hãy đặt stream: false khi bạn muốn một phản hồi JSON đơn.

Endpoint được lưu trữ hỗ trợ POST /v1/chat/completions, POST /v1/responses và GET /v1/models, cùng với các kiểm tra số dư tại GET /v1/balance. Xem tài liệu API để có danh sách đầy đủ.

Cùng một yêu cầu, ba cách

Ollama gốc từ Python:

import requests

r = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "llama3",
        "messages": [{"role": "user", "content": "Say hello in five words."}],
        "stream": False,
    },
)
print(r.json()["message"]["content"])

SDK OpenAI, với endpoint local và hosted đặt cạnh nhau. Chỉ dòng bị comment thay đổi:

from openai import OpenAI

# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",   # local would be e.g. "llama3"
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)

Và curl đối với endpoint hosted với streaming bật:

curl https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'

Cách phân tích khác ở phía Ollama native: mỗi dòng truyền phát là một đối tượng JSON với message.content, và dòng cuối có done: true. Ở định dạng OpenAI, mỗi sự kiện bắt đầu bằng data: , chứa một phần choices[0].delta.content, và luồng kết thúc bằng [DONE]. Sử dụng SDK và bạn sẽ không bao giờ thấy bất kỳ thứ nào trong số đó.

Trong trường hợp mỗi cái phù hợp

Ollama local là lựa chọn đúng khi quyền riêng tư là ưu tiên hàng đầu, khi bạn có GPU với đủ bộ nhớ cho mô hình bạn muốn, hoặc khi bạn thử nghiệm với nhiều mô hình. Không có dữ liệu nào rời khỏi máy của bạn và không có hóa đơn theo token. Chi phí thể hiện ở phần cứng, điện và thời gian của bạn. Hướng dẫn của chúng tôi về cách sử dụng Ollama với GUI bao gồm khía cạnh thân thiện của lộ trình đó.

Endpoint tương thích OpenAI được lưu trữ phù hợp hơn khi bạn thiếu phần cứng, cần nhiều yêu cầu đồng thời, chạy bot hoặc dịch vụ cho những người khác, hoặc muốn một URL ổn định không phụ thuộc vào việc máy tính xách tay của bạn đang bật. Khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút. Cửa sổ ngữ cảnh là 100.000 token, nhiều hơn nhiều so với nhiều thiết lập cục bộ có thể giữ trong bộ nhớ.

Rất nhiều người sử dụng cả hai: cục bộ cho các thí nghiệm, lưu trữ cho bất cứ thứ gì phải luôn trực tuyến. Nếu bạn đang cân nhắc các công cụ cục bộ khác, hãy đọc các phần mềm thay thế cho Ollama.

Di chuyển từ Ollama cục bộ sang lưu trữ

  1. Chuyển sang định dạng OpenAI trước. Nếu mã của bạn gọi /api/chat, hãy chuyển nó sang SDK OpenAI trỏ đến tuyến /v1 của Ollama. Xác nhận nó vẫn hoạt động cục bộ.
  2. Lấy khóa. Đăng ký và nhận tín dụng dùng thử $0,50 trên trang khóa API. Nó không cần thanh toán và có hiệu lực trong 7 ngày.
  3. Thay đổi ba giá trị. URL cơ sở thành https://api.ollamansfw.com/v1, khóa thành khóa của bạn, mô hình thành uncensored.
  4. Kiểm tra các tham số. Temperature, top_p, stop, seed và các mức phạt được truyền lại. Các tùy chọn chỉ dành cho local như num_ctx hoặc keep_alive của Ollama không áp dụng; cửa sổ ngữ cảnh được cố định ở 100.000 token.
  5. Thêm logic thử lại. API được lưu trữ trả về 429 với rate_limited hoặc concurrency vượt quá giới hạn, và 429 với Retry-After: 5 trong thời gian quá tải tạm thời. Máy chủ cục bộ hiếm khi làm điều đó, vì vậy mã hiện có có thể không xử lý được nó.

Nếu có lỗi xảy ra sau khi chuyển đổi, bài viết về những lỗi API Ollama phổ biến bao gồm các nguyên nhân thường gặp như cổng sai và thiếu tên mô hình.

Chi phí lưu trữ là gì và những hạn chế của nó

Hóa đơn là trả tiền theo mức sử dụng từ tín dụng trả trước: $0,15 cho mỗi 1M token đầu vào và $0,50 cho mỗi 1M token đầu ra. Một lượt trò chuyện với 1.000 token đầu vào và 400 token đầu ra tốn $0,00015 + $0,0002 = $0,00035, vì vậy $20 bao gồm khoảng 57.000 lượt như vậy. Các yêu cầu bị lỗi hoặc bị từ chối không được tính phí và tín dụng không bao giờ hết hạn. Nạp tiền chạy từ $20 đến $500 với tiền thưởng +5% từ $50, +10% từ $100 và +15% từ $200. Thanh toán chỉ bằng tiền mã hóa (USDT trên TRC20 hoặc USDC trên Base). Thêm thông tin trên trang giá cả.

Giới hạn cần biết: chỉ văn bản, vì vậy không có embedding, tạo hình ảnh hoặc tinh chỉnh. Nếu bạn dựa vào embedding cục bộ, hãy giữ chúng ở cục bộ. Mô hình được điều chỉnh để trả lời mà không từ chối nội dung cho việc sử dụng hợp pháp của người trưởng thành. Nội dung tình dục liên quan đến người chưa thành niên không bao giờ được phép. Các prompt không được sử dụng để huấn luyện.

Hỏi đáp

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

Một phần. Ollama có các tuyến gốc dưới /api và cũng cung cấp các tuyến kiểu OpenAI như /v1/chat/completions, nên các ứng dụng khách SDK OpenAI có thể giao tiếp với nó.

Tôi cần thay đổi gì để chuyển từ Ollama cục bộ sang endpoint được lưu trữ?

Base URL, khóa API và tên mô hình. Nếu mã của bạn đã dùng SDK OpenAI, không cần thay đổi gì khác.

API được lưu trữ có hỗ trợ embedding như Ollama không?

Không. API chỉ hỗ trợ tạo văn bản: hoàn tất hội thoại và phản hồi, không có embedding, hình ảnh hay tinh chỉnh.

Ollama có miễn phí không?

Phần mềm miễn phí tải về và chạy. Bạn vẫn phải trả tiền cho phần cứng và điện năng, trong khi API được lưu trữ tính phí theo token.