VI ▾

API Ollama vs API OpenAI: Cái nào trong số hai phù hợp với dự án của bạn

Ollama chạy các mô hình trên máy của bạn, trong khi OpenAI chạy các mô hình của nó trên máy chủ của họ. Trang này so sánh hai bên về dịch vụ lưu trữ, định dạng yêu cầu, chi phí, giới hạn và quy tắc nội dung, sau đó trình bày một tùy chọn thứ ba ở giữa.

Cập nhật

Minh họa đẳng giác của một máy tính cục bộ và một ngăn máy chủ đám mây được liên kết bằng một đường dữ liệu phát sáng

Điểm chính

  1. Ollama là một môi trường chạy cục bộ do bạn tự lưu trữ; API OpenAI là một dịch vụ được lưu trữ, tính phí theo token.
  2. Cả hai đều chấp nhận các yêu cầu hội thoại theo kiểu OpenAI, vì một client có thể giao tiếp với cả hai bằng cách thay đổi base URL.
  3. Chạy cục bộ tốn phần cứng và thời gian, chạy trên dịch vụ lưu trữ tốn token; điểm hòa vốn phụ thuộc vào khối lượng công việc của bạn.
  4. Một endpoint tương thích OpenAI được lưu trữ với một mô hình trọng số mở cho phép bạn trả tiền theo nhu cầu mà không cần sở hữu GPU.

Câu trả lời ngắn gọn

Câu hỏi so sánh API Ollama và API OpenAI chủ yếu là câu hỏi về nơi mô hình chạy. Với Ollama, mô hình nằm trên một máy tính do bạn kiểm soát, và mã của bạn gọi localhost. Với OpenAI, mô hình nằm trong trung tâm dữ liệu của người khác, và mã của bạn gọi một địa chỉ HTTPS công khai với một khóa và hóa đơn vào cuối tháng.

Mọi thứ khác đều bắt nguồn từ sự khác biệt cơ bản đó: cấu trúc chi phí, độ trễ bạn có thể điều chỉnh, ai có thể xem prompt của bạn, những mô hình nào bạn có thể chọn và những gì xảy ra khi bạn gửi một trăm yêu cầu đồng thời. Bảng dưới đây liệt kê các đặc điểm áp dụng cho cả hai.

Chủ đềOllamaAPI OpenAI
Nơi chạyMáy tính xách tay, máy trạm hoặc máy chủ của bạnMáy chủ của OpenAI
Ai thiết lập mô hìnhBạn tự kéo và cập nhật trọng sốOpenAI chọn và cập nhật mô hình của mình
Thanh toánKhông tính phí theo token từ runtime cục bộ; bạn trả tiền cho phần cứng và điện năngTheo token, từ một tài khoản có thanh toán
Định dạng yêu cầuCác tuyến gốc (Native routes) cùng lớp /v1 theo phong cách OpenAIĐịnh dạng OpenAI gốc
Thông lượngGiới hạn bởi phần cứng của bạnGiới hạn bởi giới hạn tốc độ của tài khoản

Nếu bạn muốn một giải pháp trung gian, một endpoint được lưu trữ nói cùng định dạng OpenAI nhưng phục vụ một mô hình trọng số mở được đề cập gần cuối trang này.

Mỗi API thực chất là gì

Ollama

Ollama là một chương trình tải xuống các mô hình trọng số mở và phục vụ chúng qua HTTP trên máy của bạn. Theo mặc định, nó lắng nghe trên cổng 11434. Nó có các tuyến riêng như /api/chat và /api/generate, và nó cũng cung cấp một lớp tương tự OpenAI dưới /v1 để mã client OpenAI hiện có có thể trỏ vào nó. Trong thiết lập cục bộ thông thường, không có tài khoản và không có khóa. Các client bắt buộc phải có trường khóa sẽ nhận được một chuỗi giữ chỗ.

Bạn chọn mô hình, lượng tử hóa và cài đặt ngữ cảnh. Tự do đó là điểm thu hút chính, nhưng cũng là cái giá: nếu mô hình không vừa với bộ nhớ của bạn, nó sẽ chạy chậm hoặc không tải được.

API OpenAI

API OpenAI là một dịch vụ được lưu trữ. Bạn tạo tài khoản, thêm thanh toán, tạo khóa và gửi yêu cầu đến địa chỉ của OpenAI. Bạn nhận được các mô hình mà OpenAI cung cấp, dưới các chính sách sử dụng của OpenAI, với bất kỳ giới hạn nào cho phép bởi gói tài khoản của bạn. Khả năng, nâng cấp và thời gian hoạt động là trách nhiệm của họ, không phải của bạn. Định dạng yêu cầu bạn thấy trong hầu hết các hướng dẫn, với một mảng messages và một mảng choices trong phản hồi, đến từ API này.

Tại sao mọi người lại so sánh chúng

Sự so sánh tồn tại vì cả hai đều có thể truy cập bằng cùng một mã khách hàng. Các SDK chính thức của OpenAI cho phép bạn ghi đè Base URL, và lớp /v1 của Ollama hiểu các lệnh hoàn thành hội thoại (chat completions). Do đó, một tập lệnh được viết cho dịch vụ này thường có thể được trỏ sang dịch vụ kia chỉ bằng một dòng lệnh. Điều đó rất tiện lợi, nhưng nó cũng che giấu những khác biệt thực sự, những điều mà các phần tiếp theo sẽ trình bày.

Mã client giống nhau, hai base URL

Đây là phần giúp việc chuyển đổi trở nên rẻ. Đoạn mã Python bên dưới giao tiếp với máy chủ Ollama cục bộ. Chỉ có base URL, khóa và tên mô hình là cụ thể cho đích đến.

from openai import OpenAI

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

reply = client.chat.completions.create(
    model="llama3.2",  # whatever model you pulled locally
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

Để gửi cùng yêu cầu đến một endpoint tương thích OpenAI được lưu trữ, bạn thay đổi ba giá trị. Đây là phiên bản cho trang web này, với ID mô hình uncensored.

from openai import OpenAI

client = OpenAI(base_url="https://api.ollamaapi.com/v1", api_key="YOUR_KEY")

reply = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarize what a base URL is."}],
)
print(reply.choices[0].message.content)

Cùng một yêu cầu cũng hoạt động với curl, rất hữu ích cho một bài kiểm tra nhanh trước khi bạn chạm vào bất kỳ mã ứng dụng nào.

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

Một lời cảnh báo áp dụng cho bất kỳ việc chuyển đổi nào giữa các đích đến này. Sự tương thích bao gồm hình dạng yêu cầu và phản hồi, không phải hành vi. Các mô hình khác nhau tuân theo hướng dẫn khác nhau, xử lý các lệnh gọi hàm khác nhau và tạo ra định dạng khác nhau. Hãy chạy các prompt của riêng bạn qua đích mới trước khi bạn tin tưởng nó.

Chi phí: phần cứng bạn sở hữu so với token bạn mua

Suy luận cục bộ trông như miễn phí vì không có hóa đơn đến. Nó không miễn phí. Bạn trả tiền cho GPU hoặc máy có bộ nhớ lớn, cho điện năng và cho số giờ dành để cài đặt trình điều khiển, chọn lượng tử hóa và khởi động lại máy chủ khi hết bộ nhớ. Nếu bạn đã sở hữu phần cứng đủ mạnh và chạy một vài prompt mỗi ngày, chi phí đó thực tế gần bằng không. Nếu bạn phải mua một card chỉ để chạy mô hình bạn muốn, phép tính sẽ thay đổi.

Giá dịch vụ lưu trữ có cấu trúc ngược lại: không tốn phí ban đầu và chi phí tăng theo mức sử dụng. Trên trang web này, giá là $0,15 cho mỗi 1 triệu token đầu vào và $0,50 cho mỗi 1 triệu token đầu ra, trừ từ tín dụng trả trước mà không cần đăng ký gói. Đối với OpenAI, hãy kiểm tra trang định giá hiện tại của họ vì giá thay đổi theo mô hình và thay đổi theo thời gian.

Đây là cách tính chi phí được lưu trữ cho một công việc thực tế trên endpoint này. Giả sử một ứng dụng gửi 40,000 yêu cầu trong một tháng, mỗi yêu cầu có 1,500 token đầu vào và 400 token đầu ra.

  • Đầu vào: 40.000 x 1.500 = 60.000.000 token, hay 60M. Với giá $0,15 cho mỗi 1M, tổng cộng là $9,00.
  • Đầu ra: 40.000 x 400 = 16.000.000 token, hay 16M. Với giá $0,50 cho mỗi 1M, tổng cộng là $8,00.
  • Tổng cộng: $17.00 cho tháng đó.

Bạn có thể so sánh con số đó với chi phí mua, vận hành và bảo trì một máy chủ phù hợp. Với lưu lượng nhẹ hoặc theo đợt, việc trả tiền theo token thường có lợi thế hơn. Với lưu lượng nặng liên tục trên phần cứng bạn đã sở hữu, giải pháp chạy tại chỗ thường thắng thế. Xem trang giá cả để biết số tiền nạp tiền và các khoản thưởng.

Mô hình, quy tắc nội dung và quyền riêng tư

Với Ollama, bạn quyết định chạy mô hình trọng số mở nào, và không ai đứng giữa prompt của bạn và các trọng số đó. Hành vi nội dung phụ thuộc vào những gì mô hình đó làm. Một số mô hình cộng đồng được tinh chỉnh để từ chối ít hơn, một số thì không, và bạn có thể hoán đổi chúng một cách tự do.

Nhà cung cấp được lưu trữ áp dụng chính sách sử dụng và bộ lọc riêng của họ. Đó là một vị trí hợp lý cho một dịch vụ mục đích chung, và đó cũng là lý do tại sao một số nhà văn, nhà phát triển đóng vai và nhà nghiên cứu làm việc với văn học trưởng thành thấy các câu trả lời được lưu trữ bị cắt ngắn. Hãy đọc chính sách của bất kỳ nhà cung cấp nào bạn dự định dựa vào, và kiểm tra các quy tắc hiện tại của họ thay vì giả định.

Trang web này nằm ở một vị trí khác. Nó cung cấp một mô hình trọng số mở duy nhất, do một nhà cung cấp độc lập vận hành và được tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích sử dụng người trưởng thành hợp pháp. Đây không phải là API chính thức của OpenAI, Meta, Mistral hay bất kỳ nhà cung cấp nào khác, và cũng không phải là bộ định tuyến giữa các nhà cung cấp. Có một giới hạn cứng: không có nội dung tình dục liên quan đến người chưa thành niên. Các prompt không được sử dụng để huấn luyện. Các yêu cầu bị lỗi hoặc bị từ chối sẽ không bị tính phí.

Về quyền riêng tư, Ollama cục bộ giữ các prompt trên máy của bạn, điều mà không dịch vụ lưu trữ nào sánh được. Nếu dữ liệu của bạn không bao giờ được rời khỏi tòa nhà, hãy chạy cục bộ và ngừng so sánh. Nếu bạn có thể gửi văn bản đến dịch vụ lưu trữ, hãy đọc trang quyền riêng tư của nhà cung cấp trước. Trang của chúng tôi tại /privacy/.

Giới hạn, độ đồng thời và tính năng

Giới hạn tại chỗ mang tính vật lý. Một GPU duy nhất phục vụ một vài yêu cầu đồng thời trước khi mỗi yêu cầu bị chậm lại, và ngữ cảnh dài sẽ ngốn bộ nhớ nhanh chóng. Giới hạn lưu trữ là chính sách. Tại endpoint này, khóa đầy đủ tính năng cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút, trong khi khóa dùng thử cho phép 2 yêu cầu đồng thời và 60 yêu cầu mỗi phút. Cửa sổ ngữ cảnh là 100.000 token, tính cả prompt và kết quả hoàn thành, và phần thân yêu cầu có thể lên tới 8 MB.

Nếu bạn vượt quá giới hạn, bạn sẽ nhận được HTTP 429. Mã lỗi là rate_limited cho yêu cầu mỗi phút và concurrency cho quá nhiều yêu cầu cùng lúc. Mã 429 kèm tiêu đề Retry-After: 5 có nghĩa là quá tải tạm thời, vì vậy hãy đợi năm giây và thử lại. Một yêu cầu truyền phát giữ chỗ đồng thời của nó cho đến khi luồng kết thúc, điều này quan trọng nếu bạn mở nhiều luồng song song.

Phạm vi tính năng phía dịch vụ lưu trữ tập trung vào chat. Bạn nhận được truyền phát qua SSE với thông tin sử dụng ở cuối, gọi hàm, chế độ JSON, và chuyển tiếp các tham số temperature, top_p, stop, seed và các mức phạt. Không có tạo ảnh, âm thanh hay video, không có embedding và không có fine-tuning. Nếu bạn cần những tính năng đó, hãy lên kế hoạch lấy chúng từ nơi khác. Tài liệu của chúng tôi liệt kê chính xác các trường yêu cầu.

Các tiêu đề phản hồi bao gồm X-Request-Id và X-Balance-USD, vì vậy bạn có thể ghi nhật ký một yêu cầu và xem tín dụng còn lại của mình mà không cần gọi riêng.

Cách để lựa chọn

Chọn theo ràng buộc gây hạn chế nhất.

  • Prompt phải được giữ trên phần cứng của bạn. Chạy Ollama cục bộ.
  • Bạn đã sở hữu một GPU mạnh và muốn thử nghiệm. Chạy Ollama cục bộ, sau đó chuyển sang dịch vụ khác nếu lưu lượng vượt quá khả năng của nó.
  • Bạn cần mô hình tiên tiến của một nhà cung cấp cụ thể hoặc hệ sinh thái của nó. Sử dụng API của nhà cung cấp đó. Một nhà cung cấp khác không phải là sự thay thế cho một mô hình cụ thể.
  • Bạn muốn truy cập dịch vụ lưu trữ, trả theo mức sử dụng cho một mô hình trọng số mở mà không từ chối nội dung người lớn hợp pháp, và không cần chăm sóc phần cứng. Sử dụng một endpoint tương thích OpenAI được lưu trữ như thế này.

Nhiều nhóm cuối cùng sử dụng hai: Ollama trên máy tính xách tay để phát triển, và một endpoint lưu trữ cho bất kỳ thứ gì phải có thể truy cập được từ máy chủ hoặc trình duyệt của khách hàng. Vì cả hai đều sử dụng cùng định dạng yêu cầu, việc chuyển đổi chỉ là một giá trị cấu hình, không phải là viết lại. Nếu bạn muốn thử phía lưu trữ, người dùng mới có thể nhận $0,50 tín dụng dùng thử chỉ với một cú nhấp chuột trên trang khóa API sau khi đăng ký. Nó không cần thẻ và có hiệu lực trong 7 ngày. Nạp tiền trả trước bắt đầu từ $20 và chấp nhận thẻ hoặc tiền mã hóa.

Hỏi đáp

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

Ollama cung cấp một lớp tương thích OpenAI dưới /v1 xử lý hoàn tất hội thoại, vì vậy các SDK OpenAI chính thức có thể trỏ vào nó bằng cách thay đổi base URL. Kiểm tra tài liệu Ollama để xem phiên bản của bạn hỗ trợ những trường nào.

Ollama có rẻ hơn API OpenAI không?

Nó phụ thuộc vào phần cứng và khối lượng của bạn. Môi trường chạy cục bộ không có phí mỗi token, nhưng bạn phải trả tiền cho máy và việc bảo trì của nó. Đối với việc sử dụng nhẹ hoặc không đều đặn, thanh toán theo token thường rẻ hơn là mua GPU.

Tôi có thể sử dụng endpoint của trang web này thay vì Ollama cục bộ không?

Có, nếu bạn muốn một endpoint tương thích OpenAI được lưu trữ. Đặt base URL thành https://api.ollamaapi.com/v1 và mô hình thành uncensored. Nó không phải là Ollama và không chạy trên máy của bạn.

Endpoint lưu trữ có hỗ trợ gọi hàm và truyền phát không?

Có. Nó hỗ trợ truyền phát qua SSE, gọi công cụ và chế độ JSON, với cửa sổ ngữ cảnh 100.000 token.

Chỉ cần điền một biểu mẫu để có khóa của bạn

Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.

Lấy khóa APIĐọc tài liệu