IT ▾
Ottieni la chiave API

URL base API GLM: connetti qualsiasi client OpenAI

L'URL di base dell'API glm per questo servizio è https://api.glmapi.cc/v1, l'ID del modello è uncensored e l'autenticazione è una chiave Bearer standard. Di seguito sono riportate le impostazioni esatte per curl, Python, Node e le interfacce di chat più comuni, oltre agli errori che causano la maggior parte dei fallimenti nelle prime chiamate.

Punti chiave

  • URL base: https://api.glmapi.cc/v1. Modello: uncensored. Intestazione: Authorization: Bearer <key>.
  • Due endpoint: POST /v1/chat/completions e GET /v1/models.
  • La maggior parte degli errori di connessione deriva da un /v1 mancante, un percorso duplicato o una barra finale incollata.
  • Questo è un endpoint indipendente, non l'API ufficiale del fornitore dietro GLM o di qualsiasi altro fornitore.
Terminale collegato con un cavo luminoso a un server, che illustra il puntamento di un client a un nuovo URL di base dell'API

I tre valori di cui hai bisogno

Una domanda sull'URL base dell'API glm di solito arriva da chi ha un client che vuole un URL, una chiave e un nome modello, e non sa quali valori inserire dove. Ecco tutti i valori in un unico posto.

ImpostazioneValore
URL di basehttps://api.glmapi.cc/v1
ID modellouncensored
Intestazione di autenticazioneAuthorization: Bearer YOUR_KEY
Endpoint chatPOST /v1/chat/completions
Elenco modelliGET /v1/models

Un chiarimento prima di copiare qualsiasi cosa. Il nome del dominio si riferisce al termine di ricerca, non al modello. Questa è un'API testuale ospitata compatibile con OpenAI per un modello a pesi aperti gestita da un fornitore indipendente, ottimizzata per rispondere senza rifiuti di contenuti per uso adulto legale. Non è l'API ufficiale del fornitore dietro GLM e non è un router che instrada verso altri fornitori. Se hai bisogno di un modello GLM ufficiale, usa il servizio del fornitore.

Ottieni una chiave iscrivendoti con Google o con email e password. La pagina della chiave API include anche una richiesta di prova da $0,50 con un solo clic, valida per 7 giorni senza carta.

Verifica la connessione con curl

Prima di toccare qualsiasi SDK o app, conferma la chiave e l'URL con una richiesta semplice. Se questo funziona, ogni problema successivo è nella configurazione del client e non nell'account. Prima, elenca i modelli:

curl https://api.glmapi.cc/v1/models \
  -H "Authorization: Bearer YOUR_KEY"

Dovresti ottenere un elenco JSON che include l'id uncensored. Poi invia una completazione chat:

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
  }'

Aggiungi -i per vedere le intestazioni della risposta. Includono X-Request-Id, X-Balance-USD (il tuo credito residuo), X-RateLimit-Limit-Requests e X-RateLimit-Limit-Concurrency. Conserva l'ID della richiesta se dovessi mai chiedere al supporto riguardo a una chiamata.

Python e Node

Gli SDK ufficiali OpenAI accettano un URL base personalizzato. Modifichi due argomenti del costruttore e il nome del modello; il resto del tuo codice rimane così com'è.

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);

La proprietà di Node è baseURL con le lettere maiuscole, mentre l'argomento Python è base_url. Confonderli è un modo classico per tornare silenziosamente all'host predefinito dell'SDK e ottenere un errore di autenticazione dal server sbagliato.

Variabili d'ambiente invece che codice

Gli SDK OpenAI leggono OPENAI_BASE_URL e OPENAI_API_KEY dall'ambiente quando non li passi esplicitamente. Questo è il metodo meno invasivo per reindirizzare uno strumento che non puoi modificare, come uno script da un repository o un framework che crea il client per te.

export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.py

Devi comunque impostare il nome del modello all'interno dello strumento o del suo file di configurazione su uncensored, perché nessuna variabile d'ambiente lo trasmette. Se lo strumento ha un menu a discesa per i modelli che elenca solo nomi noti, cerca un'opzione per un modello personalizzato o per testo libero.

Mantieni i valori in un unico posto

Una volta che la connessione funziona, evita di incollare l'URL in cinque file. Inserisci i tre valori in un unico punto e leggili ovunque altrove. Un file .env funziona per piccoli progetti:

GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensored

Poi caricali una volta all'avvio e crea un unico client che il resto del programma importa. Il vantaggio si vede il giorno in cui cambi le chiavi, aggiungi una chiave di staging con un saldo di prova o confronti questo endpoint con un altro. Modifichi un file, non il tuo codice sorgente.

Mantieni chiavi separate per sviluppo e produzione dove l'account lo consente e ruota immediatamente una chiave se appare in un commit, uno screenshot o un log condiviso. Una chiave rubata spende il tuo credito prepagato e il credito non torna.

App chat e framework

Le interfacce differiscono nella terminologia ma richiedono gli stessi tre valori. Cerca un tipo di connessione chiamato OpenAI-compatible, custom OpenAI o simile, poi compila:

  • URL API / URL base: https://api.glmapi.cc/v1
  • Chiave API: la chiave dal tuo account
  • Modello: uncensored

SillyTavern ti permette di aggiungere un endpoint compatibile con OpenAI tramite la sua origine di completamento di chat personalizzata, e Open WebUI ha un tipo di connessione compatibile con OpenAI nelle impostazioni. Framework come LangChain accettano un base_url sulla loro classe del modello di chat, e LiteLLM può instradare un modello in stile OpenAI attraverso un URL di base API personalizzato. I nomi dei menu cambiano tra le versioni, quindi segui la documentazione corrente di ciascun progetto per sapere esattamente dove si trova il campo.

Alcune app ti chiedono se aggiungere /chat/completions per te. Molte lo fanno, il che significa che l'URL che inserisci deve terminare a /v1. Se invece un'app ti chiede l'endpoint completo, fornisci https://api.glmapi.cc/v1/chat/completions. La guida rapida mostra i campi di richiesta supportati in maggiore dettaglio.

Perché la prima chiamata fallisce

Se il test curl passa e la tua app genera ancora un errore, la causa è quasi sempre una di queste:

  • Mancanza di /v1. Usare solo https://api.glmapi.cc molto probabilmente fallirà con un errore not-found, perché le rotte sono sotto /v1.
  • Percorso duplicato. L'app aggiunge /chat/completions e tu l'hai digitato anche tu, producendo /chat/completions/chat/completions. Rimuovilo dall'URL base.
  • Barra finale. Alcuni client uniscono i percorsi in modo errato. Rimuovi una / finale se vedi una doppia barra nell'URL registrato.
  • Nome modello sbagliato. L'unico ID modello è uncensored. I nomi di altri servizi non corrisponderanno.
  • Problemi chiave. Controlla la presenza di spazi o interruzioni di riga quando incolli, e che la chiave venga inviata come Bearer due volte da un'app che aggiunge già il prefisso.
  • Chiamata all'host sbagliato. In un'app browser, un URL di base non impostato ripiega sull'host predefinito dell'SDK. Registra l'URL della richiesta effettiva.

Le chiamate lato browser espongono anche la chiave a chiunque apra gli strumenti di sviluppo. Per un sito pubblico, invia le richieste dal tuo server e tieni la chiave lì.

Quando nulla di tutto ciò lo spiega, procedi a ritroso dal caso più piccolo. Esegui il comando curl da prima sulla stessa macchina dell'app che fallisce. Se curl ha successo lì, la rete e la chiave sono a posto e l'app sta costruendo la richiesta in modo diverso, quindi attiva il logging di debug e confronta l'URL registrato, le intestazioni e il corpo JSON con la versione curl, carattere per carattere. Se curl fallisce solo su quella macchina, controlla i proxy aziendali, le regole VPN e i filtri DNS, che a volte bloccano i nomi host API non familiari. Una richiesta che non raggiunge mai il server non restituisce X-Request-Id, che è un modo rapido per distinguere i due casi.

Limiti e risposte 429

Una chiave completa permette 8 richieste concorrenti e 300 richieste al minuto. Una chiave di prova ne permette 2 e 60. Superi uno di questi limiti e l'API restituisce HTTP 429 con il codice rate_limited (troppe al minuto) o concurrency (troppe contemporaneamente). Durante un sovraccarico temporaneo ricevi anche un 429, con un'intestazione Retry-After: 5.

Una richiesta in streaming occupa il suo slot di concorrenza fino alla fine dello stream, quindi un'app che apre uno stream e lo abbandona senza chiudere la connessione può esaurire le risorse. Il corpo massimo della richiesta è 8 MB e la finestra di contesto è di 100.000 token che coprono prompt e completamento insieme. Per le tariffe e le ricariche, vedi la pagina dei prezzi.

Streaming, strumenti e JSON usano lo stesso URL

Non c'è un indirizzo separato per lo streaming o la chiamata di funzioni. Tutto va a /v1/chat/completions, e attivi le funzionalità nel corpo della richiesta. Una richiesta in streaming imposta "stream": true e restituisce eventi server-sent; una richiesta con strumenti aggiunge tools e opzionalmente tool_choice; la modalità JSON aggiunge response_format con il tipo json_object. I campi di campionamento come temperature, top_p, stop, seed e le penalità vengono passati attraverso.

Ecco una chiamata curl in streaming. Il flag -N disattiva il buffering dell'output di curl, così vedi i chunk mentre arrivano:

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."}]}'

Se il tuo proxy o livello di hosting memorizza in buffer le risposte, lo streaming sembrerà una grande risposta ritardata. I proxy inversi spesso necessitano che il buffering delle risposte sia disattivato per gli eventi server-sent, quindi controlla questa impostazione prima di dare la colpa all'API. Per una versione Python funzionante di ogni funzionalità, vedi la guida rapida.

Domande e risposte

Qual è l'URL base per questa API?

https://api.glmapi.cc/v1. Le richieste di chat vanno a /chat/completions sotto questo URL, e l'elenco dei modelli è su /models.

Quale nome di modello devo usare?

Usa uncensored. È l'unico ID modello e funziona in qualsiasi client in stile OpenAI che ti permette di digitare un modello personalizzato.

Questa è l’API ufficiale di GLM?

No. È un servizio indipendente e compatibile con OpenAI che esegue un modello a pesi aperti, e non è l’API ufficiale di alcun fornitore.

Quale intestazione trasporta la chiave?

Authorization: Bearer seguito dalla tua chiave. Gli SDK OpenAI la aggiungono automaticamente quando passi la chiave.

Mi serve una carta per testare la connessione?

No. È disponibile una prova gratuita con un solo clic da $0,50, valida per 7 giorni, nella pagina della chiave API dopo l'accesso.

La tua chiave è a un modulo di distanza

Crea un account, copia la chiave, modifica l'URL di base. È tutta la configurazione.

Ottieni chiave APILeggi i documenti