Documentation Index
Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
Use this file to discover all available pages before exploring further.
La documentation de référence de l’API est actuellement disponible en anglais uniquement. Si vous consultez cette page dans une autre langue, veuillez basculer vers la version anglaise — la liste complète des points de terminaison de l’API apparaîtra dans la barre latérale gauche.
URL de base
Authentification
Toutes les demandes d’API nécessitent une authentification via une clé API ou un jeton JWT.Utilisation de la clé API
Incluez votre clé API dans l’en-têteAuthorization :
Utilisation du jeton JWT
Pour les points de terminaison de streaming SSE (/api/react et /api/dag), vous pouvez transmettre le jeton dans le corps de la requête à la place :
Format de réponse
Réponse réussie
Toutes les réponses API réussies suivent cette structure :Réponse d’erreur
Les réponses d’erreur incluent un code d’erreur et un message lisible par l’homme :Réponses Paginées
Les points de terminaison de liste retournent des résultats paginés :Streaming (Server-Sent Events)
Les points de terminaison de chat (POST /api/react et POST /api/dag) retournent des Server-Sent Events pour le streaming en temps réel. Chaque événement a un champ type indiquant son contenu :
| Type d’événement | Description |
|---|---|
step | Étape de raisonnement ReAct (appels d’outils, réflexion). Pour les modèles avec pensée étendue (Claude, série o, DeepSeek-R1), inclut le contenu thinking_delta en temps réel pendant les phases de décision d’outils |
step_progress | Progression de l’étape DAG (démarrée/itération/complétée). Peut inclure le contenu thinking_delta lorsque l’agent sous-jacent diffuse les tokens de raisonnement |
phase | Transition de phase du pipeline (planification/exécution/analyse) |
compact | Compaction de contexte effectuée |
answer | Texte de réponse diffusé (début/delta/terminé) |
done | Charge utile du résultat final |
suggestions | Questions de suivi suggérées |
title | Titre de conversation généré automatiquement |
end | Terminateur de flux (toujours dernier) |
Flux SSE
Reprise basée sur le curseur
Chaque événement SSE porte un entiercursor monotone limité à la conversation. Les clients doivent suivre le curseur le plus élevé observé. Lorsque la connexion s’interrompt en cours de tour (erreur réseau, délai d’attente du proxy, redémarrage du serveur), le client peut se réabonner sans relancer l’agent :
cursor > 42 et se termine par une trame terminale event: resume_done. Passez cursor: -1 pour demander une relecture complète depuis le début.
Réponses d’erreur :
404 conversation_not_found— l’id de conversation est invalide ou n’appartient pas à l’utilisateur authentifié404 no_recent_assistant_message— la conversation n’a pas de tour assistant persisté à partir duquel reprendre (par exemple, une conversation toute nouvelle sans messages utilisateur)400 invalid_cursor— le curseur n’est pas un entier non-négatif ou-1
useSseResume dans le playground) réessaie automatiquement les déconnexions réseau avec backoff exponentiel (300ms → 1s → 3s, max 3 tentatives) et distingue l’abandon initié par l’utilisateur de l’erreur réseau pour éviter les reconnexions involontaires. Consultez l’intégration playground-page.tsx pour le modèle complet.
La reprise est sans état — elle rejoue à partir du tableau
sse_events stocké du message assistant. Si le tour de l’agent a été interrompu avant qu’un message assistant ne soit persisté (par exemple, un crash avant done), le bloc tool_use en suspens est automatiquement réparé par DbMemory._repair_dangling_tool_calls au tour suivant. Les lignes tool_result synthétiques sont persistées avec metadata_.synthetic=true et metadata_.reason="interrupted" à titre d’audit.Limitation de débit
La limitation de débit par clé est prévue pour une version future. Actuellement, il n’y a pas de limites de requêtes appliquées par clé, mais veuillez utiliser l’API de manière responsable.Pagination
Les points de terminaison de liste prennent en charge la pagination via les paramètres de requête :page(par défaut : 1) — numéro de page, à partir de 1size(par défaut : 20) — éléments par page, max 100
Horodatages
Tous les horodatages sont au format ISO 8601 avec le fuseau horaire UTC :Codes d’erreur
Codes d’erreur courants et leurs significations :| Code d’erreur | Statut HTTP | Signification |
|---|---|---|
unauthorized | 401 | Authentification invalide ou manquante |
forbidden | 403 | L’utilisateur n’a pas les permissions pour cette ressource |
not_found | 404 | La ressource n’existe pas |
bad_request | 400 | Paramètres de requête invalides |
rate_limit_exceeded | 429 | Trop de requêtes (prévu) |
internal_error | 500 | Erreur serveur |
Terrain de jeu API
Chaque page de point de terminaison inclut un terrain de jeu API interactif où vous pouvez :- Tester les demandes directement depuis votre navigateur
- Afficher les réponses réelles
- Copier le code de demande dans plusieurs langues
- S’authentifier avec votre clé API
Le terrain de jeu API exécute les demandes depuis votre navigateur, assurez-vous donc que votre clé API dispose des autorisations CORS appropriées (généralement activées par défaut pour les demandes de même origine).
Disponibilité du SDK
Bien que l’API FIM One soit entièrement basée sur REST, des SDK sont disponibles (ou à venir) dans les langages populaires :- Python : À venir
- JavaScript/TypeScript : À venir
- Go : À venir
Versioning
La version actuelle de l’API estv0.8.0. La version n’est pas incluse dans le chemin d’accès de l’URL ; les modifications incompatibles seront signalées par des augmentations de version majeure et une période de migration.
Support
Pour les problèmes ou questions liés à l’API :- Documentation : Consultez les guides détaillés sur chaque endpoint
- GitHub Issues : Signalez les bugs sur https://github.com/fim-ai/fim-one/issues
- Communauté Discord : Rejoignez notre communauté pour discuter