Wymagania wstępne: Konfiguracja SDK
Zainstaluj oficjalną bibliotekę klienta dla preferowanego języka przed skonfigurowaniem połączenia. Biblioteka automatycznie obsługuje serializację JSON, ponawianie i protokoły strumieniowania.
Dla Python zainstaluj pakiet przez pip. Dla Node.js użyj npm lub yarn, aby dodać zależność do swojego projektu.
Upewnij się, że używasz najnowszej wersji SDK, aby wspierać wszystkie funkcje, takie jak wywoływanie funkcji i tryb JSON.
Konfiguracja: Podstawowy URL & Klucz
Wskaż klienta SDK na nasz konkretny adres bazowy i podaj klucz API, który otrzymałeś podczas rejestracji.
Podstawowy adres URL to HTTPS://api.claudellmapi.com/v1. Zapewnia to, że wszystkie żądania trafiają na serwery naszego modelu bez ograniczeń zamiast do domyślnego dostawcy.
Ustaw klucz API jako zmienną środowiskową lub przekaż go bezpośrednio do konstruktora klienta. Nie są wymagane dodatkowe nagłówki.
Wysyłanie pierwszej prośby
Wyślij proste żądanie chat completion, aby zweryfikować łączność i jakość odpowiedzi. Użyj identyfikatora modelu 'uncensored', aby uzyskać dostęp do modelu bez ograniczeń.
Struktura żądania odzwierciedla standardowy format OpenAI, co ułatwia wymianę istniejących integracji.
Oczekuj odpowiedzi tekstowej zawierającej odpowiedź modelu na Twój prompt.
Obsługa odpowiedzi strumieniowych
Włącz strumieniowanie, aby otrzymywać tokeny w miarę ich generowania, zmniejszając postrzeganą latencję dla długich wyjść.
Ustaw parametr stream na true w żądaniu. SDK będzie zwracać fragmenty tekstu, gdy staną się dostępne.
To idealne dla interfejsów czatu, w których użytkownicy oczekują natychmiastowej informacji zwrotnej, podczas gdy model nadal myśli.
Implementacja wywoływania funkcji
Zdefiniuj narzędzia w żądaniu, aby pozwolić modelowi zwracać dane strukturalne zamiast zwykłego tekstu.
Specify the function schema and set tool_choice to 'auto' or a specific function name.
Model odpowie obiektem wywołania funkcji, który możesz wykonać w swoim kodzie. Działa to bezproblemowo z naszym modelem uncensored.
Obsługa błędów & Limity
Obsłuż typowe błędy HTTP w sposób elegancki, aby zapewnić płynne doświadczenie użytkownika. Status 401 wskazuje na nieprawidłowy lub brakujący klucz API. Status 402 oznacza, że Twoje prepaydowane środki zostały wyczerpane. Status 429 sygnalizuje, że przekroczyłeś limit szybkości wynoszący 300 żądań na minutę.
Twój kontekst wynosi 100 000 tokenów łącznie dla promptu i uzupełnienia. Żądania przekraczające limit 8 MB w ciele żądania również zostaną odrzucone.
cURL
curl https://api.claudellmapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "What are the current rate limits for large context windows"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.claudellmapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.claudellmapi.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);Strumieniowanie
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)