Passa al contenuto principale

Provider di modelli

Obiettivo: aggiungere un provider di modelli e puntarci gli agenti con un manifest Model.

Prerequisiti​

  • Un endpoint che parla l'API chat-completions di OpenAI, oppure un account OpenRouter.
  • La chiave API, se l'endpoint ne richiede una, in una variabile d'ambiente.

Passi​

  1. Scegli un provider: openrouter, oppure openai-compatible per qualunque endpoint che parla l'API chat-completions di OpenAI (Ollama, vLLM, OpenAI).

  2. Dichiara un manifest Model. È un alias, e il suo provider indica una porta di un plugin:

    apiVersion: afe.dev/v1alpha1
    kind: Model
    metadata:
    name: locale
    spec:
    provider: openai-compatible
    model: qwen2.5-coder:7b
    baseUrl: http://127.0.0.1:11434/v1
    pricing: none
  3. Nomina con apiKeyEnv la variabile d'ambiente che contiene la chiave API. Il valore della chiave non attraversa mai la porta.

  4. Esegui il flow. afe run chiede le chiavi dei soli provider che un flow usa davvero, prima che il run parta.

Note​

Oggi arrivano due provider:

ProviderCos'è
openrouterUn endpoint cloud che riporta il costo di ogni chiamata.
openai-compatibleQualunque endpoint che parla l'API chat-completions di OpenAI (Ollama, vLLM, OpenAI). Con pricing: none un modello locale costa zero.

Risoluzione dei problemi​

invalid configuration: model 'locale': set OPENROUTER_API_KEY Il flow usa un modello la cui variabile apiKeyEnv non è impostata nell'ambiente che vede afe run o afe worker. Esporta la variabile prima che il run parta. afe serve non ha bisogno del valore della chiave: non esegue alcun harness e risolve solo il provider. Nemmeno un run --dry ne ha bisogno.

model 'locale': <errore del plugin> Il campo provider nomina una porta che nessun plugin installato fornisce. Controlla il valore rispetto ai provider che la tua configurazione installa davvero (openrouter, openai-compatible, o un plugin che hai aggiunto).

Il ledger mostra costo 0 per un modello che ti aspetti di pagare Il provider non ha riportato un costo, e il manifest Model non ha pricing. Aggiungi un pricing numerico (prezzo per token in ingresso e in uscita) al manifest, così il ledger può calcolare il costo dai token usati.

Vedi anche​