Trzy wartości, których potrzebujesz
Pytanie o podstawowy URL glm api zwykle pochodzi od kogoś, kto ma klienta wymagającego URL, klucza i nazwy modelu, ale nie wie, które wartości gdzie wpisać. Tutaj znajdziesz je wszystkie w jednym miejscu.
| Ustawienie | Wartość |
|---|---|
| Podstawowy URL | https://api.glmapi.cc/v1 |
| ID modelu | uncensored |
| Nagłówek Auth | Authorization: Bearer YOUR_KEY |
| Endpoint czatu | POST /v1/chat/completions |
| Lista modeli | GET /v1/models |
Jasne wyjaśnienie przed skopiowaniem czegokolwiek. Nazwa w domenie odnosi się do frazy wyszukiwania, a nie do modelu. Jest to hostowana, kompatybilna z OpenAI usługa tekstowa dla jednego modelu o otwartych wagach, uruchamiana przez niezależnego dostawcę, zoptymalizowana pod kątem odpowiedzi bez odmów treści, do zgodnego z prawem użytku przez dorosłych. Nie jest to oficjalne API dostawcy stojącego za GLM ani router przesyłający żądania do innych dostawców. Jeśli potrzebujesz oficjalnego modelu GLM, użyj usługi własnego dostawcy.
Klucz otrzymujesz, rejestrując się przez Google lub podając adres e-mail i hasło. Na stronie klucza API dostępny jest również jednorazowy kredyt próbny $0,50 ważny przez 7 dni bez karty.
Sprawdź połączenie z curl
Przed użyciem dowolnego SDK lub aplikacji potwierdź klucz i URL zwykłym żądaniem. Jeśli zadziała, każdy kolejny problem dotyczy konfiguracji klienta, a nie konta. Najpierw wypisz modele:
curl https://api.glmapi.cc/v1/models \
-H "Authorization: Bearer YOUR_KEY"Powinieneś otrzymać listę JSON, która zawiera id uncensored. Następnie wyślij jedno zapytanie uzupełnienia czatu:
curl https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Reply with the word ready."}],
"max_tokens": 20
}'Dodaj -i, aby zobaczyć nagłówki odpowiedzi. Zawierają one X-Request-Id, X-Balance-USD (twój pozostały kredyt), X-RateLimit-Limit-Requests oraz X-RateLimit-Limit-Concurrency. Zachowaj identyfikator żądania, jeśli kiedykolwiek będziesz potrzebował zgłosić problem z połączeniem do wsparcia.
Python i Node
Oficjalne SDK OpenAI akceptują niestandardowy podstawowy URL. Zmieniasz dwa argumenty konstruktora i nazwę modelu; reszta kodu pozostaje bez zmian.
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.glmapi.cc/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a tavern."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.glmapi.cc/v1",
apiKey: process.env.GLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three names for a tavern." }],
});
console.log(resp.choices[0].message.content);Właściwość Node to baseURL z wielkimi literami, podczas gdy argument Pythona to base_url. Ich pomieszanie to klasyczny sposób na ciche przejście do domyślnego hosta SDK i uzyskanie błędu uwierzytelnienia od niewłaściwego serwera.
Zmienne środowiskowe zamiast kodu
SDK OpenAI odczytują OPENAI_BASE_URL i OPENAI_API_KEY ze środowiska, gdy nie przekażesz ich jawnie. To najmniej inwazyjna metoda przekierowania narzędzia, którego nie możesz edytować, np. skryptu z repozytorium lub frameworka, który tworzy klienta za Ciebie.
export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.pyNadal musisz ustawić nazwę modelu wewnątrz narzędzia lub jego pliku konfiguracyjnego na uncensored, ponieważ nie ma zmiennej środowiskowej, która ją zawiera. Jeśli lista rozwijana narzędzia wyświetla tylko znane nazwy, poszukaj opcji niestandardowego modelu lub pola tekstowego.
Trzymaj wartości w jednym miejscu
Gdy połączenie zadziała, unikaj wklejania URL do pięciu plików. Umieść trzy wartości w jednym miejscu i odczytuj je wszędzie indziej. Plik .env sprawdzi się w małych projektach:
GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensoredNastępnie załaduj je raz przy starcie i zbuduj jednego klienta, którego importuje reszta programu. Korzyść objawia się w dniu zmiany kluczy, dodania klucza środowiska testowego z saldem z kredytu próbnego lub porównania tego endpointu z innym. Edytujesz plik, a nie cały kod.
Przechowuj oddzielne klucze dla środowiska deweloperskiego i produkcyjnego, jeśli konto na to pozwala, i rotuj klucz natychmiast, jeśli pojawi się w commicie, zrzucie ekranu lub wspólnym logu. Przecieknięty klucz zużywa Twój przedpłacony kredyt, a kredyt nie wraca.
Aplikacje czatu i frameworki
Interfejsy różnią się nazewnictwem, ale pytają o te same trzy wartości. Szukaj typu połączenia OpenAI-compatible, custom OpenAI lub podobnego, a następnie wypełnij:
- URL API / Base URL:
https://api.glmapi.cc/v1 - Klucz API: klucz z Twojego konta
- Model:
uncensored
SillyTavern pozwala dodać endpoint zgodny z OpenAI poprzez niestandardowe źródło chat completion, a Open WebUI ma typ połączenia zgodny z OpenAI w ustawieniach. Frameworki takie jak LangChain przyjmują base_url w klasie modelu czatu, a LiteLLM może kierować modelem w stylu OpenAI przez niestandardową bazę API. Nazwy menu różnią się między wersjami, więc postępuj zgodnie z bieżącą dokumentacją każdego projektu, aby dokładnie wiedzieć, gdzie znajduje się to pole.
Niektóre aplikacje pytają, czy mają dołączyć /chat/completions za Ciebie. Wiele z nich to robi, co oznacza, że URL, który wpisujesz, musi kończyć się na /v1. Jeśli aplikacja zamiast tego pyta o pełny endpoint, podaj jej https://api.glmapi.cc/v1/chat/completions. Szybki start pokazuje szczegółowo obsługiwane pola żądań.
Dlaczego pierwsze połączenie się nie udaje
Jeśli test curl przejdzie pomyślnie, a aplikacja nadal zgłasza błąd, przyczyną jest prawie zawsze jedno z poniższych:
- Brakujący
/v1. Samo użyciehttps://api.glmapi.ccnajprawdopodobniej zakończy się błędem not-found, ponieważ trasy znajdują się pod/v1. - Zduplikowana ścieżka. Aplikacja dołącza
/chat/completions, a Ty wpisujesz ją ręcznie, co daje/chat/completions/chat/completions. Usuń ją z podstawowego URL. - Końcowy ukośnik. Niektóre klienty źle łączą ścieżki. Usuń końcowy
/, jeśli widzisz podwójny ukośnik w zapisanym w logach URL. - Niewłaściwa nazwa modelu. Jedynym identyfikatorem modelu jest
uncensored. Nazwy z innych usług nie będą pasować. - Problemy z kluczem. Sprawdź, czy nie ma przypadkowej spacji lub znaku nowej linii przy wklejaniu oraz czy klucz nie jest wysyłany jako
Bearerdwukrotnie przez aplikację, która już dodaje prefiks. - Wywołanie niewłaściwego hosta. W aplikacji przeglądarkowej nieustawiony podstawowy URL powoduje powrót do hosta domyślnego SDK. Zaloguj faktyczny URL żądania.
Połączenia po stronie przeglądarki również narażają Twój klucz na wgląd każdego, kto otworzy narzędzia deweloperskie. Na publicznej stronie wysyłaj żądania z własnego serwera i trzymaj klucz tam.
Gdy nic z tego nie wyjaśnia problemu, wróć do najmniejszego przypadku. Uruchom polecenie curl z wcześniejszego przykładu na tej samej maszynie co aplikację, która zawodzi. Jeśli curl się powiedzie, sieć i klucz są w porządku, a aplikacja buduje zapytanie inaczej, więc włącz debugowanie i porównaj zalogowany URL, nagłówki i ciało JSON z wersją curl znak po znaku. Jeśli curl zawodzi tylko na tej maszynie, sprawdź korporacyjne proxy, reguły VPN i filtry DNS, które czasem blokują nieznane nazwy hostów API. Zapytanie, które nigdy nie dotrze do serwera, nie zwraca X-Request-Id, co jest szybkim sposobem na rozróżnienie tych dwóch przypadków.
Limity i odpowiedzi 429
Pełny klucz pozwala na 8 żądań równoległych i 300 żądań na minutę. Klucz próbny pozwala na 2 i 60. Przekroczenie któregokolwiek z limitów powoduje zwrócenie przez API kodu HTTP 429 z kodem rate_limited (za dużo na minutę) lub concurrency (za dużo naraz). Podczas tymczasowego przeciążenia otrzymasz również 429 z nagłówkiem Retry-After: 5.
Zapytanie strumieniowe zajmuje slot równoległości do końca strumienia, więc aplikacja, która otwiera strumień i porzuca go bez zamknięcia połączenia, może zablokować własne sloty. Maksymalny rozmiar ciała zapytania to 8 MB, a okno kontekstu wynosi 100 000 tokenów obejmujących razem prompt i completion. Aby zobaczyć stawki i doładować kredyt, zobacz stronę z cenami.
Strumieniowanie, narzędzia i JSON używają tego samego URL
Nie ma osobnego adresu dla strumieniowania ani wywoływania funkcji. Wszystko kieruje się do /v1/chat/completions, a funkcje włączasz w ciele żądania. Żądanie strumieniowania ustawia "stream": true i zwraca zdarzenia wysyłane przez serwer; żądanie z narzędziami dodaje tools i opcjonalnie tool_choice; tryb JSON dodaje response_format z typem json_object. Pola próbkowania takie jak temperature, top_p, stop, seed oraz kary są przekazywane dalej.
Oto wywołanie curl ze strumieniowaniem. Flaga -N wyłącza buforowanie wyjścia w curlu, więc widzisz fragmenty, gdy przychodzą:
curl -N https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","stream":true,"messages":[{"role":"user","content":"Count to five."}]}'Jeśli Twój proxy lub warstwa hostingu buforuje odpowiedzi, strumieniowanie będzie wyglądać jak jedna duża opóźniona odpowiedź. Proxy odwrotne często wymagają wyłączenia buforowania odpowiedzi dla zdarzeń wysyłanych przez serwer, więc sprawdź to ustawienie, zanim obwinisz API. Działającą wersję w Pythonie dla każdej funkcji znajdziesz w: szybki start.
Więcej przewodników
Pytania i odpowiedzi
Jaki jest podstawowy URL tego API?
https://api.glmapi.cc/v1. Żądania czatu kierują się do /chat/completions, a lista modeli znajduje się pod /models.
Jakiej nazwy modelu użyć?
Użyj uncensored. To jedyne ID modelu i działa w dowolnym kliencie w stylu OpenAI, który pozwala wpisać niestandardowy model.
Czy to oficjalne API GLM?
Nie. Jest to niezależna usługa zgodna z OpenAI, obsługująca jeden model o otwartych wagach, i nie jest oficjalnym API żadnego dostawcy.
W jakim nagłówku znajduje się klucz?
Authorization: Bearer, a po nim Twój klucz. SDK OpenAI dodają go automatycznie, gdy przekażesz klucz.
Czy potrzebuję karty, aby przetestować połączenie?
Nie. Po rejestracji na stronie klucza API dostępny jest jednorazowy kredyt próbny za $0,50 ważny przez 7 dni.
Twój klucz jest o jeden formularz stąd
Utwórz konto, skopiuj klucz, zmień bazowy URL. To cała konfiguracja.
