API de Finalizaciones de Chat
AiHummer expone un solo Compatible con OpenAI Punto de enlace HTTP para giros de texto: POST /v1/chat/completions. Cualquier cliente o SDK que ya utilice el formato de Completaciones de Chat de OpenAI puede comunicarse con AiHummer cambiando la URL base y la clave de API, sin que se requiera código específico de AiHummer.
Autenticación
Las solicitudes se autentican con un clave API personal como un token portador. Las llaves AiHummer tienen el prefijo ah- y se emiten desde la interfaz de administración web.
POST /v1/chat/completions HTTP/1.1
Host: your-aihummer.example
Authorization: Bearer ah-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
[!TIP] La URL base es la dirección de su puerta de enlace. En una instalación por defecto, la puerta de enlace escucha en el puerto público
:8780, así que una llamada local va ahttp://localhost:8780/v1/chat/completions. La puerta de enlace posee sus puertos directamente — poner un proxy inverso delante es decisión del operador, no de un requisito.
Una solicitud básica
Envía un cuerpo JSON con messages, exactamente como lo harías con OpenAI. El model el campo selecciona el modelo (o agente) configurado en tu instancia.
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
}'
Una respuesta que no es en streaming sigue la forma familiar de las Completaciones 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 }
}
Respuestas en streaming (SSE)
Conjunto "stream": true recibir la respuesta de manera incremental como Eventos enviados por el servidor. Cada evento lleva una chat.completion.chunk delta, y el arroyo termina con un final data: [DONE] línea.
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 respuesta es 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/completionses el solamente punto final compatible con OpenAI superficie. AiHummer lo hace no exponer/v1/modelsy hace no exponer/v1/embeddings— los embeddings son un subsistema interno y no son accesibles a través de HTTP. No confíes en esas rutas; devuelven 404.
Descubrimiento y superficies de esquema
Aunque no hay /v1/models listado, AiHummer envía varias superficies de descubrimiento para que los humanos y las herramientas puedan explorar la API:
| Camino | Lo que sirve |
|---|---|
GET /docs |
Punto de entrada de documentación legible para humanos |
GET /docs/api |
Explorador de API interactivo |
GET /docs/openapi.json |
Especificación OpenAPI 3.x |
GET /openapi.json |
Especificación OpenAPI 3.x (alias raíz) |
GET /docs/llm.json |
Resumen de API legible por máquina para herramientas LLM |
GET /llms.txt |
llms.txt índice para agentes LLM |
# Fetch the OpenAPI spec
curl https://your-aihummer.example/openapi.json
Puntos finales del sistema
Dos endpoints del sistema livianos y no autenticados ayudan con las comprobaciones de actividad y de reloj:
| Método y ruta | Propósito |
|---|---|
GET /v1/ping |
Devuelve una respuesta simple de actividad |
GET /v1/time |
Devuelve la hora actual del servidor de la puerta de enlace |
curl https://your-aihummer.example/v1/ping
curl https://your-aihummer.example/v1/time
¿A dónde vamos ahora?
- Conduce AiHummer desde tus propias aplicaciones y automatizaciones: Disparadores de entrada e integración.
- Emparejamiento, federación SSO y superficies de protocolo: Webhooks, SCIM y emparejamiento.
- Ajusta lo que el agente puede hacer: Catálogo de herramientas.