AiHummer
Français
ConnexionCompte
v1.2.x
{ }Swagger

API de complétions de chat

v1.2.x · mis à jour 2026-06-26

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/completions est le seulement point de terminaison compatible OpenAI surface. AiHummer fait pas exposer /v1/models et 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