API Ollama: Zmień klienta w trzech krokach
Zacznij korzystać z naszego API czatu bez cenzury, kompatybilnego z OpenAI, w kilka minut. Zmień konfigurację klienta na jeden model z oknem kontekstu 100k i zacznij generować treść natychmiast.
- Bazowy URL
https://api.ollamaapi.com/v1- Model
uncensored
Wymagania wstępne i URL bazowy
Aby korzystać z tego API LLM bez cenzury, potrzebujesz konta z kluczem API oraz zainstalowanego w środowisku SDK kompatybilnego z OpenAI. URL bazowy dla wszystkich zapytań to https://api.ollamaapi.com/v1. Ten endpoint jest zaprojektowany jako bezpośrednia wymiana dla istniejących klientów OpenAI, co oznacza, że musisz zaktualizować tylko URL bazowy i klucz API w konfiguracji. API obsługuje uzupełnianie tekstu na wejściu i wyjściu ze strumieniowaniem przez Server-Sent Events (SSE) oraz wywoływanie funkcji. Nie obsługuje embeddingów, generowania obrazów ani dostrajania (fine-tuning). Upewnij się, że wersja Twojego SDK obsługuje te funkcje dla najlepszego doświadczenia. Do wszystkich uzupełnień będziesz używać identyfikatora modelu uncensored.
Uwierzytelnianie i pierwsze zapytanie
Uwierzytelnianie odbywa się za pomocą tokenu Bearer w nagłówku Authorization. Zarejestruj się na stronie, aby natychmiast otrzymać klucz; nie jest wymagana karta kredytowa do wersji próbnej. Użyj poniższego polecenia cURL, aby wysłać swoją pierwszą wiadomość. Zastąp YOUR_API_KEY swoim rzeczywistym kluczem. Zapytanie kieruje się do standardowego endpointu chat completions. Po pomyślnym wykonaniu otrzymasz odpowiedź tekstową od modelu bez cenzury. Upewnij się, że ustawisz pole model na uncensored, aby wykorzystać konkretny duży model językowy hostowany na naszych serwerach GPU.
curl https://api.ollamaapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Pamiętaj, że prompty nie są używane do trenowania Twoich danych. API narusza ścisły limit treści seksualnych z udziałem małoletnich, ale w pozostałych przypadkach pozwala na treści prawne dla dorosłych i kontrowersyjne tematy bez odmowy.
Integracja z Python SDK
Użycie oficjalnego Python SDK OpenAI to najprostszy sposób integracji. Zainstaluj bibliotekę za pomocą pip, a następnie zainicjuj klienta, podając niestandardowy adres bazowy i swój klucz API. Ta konfiguracja pozwala Ci używać tego samego kodu klienta, którego mógłbyś użyć dla GPT-4, ale skierowanego do naszego modelu bez cenzury. Poniższy kod demonstruje proste zapytanie uzupełniania czatu. Możesz dostosować parametry max_tokens i temperature według potrzeb. Obiekt odpowiedzi będzie zawierał wygenerowany tekst w response.choices[0].message.content.
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamaapi.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
To podejście działa, ponieważ nasze API jest w pełni kompatybilne z OpenAI. Nie potrzebujesz osobnej biblioteki klienta specjalnie dla naszej usługi.
Konfiguracja Node.js SDK
Dla projektów JavaScript lub TypeScript Node.js SDK OpenAI działa bezproblemowo z naszym endpointem. Zainstaluj pakiet i skonfiguruj klienta, wskazując baseURL na naszą domenę. Przekaż swój klucz API w polu apiKey. Struktura zapytania dokładnie odzwierciedla format OpenAI. Pozwala to na wdrożenie naszego API w istniejących aplikacjach Node.js bez istotnych zmian. ID modelu pozostaje uncensored. Możesz zarządzać swoim kluczem API przez panel, jeśli będziesz musiał go wygenerować ponownie.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamaapi.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Upewnij się, że zmienne środowiskowe są ustawione poprawnie, aby uniknąć ujawnienia klucza w kontrolce wersji. Klucz API jest wyświetlany natychmiast po rejestracji.
Odpowiedzi strumieniowe
Dla aplikacji wymagających generowania tokenów w czasie rzeczywistym API obsługuje Server-Sent Events (SSE). Ustaw parametr stream na true w swoim zapytaniu. Serwer wyśle serię fragmentów, z których każdy zawiera częściową deltę odpowiedzi. Jest to idealne dla interfejsów czatu, w których chcesz wyświetlać tekst w miarę jego generowania. Zachowanie strumieniowania jest identyczne jak w API strumieniowania OpenAI, więc istniejąca logika strumieniowania powinna działać przy minimalnych zmianach. Obsłuż strumień, aż ostatni fragment wskaże, że odpowiedź jest kompletna.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Strumieniowanie nie wpływa na wycenę tokenów ani limity okna kontekstu.
Limity, błędy i kontekst
API ma okno kontekstu 100 000 tokenów, łączące prompt i uzupełnienie. Pozwala to na przetwarzanie rozległych dokumentów lub długie rozmowy. Limity zapytań są ustawione na 300 zapytań na minutę na klucz. Jeśli przekroczysz ten limit, otrzymasz błąd 429. Błędy uwierzytelniania zwracają status 401, zwykle z powodu nieprawidłowego lub unieważnionego klucza. Niewystarczające środki powodują błąd 402. Ciała zapytań są ograniczone do 8 MB. Nie ma subskrypcji; płacisz za zużycie z przedpłaconym kredytem, który nigdy nie wygasa. Możesz doładować środki zaczynając od $20. Kredyty nie wygasają, więc możesz wstrzymać użytkowanie na zawsze bez utraty salda.
Pytania i odpowiedzi
Czy to API obsługuje generowanie obrazów lub audio?
Nie, to API jest ściśle przeznaczone do uzupełniania tekstu. Nie obsługuje embeddingów, generowania obrazów, audio ani wideo. Skupia się na jednym modelu językowym bez cenzury do interakcji tekst-tekst.
Jak działa cennik?
Cennik oparty jest na modelu pay-as-you-go z przedpłaconym kredytem, który nigdy nie wygasa. Tokeny wejściowe kosztują $0,15 za milion, a tokeny wyjściowe kosztują $0,50 za milion. Możesz doładować środki kryptowalutą (USDT lub USDC), a bonusowe kredyty są dostępne przy większych depozytach.
Czy moje dane są używane do trenowania?
Nie, prompty wysłane do API nie są używane do trenowania. Usługa jest zaprojektowana z myślą o prywatności, wymagając tylko adresu e-mail i hasła do założenia konta.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień URL bazowy. To cała konfiguracja.
Specyfikacja techniczna
Wszystkie rzeczywiste limity i funkcje API w jednym miejscu — sprawdź je przed doładowaniem.
| Element | Wartość |
|---|---|
| Format API | zgodne z OpenAI: działa każdy SDK OpenAI — zmień base URL i klucz |
| Uwierzytelnianie | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.ollamaapi.com/v1 |
| Endpointy | POST /v1/chat/completions · GET /v1/models |
| ID modelu | uncensored |
| Parametry | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Okno kontekstu | 100 000 tokenów (wejście + odpowiedź) |
| Strumieniowanie | tak — server-sent events; ostatni fragment zawiera zużycie tokenów |
| Maks. odpowiedź | do reszty okna 100 000 tokenów; max_tokens opcjonalne (bez osobnego limitu) |
| Tryb JSON | response_format: {"type": "json_object"} |
| Wywoływanie funkcji | tak — tools, tool_choice; odpowiedź zawiera tool_calls, także w strumieniu; wyniki jako role: tool |
| Limit zapytań | 300 zapytań na minutę na klucz |
| Rozmiar zapytania | do 8 MB |
| Nagłówki odpowiedzi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Równoległe zapytania | do 8 jednocześnie na klucz |
| Darmowy kredyt | $0,50 na 7 dni, bez karty · Klucz próbny: 2 równoległe żądania, 60 na minutę; pełne limity (8 i 300) po pierwszym doładowaniu |
| Bonus | +5% od $50, +10% od $100, +15% od $200 |
| Cena | $0,15 za 1 mln tokenów wejścia · $0,50 za 1 mln tokenów wyjścia |
| Rozliczenie | przedpłacony kredyt według rzeczywistego zużycia; błędy i odmowy są darmowe |
| Ważność | opłacony kredyt nie wygasa, bez subskrypcji |
| Doładowanie | USDT (TRC20) lub USDC (Base), dowolna pełna kwota od $20 do $500 |
| Treści | treści dla dorosłych dozwolone; treści seksualne z udziałem nieletnich są odrzucane |
| Klucze | jeden aktywny klucz na konto; nowy zastępuje stary |
| Logowanie | Google albo e-mail i hasło |
Kody błędów
Błędy wracają jako JSON ze stałym type; nieudane i odrzucone zapytania są bezpłatne.
| Kod | Typ | Znaczenie |
|---|---|---|
400 | bad_request | błędny JSON, puste wiadomości, zły parametr lub za długi kontekst |
401 | missing_key · invalid_key · key_revoked | brak klucza, zły klucz lub klucz zastąpiony nowym |
402 | no_credit | brak kredytu — doładuj, działa od razu |
403 | content_blocked | treści seksualne z nieletnimi — odmowa, bez opłaty |
404 | not_found | nieznany endpoint |
413 | request_too_large | treść większa niż 8 MB |
429 | rate_limited · concurrency | ponad 300/min lub 8 równolegle — odczekaj i ponów |
503 | upstream_busy | model zajęty — ponów za kilka sekund |