AiHummer
Беларуская
Увайсці
v1.0.x
{ }Swagger

Chat Completions API

v1.0.x · абноўлена 2026-06-26

AiHummer прадастаўляе адзіную OpenAI-сумяшчальную HTTP-канчатковую кропку для тэкставых хадоў: POST /v1/chat/completions. Любы кліент ці SDK, які ўжо размаўляе ў фармаце OpenAI Chat Completions, можа звяртацца да AiHummer, змяніўшы базавы URL і API-ключ — ніякі спецыфічны для AiHummer код не патрэбны.

Аўтэнтыфікацыя

Запыты аўтэнтыфікуюцца з дапамогай асабістага API-ключа ў якасці Bearer token. Ключы AiHummer маюць прэфікс ah- і выдаюцца з вэб admin UI.

POST /v1/chat/completions HTTP/1.1
Host: your-aihummer.example
Authorization: Bearer ah-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

[!TIP] Базавы URL — гэта адрас вашага шлюза. У ўсталёўцы па змаўчанні шлюз слухае на :8780, таму лакальны выклік ідзе на http://localhost:8780/v1/chat/completions. У продакшэне вы тэрмінуеце TLS на рэверс-проксі перад шлюзам.

Базавы запыт

Адпраўце JSON-цела з messages, дакладна так, як вы зрабілі б для OpenAI. Поле model выбірае мадэль (ці агента), сканфігураваную на вашым экзэмпляры.

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
  }'

Нестрымінгавы адказ адпавядае знаёмай форме Chat Completions:

{
  "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 }
}

Стрымінгавыя адказы (SSE)

Задайце "stream": true, каб атрымліваць адказ паступова як Server-Sent Events. Кожная падзея нясе дэльту chat.completion.chunk, а стрым завяршаецца фінальным радком data: [DONE].

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." }
    ]
  }'

Адказ — гэта 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 — гэта адзіная канчатковая кропка на OpenAI-сумяшчальнай паверхні. AiHummer не прадастаўляе /v1/models і не прадастаўляе /v1/embeddings — эмбедынгі з’яўляюцца ўнутранай падсістэмай і недасягальныя праз HTTP. Не разлічвайце на гэтыя маршруты; яны вяртаюць 404.

Паверхні выяўлення і схемы

Хаця спісу /v1/models няма, AiHummer пастаўляе некалькі паверхняў выяўлення, каб людзі і інструменты маглі даследаваць API:

Шлях Што ён абслугоўвае
GET /docs Чытэльны для чалавека ўваходны пункт дакументацыі
GET /docs/api Інтэрактыўны API Explorer
GET /docs/openapi.json Спецыфікацыя OpenAPI 3.x
GET /openapi.json Спецыфікацыя OpenAPI 3.x (каранёвы аліас)
GET /docs/llm.json Машыначытэльнае рэзюмэ API для LLM-інструментаў
GET /llms.txt Індэкс llms.txt для LLM-агентаў
# Fetch the OpenAPI spec
curl https://your-aihummer.example/openapi.json

Сістэмныя канчатковыя кропкі

Дзве лёгкія, неаўтэнтыфікаваныя сістэмныя канчатковыя кропкі дапамагаюць з праверкамі жывучасці і гадзінніка:

Метад і шлях Прызначэнне
GET /v1/ping Вяртае простую адказ аб жывучасці
GET /v1/time Вяртае бягучы сервернаы час шлюза
curl https://your-aihummer.example/v1/ping
curl https://your-aihummer.example/v1/time

Куды далей