Felo API PlatformFelo API Platform

Veelgestelde vragen

Probleemoplossing

Los problemen met authenticatie, modellen, streaming, taken en snelheidslimieten op met een checklist op basis van symptomen.

Begin bij het symptoom en volg dan de oplossing. De meeste fouten komen door de base-URL, de sleutel, het model-ID of het saldo.

Tabel op basis van symptomen

SymptoomWaarschijnlijke oorzaakOplossing
401 UNAUTHORIZEDSleutel ontbreekt, is onjuist, ingetrokken of niet meegestuurdStuur Authorization: Bearer $FELO_API_KEY; maak een nieuwe sleutel als die is ingetrokken
402 INSUFFICIENT_CREDITSSaldo is niet toereikend voor de aanroepWaardeer op in Console Billing
404 bij elk verzoekDe base-URL bevat een pad dat het endpoint er zelf al aan toevoegtGebruik https://openapi.felo.ai/api/v1 voor OpenAI-clients en https://openapi.felo.ai/api voor Anthropic-clients
404 bij één modelHet model-ID is niet openbaar, of het endpoint bedient het model nietControleer het model-ID op de modellenpagina en in de documentatie van het endpoint
400-fout bij model of max_tokensEen verplicht veld ontbreekt, of het model accepteert de vorm van het verzoek nietVoeg max_tokens toe voor Messages; verwijder niet-ondersteunde velden
429Rate limit of een limiet van een upstream-providerLees Retry-After; zie Fouten, limieten en nieuwe pogingen
5xxFout bij de upstream of de dienstProbeer het opnieuw met backoff; vermeld request_id als de fout aanhoudt
Stream maakt verbinding maar stuurt nietsEen proxy buffert de respons, of de eventparser verwacht het verkeerde formaatLees de stream stapsgewijs; schakel responsebuffering in je proxy uit
Taak wordt nooit voltooidVerkeerd poll-endpoint, of een definitieve status is niet afgehandeldPoll het eigen status-endpoint van de taak en stop bij definitieve waarden
Tool calls worden genegeerdHet model adverteert die mogelijkheid nietControleer supported_parameters in de catalogus
Data API retourneert 404Het voorvoegsel /v1/beta is twee keer toegevoegdGebruik het pad precies zoals het in de referentie staat

Authenticatie

Een ingetrokken sleutel retourneert een bericht met het voorvoegsel van de sleutel:

{
  "status": 401,
  "code": "UNAUTHORIZED",
  "message": "API Key has been revoked (keyPrefix=...)"
}

Checklist:

  • De header is Authorization: Bearer <key> voor de Model API en de Felo API's.
  • De Data API accepteert ook X-API-Key: <key>.
  • De sleutel staat niet tussen aanhalingstekens en er staat geen nieuwe regel aan het einde die uit een gekopieerde omgevingsvariabele afkomstig is.
  • De omgeving waarin je implementeert heeft de variabele daadwerkelijk ingesteld; een sleutel die lokaal werkt, kan in productie ontbreken.
  • De sleutel is niet verwijderd of geroteerd. Een verwijderde of geroteerde sleutel kan niet opnieuw worden getoond; maak een nieuwe aan.

Zie Authenticatie voor het aanmaken van sleutels en de limieten.

Valkuilen met de base-URL

ClientJuiste base-URL
OpenAI SDKhttps://openapi.felo.ai/api/v1
Anthropic SDKhttps://openapi.felo.ai/api
Rechtstreeks model-endpointhttps://openapi.felo.ai/api/v1/chat/completions, /responses of /messages
Data APIhttps://openapi.felo.ai/v1/beta
Felo /v2-API'shttps://openapi.felo.ai/v2

Twee veelvoorkomende fouten:

  1. /chat/completions toevoegen aan een base-URL die de SDK er zelf al aan toevoegt.
  2. De Anthropic-base-URL instellen op https://openapi.felo.ai/api/v1. De SDK voegt /v1/messages toe, waardoor het verzoek /api/v1/v1/messages wordt.

Problemen met model-ID's

Model-ID's zijn de openbare ID's uit de catalogus, niet de interne namen van de upstream-provider of een weergavenaam.

  • Zoek het ID op de modellenpagina of in GET /api/v1/models op.
  • Controleer of het model het protocol ondersteunt dat je aanroept (supported_protocols).
  • Als je een kanaal hebt vastgezet, controleer dan of dat kanaal gepubliceerd en uitvoerbaar is voor dat model. Een niet-beschikbaar kanaal is geen terugvaloptie.

Zie Kanalen en providerroutering.

Problemen met streaming

  • Stel stream: true in de verzoekbody in, niet als queryparameter.
  • Lees de responsbody als stream. Wachten op de volledige respons maakt streaming nutteloos.
  • Sommige proxy's en serverless-platforms bufferen responsen. Schakel buffering uit voor de route die het verzoek doorstuurt.
  • Chat Completions streamt choices[0].delta, niet choices[0].message. De uiteindelijke inhoud komt binnen via vele chunks.
  • Een stream kan zonder nette terminale gebeurtenis eindigen als de verbinding wegvalt. Behandel een verbroken verbinding als een onvolledige respons.

Problemen met asynchrone taken

  • Poll het status-endpoint dat bij het soort taak hoort. Felo-workflows gebruiken GET /v2/tasks/{task_id}/status; video- en beeldtaken van modellen gebruiken hun eigen generatie-endpoints.
  • Stop bij elke definitieve status, ook bij fouten en verlopen statussen, niet alleen bij succes.
  • Callbacks voor video en afbeeldingen worden momenteel genegeerd. Wacht niet op een webhook.
  • Een resultaat-URL kan kort geldig zijn. Vraag een nieuwe URL aan bij het status-endpoint als een download verloopt.
  • Controleer de taak voordat je opnieuw indient. Een lopende taak opnieuw indienen maakt een duplicaat aan en beide worden gefactureerd.

Zie Asynchrone taken.

Problemen met de Data API

  • Houd het exacte methodepath uit de Data API-referentie aan.
  • Verzoekbodies zijn leveranciersspecifiek. Een veld dat voor de ene leverancier werkt, werkt niet gegarandeerd voor een andere.
  • Een fout van een provider kan binnen een 4xx-respons komen met een leveranciersspecifiek bericht. Log request_id en de responsbody.

Beveiligingsherinneringen

  • Zet een API-sleutel nooit in browsercode, een bundel van een mobiele app of een openbare repository. Houd de sleutel op een server en leid verzoeken via een proxy.
  • Log nooit de volledige sleutel. Log een voorvoegsel als je de sleutel moet identificeren.
  • Roteer een sleutel onmiddellijk als die mogelijk is gelekt.

Voordat je contact opneemt met support

Verzamel:

  1. Endpoint en HTTP-methode.
  2. HTTP-status, code en request_id.
  3. Model-ID of taak-ID.
  4. Tijdstempel met tijdzone.
  5. Een minimale verzoekbody zonder geheimen.

Stuur dit samen met het e-mailadres van het account naar support. Voeg niet de volledige API-sleutel toe.

Gerelateerd