HomeGuida
Chiave API di AnythingLLM: Connetti un endpoint OpenAI personalizzato personalizzato
Per usare una chiave API di AnythingLLM con un endpoint personalizzato, seleziona il provider Generic OpenAI e inserisci una base URL, una chiave e un ID del modello. I passaggi e i test sono di seguito.
Aggiornato
Quale chiave API intendi
Le persone che cercano anything llm api key di solito intendono una di due cose, e le due sono facili da confondere. La prima è la chiave che AnythingLLM invia a un provider di modelli per generare risposte. La seconda è una chiave API per sviluppatori che AnythingLLM crea essa stessa, in modo che altri programmi possano chiamare la propria API di AnythingLLM. Sono chiavi diverse con compiti diversi.
Questo articolo riguarda il primo caso: fornire a AnythingLLM una chiave e un endpoint per un'API chat compatibile con OpenAI. Prenderai la chiave dalla pagina della chiave API, la incollerai in AnythingLLM insieme all'URL base https://api.llmapisource.com/v1, e userai l'ID modello uncensored. Se invece devi chiamare AnythingLLM dal tuo codice, genera quella chiave nelle impostazioni di AnythingLLM; non c'entra con questa chiave del provider.
Prima di iniziare: testa la chiave fuori da AnythingLLM
La metà delle domande di supporto sugli endpoint personalizzati si rivela essere una chiave errata o un errore di battitura nell'URL. Un test di trenta secondi con curl separa "l'endpoint è sbagliato" da "l'app è configurata male". Elenca prima i modelli:
curl https://api.llmapisource.com/v1/models \
-H "Authorization: Bearer YOUR_KEY" | grep uncensored
Dovresti vedere una riga che include uncensored. Poi invia una richiesta chat:
curl https://api.llmapisource.com/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
}'
Se entrambe le chiamate funzionano, la chiave e l'URL sono validi e qualsiasi cosa fallisca in seguito è un'impostazione all'interno dell'app. Se non hai ancora una chiave, registrati con Google o con email e password. I nuovi utenti possono richiedere $0,50 di credito di prova con un clic sulla pagina della chiave, senza bisogno di una carta e valido per 7 giorni. È abbastanza per completare tutta questa configurazione e testarla.
Configurazione in AnythingLLM
AnythingLLM supporta diversi provider LLM e uno di essi è un'opzione generica compatibile con OpenAI. La dicitura dei menu cambia tra le versioni, quindi considera i nomi seguenti come una guida piuttosto che uno script esatto.
- Apri le impostazioni di AnythingLLM e trova la preferenza LLM (a volte etichettata come provider LLM).
- Scegli Generic OpenAI dall'elenco dei provider.
- Imposta Base URL su
https://api.llmapisource.com/v1. Includi/v1e lascia fuori/chat/completionsalla fine; l'app aggiunge il percorso da sola. - Incolla la tua chiave nel campo API Key. L'app la invia come
Authorization: Bearer, come richiesto da questa API. - Imposta Chat Model Name su
uncensored. - Imposta Token context window su 100000. La finestra del modello è di 100.000 token, prompt più completamento, e un valore basso qui fa tagliare AnythingLLM la cronologia prima del necessario.
- Lascia max_tokens vuoto o imposta un limite che ti sta bene. È opzionale lato API.
- Salva, apri un'area di lavoro e invia un messaggio.
Se il workspace ha le proprie impostazioni di chat, verifica che stia utilizzando il provider predefinito di sistema anziché una sovrascrittura più vecchia. Un workspace fissato a un provider precedente è una causa comune per cui una modifica sembra non avere effetto.
Embedding e documenti richiedono un componente separato
AnythingLLM svolge due compiti. Chatta con un modello e indicizza i tuoi documenti in modo che il modello possa rispondere basandosi su di essi. La seconda funzione utilizza un modello di embedding, e questa API non offre embedding. Espone POST /v1/chat/completions e GET /v1/models, con testo in input e testo in output.
Questo non ti blocca. AnythingLLM ti permette di scegliere l'embedder separatamente dal modello di chat, e può utilizzare un embedder locale integrato o un altro provider che configuri tu. Imposta l'embedder su qualcosa che non sia questo endpoint, e usa questo endpoint solo per il modello di chat. Lo stesso vale per le funzionalità di immagini o audio: il modello è solo testuale, senza generazione di immagini, audio o video e senza fine-tuning.
Quando chatti con i documenti, i brani recuperati vengono incollati nel prompt, quindi i token di input aumentano. A $0,15 per 1M di token di input, un prompt da 6.000 token con 500 token di output costa 6.000 x $0,15 / 1.000.000 = $0,0009 per l'input più 500 x $0,50 / 1.000.000 = $0,00025 per l'output, o $0,00115 per domanda. I workspace pesanti di documenti costano più della chat semplice, ma ancora una frazione di centesimo per domanda.
Verifica streaming, strumenti e modalità JSON
AnythingLLM trasmette le risposte in streaming, e l'API supporta gli Server-Sent Events con stream: true, terminando con un blocco di utilizzo. Se le tue risposte appaiono tutte insieme invece che token per token, il problema è di solito un proxy davanti all'app che memorizza le risposte, non l'endpoint. Puoi verificare lo streaming da uno script con l'SDK Python di OpenAI:
from openai import OpenAI
client = OpenAI(
base_url="https://api.llmapisource.com/v1",
api_key="YOUR_KEY",
)
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "List three uses of a local knowledge base."}],
stream=True,
stream_options={"include_usage": True},
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
if chunk.usage:
print("\ntokens:", chunk.usage.prompt_tokens, chunk.usage.completion_tokens)
La chiamata di funzioni e la modalità JSON funzionano attraverso lo stesso endpoint di chat, il che è importante se costruisci agent o flussi intorno all'app. La modalità JSON è un singolo campo:
curl https://api.llmapisource.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Return a JSON object with keys title and summary."},
{"role": "user", "content": "Summarize: a notes app that works offline."}
]
}'
Gli strumenti usano i campi tools e tool_choice, con risultati restituiti come messaggi role: "tool". Se AnythingLLM espone una certa funzione agent dipende dalla versione dell'app, quindi testa la chiamata in uno script prima e poi prova la funzione nell'app. La documentazione mostra un esempio completo di chiamata di funzioni.
Correzione degli errori comuni
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Errore 401 o di autenticazione | Chiave incollata con uno spazio, o una chiave vecchia | Copia di nuovo la chiave dalla pagina della chiave e incollala senza spazi |
| 404 o "non trovato" | Base URL manca /v1, o ha /chat/completions alla fine | Usa esattamente https://api.llmapisource.com/v1 |
| Modello non trovato | Nome del modello digitato in modo diverso | Usa uncensored, tutto minuscolo, niente aggiunto |
429 con rate_limited | Più di 300 richieste al minuto (60 su una chiave di prova) | Rallenta o batchizza meno aggressivamente |
429 con concurrency | Più di 8 richieste simultanee (2 con una chiave di prova) | Riduci i workspace paralleli o gli agent; uno streaming mantiene il suo slot fino alla fine |
429 con un'intestazione Retry-After: 5 | Sovraccarico temporaneo | Attendi 5 secondi e ritenta |
| Risposte troncate precocemente | max_tokens basso nell'app | Aumentalo o cancellalo |
L'header X-Request-Id su ogni risposta aiuta se contatti supporto per una chiamata specifica. Il saldo in X-Balance-USD ti dice anche rapidamente se un fallimento è solo un account vuoto.
Migliorare le risposte da un workspace
Una volta che la connessione funziona, alcune abitudini del workspace fanno una differenza visibile. Scrivi un prompt di sistema per il workspace che indichi il ruolo, il tono e cosa fare quando i documenti non contengono la risposta. Senza quell'ultima istruzione un modello indovinerà spesso, e un'indovinello che suona sicuro è peggio di un semplice "Non ho trovato quella informazione nei documenti".
La temperatura è l'altra leva. Per rispondere a domande sui tuoi file, un valore basso come 0,2 a 0,4 mantiene le risposte vicine al testo recuperato. Per il brainstorming o la stesura, aumentalo verso 0,8. L'API passa temperatura, top_p, stop, seed e le penalità, quindi qualsiasi cosa l'app invii raggiunge il modello invariata.
Tieni d'occhio quanti frammenti l'area di lavoro allega a ogni domanda. Ogni frammento extra è più token di input, e con una finestra di 100.000 token hai spazio, ma paghi anche per ciascuno a ogni turno. Inizia con un piccolo numero di frammenti e aumentalo solo quando le risposte mancano di materiale rilevante.
Note su privacy e costi
I prompt inviati tramite l'API non vengono utilizzati per l'addestramento. I tuoi documenti viaggiano ancora verso l'endpoint all'interno dei prompt quando AnythingLLM recupera i passaggi, quindi scegli con cura quali workspace inviare. Per il materiale che non deve mai lasciare il tuo computer, utilizza invece un modello locale.
La fatturazione è a consumo (pay as you go) a partire dal credito prepagato: $0,15 per 1M di token di input e $0,50 per 1M di token di output, ricariche da $20 a $500, con bonus del 5% da $50, del 10% da $100 e del 15% da $200. Il credito non scade mai e le richieste fallite o rifiutate non vengono addebitate. La pagina prezzi elenca i metodi di pagamento.
Altre guide
Domande e risposte
Quale opzione provider devo selezionare in AnythingLLM?
Seleziona Generic OpenAI. Inserisci https://api.llmapisource.com/v1 come URL di base, la tua chiave come chiave API e uncensored come nome del modello di chat.
Quale finestra di contesto token devo inserire?
Utilizza 100000, che corrisponde alla finestra da 100.000 token del modello per prompt più completamento.
Posso utilizzare questo endpoint per gli embedding in AnythingLLM?
No. L'API serve solo completamenti di chat e un elenco di modelli. Seleziona un embedder diverso in AnythingLLM e utilizza questo endpoint per il modello di chat.
La chiave API per gli sviluppatori di AnythingLLM è la stessa?
No. Quella chiave viene creata all'interno di AnythingLLM affinché altri programmi possano chiamare l'app. La chiave di questo servizio è ciò che AnythingLLM invia all'endpoint di chat.
