API de complétions de chat
AiHummer expose un seul Compatible avec OpenAI Point de terminaison HTTP pour les tours de texte : POST /v1/chat/completions. Tout client ou SDK qui utilise déjà le format OpenAI Chat Completions peut communiquer avec AiHummer en modifiant l’URL de base et la clé API — aucun code spécifique à AiHummer n’est requis.
Authentification
Les requêtes sont authentifiées avec un clé API personnelle en tant que jeton Bearer. Les clés AiHummer sont préfixées par ah- et sont émis depuis l’interface d’administration web.
POST /v1/chat/completions HTTP/1.1
Host: your-aihummer.example
Authorization: Bearer ah-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
[!TIP] L’URL de base est l’adresse de votre passerelle. Dans une installation par défaut, la passerelle écoute sur le port public
:8780, donc un appel local va àhttp://localhost:8780/v1/chat/completions. La passerelle possède ses ports directement — mettre un proxy inverse devant est le choix de l’opérateur, pas un exigence.
Une demande basique
Envoyez un corps JSON avec messages, exactement comme vous le feriez avec OpenAI. Le model le champ sélectionne le modèle (ou l’agent) configuré sur votre instance.
curl https://your-aihummer.example/v1/chat/completions \
-H "Authorization: Bearer ah-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "default",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Summarise our refund policy in two sentences." }
],
"temperature": 0.3
}'
Une réponse non diffusée suit la forme familière des complétions de chat :
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1750000000,
"model": "default",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Refunds are issued within 14 days..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0 }
}
Réponses en continu (SSE)
Ensemble "stream": true recevoir la réponse de manière incrémentale comme Événements envoyés par le serveur. Chaque événement porte un chat.completion.chunk delta, et le cours d’eau se termine par un final data: [DONE] ligne.
curl -N https://your-aihummer.example/v1/chat/completions \
-H "Authorization: Bearer ah-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "default",
"stream": true,
"messages": [
{ "role": "user", "content": "Write a one-line greeting." }
]
}'
La réponse est un text/event-stream:
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant"}}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello"}}]}
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":"stop"}]}
data: [DONE]
[!WARNING]
/v1/chat/completionsest le seulement point de terminaison compatible OpenAI surface. AiHummer fait pas exposer/v1/modelset fait pas exposer/v1/embeddings— les embeddings sont un sous-système interne et ne sont pas accessibles via HTTP. Ne vous fiez pas à ces routes ; elles renvoient une erreur 404.
Découverte et surfaces de schéma
Alors qu’il n’y a pas /v1/models énumération, AiHummer expédie plusieurs surfaces de découverte afin que les humains et les outils puissent explorer l’API :
| Chemin | Ce que cela sert |
|---|---|
GET /docs |
Point d’entrée de documentation lisible par l’homme |
GET /docs/api |
Explorateur API interactif |
GET /docs/openapi.json |
Spécification OpenAPI 3.x |
GET /openapi.json |
Spécification OpenAPI 3.x (alias racine) |
GET /docs/llm.json |
Résumé API lisible par machine pour les outils LLM |
GET /llms.txt |
llms.txt index pour agents LLM |
# Fetch the OpenAPI spec
curl https://your-aihummer.example/openapi.json
Points de terminaison du système
Deux points de terminaison système légers et non authentifiés aident à vérifier la vivacité et l’horloge :
| Méthode et chemin | But |
|---|---|
GET /v1/ping |
Renvoie une réponse de vivacité simple |
GET /v1/time |
Renvoie l’heure actuelle du serveur de la passerelle |
curl https://your-aihummer.example/v1/ping
curl https://your-aihummer.example/v1/time
Où aller ensuite
- Contrôlez AiHummer depuis vos propres applications et automatisations : Déclencheurs entrants et d’intégration.
- Appairage, fédération SSO et surfaces de protocole : Webhooks, SCIM et jumelage.
- Ajustez ce que l’agent peut faire : Catalogue d’outils.