LLM-Monster
LLM-Monster Docs OpenAI-compatible API documentation
API Documentation

LLM-Monster API

LLM-Monster предоставляет OpenAI-совместимое API для работы через стандартные SDK OpenAI и прямые HTTP-запросы.

OpenAI-compatible HTTPS JSON API Bearer authentication Stable model alias
API key API-ключ можно получить после авторизации в личном кабинете.

Base URL

Для работы через OpenAI SDK используйте следующий base URL:

Base URL
https://api.llm-monster.pro/v1

Во всех рабочих примерах ниже используется идентификатор модели default. Он указывает на актуальную основную модель, доступную в сервисе для клиентских интеграций.

Авторизация

Все публичные API-запросы требуют Bearer-токен.

Authorization Header
Authorization: Bearer YOUR_API_KEY
Формат API-ключ передаётся в каждом запросе. Храните ключ на стороне сервера и не включайте его в публичные клиентские приложения.

Быстрый старт

Ниже приведены базовые примеры подключения через cURL, Python, JavaScript и Go.

SDK / HTTP Examples
curl https://api.llm-monster.pro/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "default",
    "messages": [
      {"role": "user", "content": "Reply in one line."}
    ]
  }'
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.llm-monster.pro/v1",
)

response = client.chat.completions.create(
    model="default",
    messages=[
        {"role": "user", "content": "Reply in one line."}
    ],
)

print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_MONSTER_API_KEY,
  baseURL: "https://api.llm-monster.pro/v1",
});

const response = await client.chat.completions.create({
  model: "default",
  messages: [
    { role: "user", content: "Reply in one line." }
  ],
});

console.log(response.choices[0].message.content);
package main

import (
  "context"
  "fmt"

  openai "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("YOUR_API_KEY"),
    option.WithBaseURL("https://api.llm-monster.pro/v1"),
  )

  resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
    Model: "default",
    Messages: []openai.ChatCompletionMessageParamUnion{
      openai.UserMessage("Reply in one line."),
    },
  })
  if err != nil {
    panic(err)
  }

  fmt.Println(resp.Choices[0].Message.Content)
}
Рекомендуемый идентификатор модели Для клиентских интеграций используйте model=default. Это основной стабильный маршрут и он не требует ручного выбора конкретной модели при обычной работе.

Эндпоинты

Ниже перечислены основные клиентские маршруты OpenAI-совместимого API LLM-Monster.

Method Path Назначение Вход Выход
GET / Информация о версии API Без body Служебный объект с базовой информацией
GET /models Список доступных идентификаторов и совместимых маршрутов Без body Список моделей в формате OpenAI
POST /chat/completions Генерация ответов в формате Chat Completions JSON: model, messages, options Ответ в формате OpenAI Chat Completions
POST /responses Responses API JSON: model, input, options OpenAI-style response object
POST /embeddings Получение embedding-векторов JSON: model, input Массив embedding-векторов
POST /images/generations Генерация изображений JSON: model, prompt, size Ссылки или base64-данные
POST /audio/speech Text-to-speech JSON: model, voice, input Аудиофайл
POST /audio/transcriptions Speech-to-text Multipart: file, model Текст транскрипции
POST /moderations Проверка контента JSON: model, input Результат модерации
POST /rerank Реранжирование документов JSON: model, query, documents Отсортированный список результатов

GET /

Возвращает базовую информацию о доступности API v1.

Example Request
curl https://api.llm-monster.pro/v1 \
  -H "Authorization: Bearer YOUR_API_KEY"
Example Response
{
  "object": "status",
  "ok": true,
  "version": "v1"
}

GET /models

Возвращает список идентификаторов, доступных по текущему API-ключу. Для клиентских интеграций рекомендуется использовать model=default, а /models — как технический справочник.

List Models
curl https://api.llm-monster.pro/v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.llm-monster.pro/v1",
)

models = client.models.list()
for model in models.data:
    print(model.id)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_MONSTER_API_KEY,
  baseURL: "https://api.llm-monster.pro/v1",
});

const models = await client.models.list();
console.log(models.data.map((item) => item.id));
Example Response
{
  "object": "list",
  "data": [
    {
      "id": "default",
      "object": "model",
      "created": 1710000000,
      "owned_by": "llm-monster"
    }
  ]
}
Практика для продакшна Если вам не нужен ручной выбор маршрута, отправляйте запросы с model=default. Это основной рекомендуемый идентификатор для рабочего подключения.

POST /chat/completions

Основной OpenAI-совместимый маршрут для chat completions.

Принимает model, messages и совместимые параметры вроде temperature и max_tokens. Для стандартной интеграции используйте model=default.
Возвращает Стандартный объект completion с choices, usage и ответом модели.
Chat Completion
curl https://api.llm-monster.pro/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "default",
    "messages": [
      {"role": "system", "content": "You are a concise assistant."},
      {"role": "user", "content": "Give a short description of the API."}
    ],
    "temperature": 0.2,
    "max_tokens": 180
  }'
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.llm-monster.pro/v1",
)

response = client.chat.completions.create(
    model="default",
    messages=[
        {"role": "system", "content": "You are a concise assistant."},
        {"role": "user", "content": "Give a short description of the API."}
    ],
    temperature=0.2,
    max_tokens=180,
)

print(response.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_MONSTER_API_KEY,
  baseURL: "https://api.llm-monster.pro/v1",
});

const response = await client.chat.completions.create({
  model: "default",
  messages: [
    { role: "system", content: "You are a concise assistant." },
    { role: "user", content: "Give a short description of the API." }
  ],
  temperature: 0.2,
  max_tokens: 180
});

console.log(response.choices[0].message.content);
Example Response
{
  "id": "chatcmpl_abc123",
  "object": "chat.completion",
  "created": 1710000000,
  "model": "default",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The API lets you connect models through one consistent format and use them directly in code."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 42,
    "completion_tokens": 18,
    "total_tokens": 60
  }
}

POST /responses

OpenAI Responses API для сценариев, где удобнее работать через input, а не через массив messages. Для обычной интеграции здесь также рекомендуется model=default.

Example Request
curl https://api.llm-monster.pro/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "default",
    "input": "Briefly explain what an OpenAI-compatible API is."
  }'
Example Response
{
  "id": "resp_abc123",
  "object": "response",
  "status": "completed",
  "model": "default",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "It is an API that accepts requests in the same format used by the OpenAI ecosystem."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 16,
    "output_tokens": 18,
    "total_tokens": 34
  }
}

POST /embeddings

Возвращает embedding-векторы для текста или массива текстов.

Embeddings
curl https://api.llm-monster.pro/v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EMBEDDING_MODEL",
    "input": "LLM-Monster API documentation"
  }'
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.llm-monster.pro/v1",
)

response = client.embeddings.create(
    model="YOUR_EMBEDDING_MODEL",
    input="LLM-Monster API documentation",
)

vector = response.data[0].embedding
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_MONSTER_API_KEY,
  baseURL: "https://api.llm-monster.pro/v1",
});

const response = await client.embeddings.create({
  model: "YOUR_EMBEDDING_MODEL",
  input: "LLM-Monster API documentation"
});

console.log(response.data[0].embedding);
Example Response
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [0.0123, -0.0041, 0.1874]
    }
  ],
  "model": "YOUR_EMBEDDING_MODEL",
  "usage": {
    "prompt_tokens": 6,
    "total_tokens": 6
  }
}

POST /images/generations

Генерация изображений по текстовому prompt в OpenAI-совместимом формате.

Example Request
curl https://api.llm-monster.pro/v1/images/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_IMAGE_MODEL",
    "prompt": "Small green cartoon monster holding an API key",
    "size": "1024x1024"
  }'
Example Response
{
  "created": 1710000000,
  "data": [
    {
      "url": "https://cdn.example.com/generated/monster-1.png"
    }
  ]
}

POST /audio/speech

Text-to-speech endpoint. Возвращает бинарный аудиопоток.

Example Request
curl https://api.llm-monster.pro/v1/audio/speech \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_TTS_MODEL",
    "voice": "alloy",
    "input": "Hello. This is a text-to-speech test."
  }' \
  --output speech.mp3
Response В отличие от JSON-эндпоинтов, здесь тип ответа — аудиофайл. Формат зависит от поддерживаемого параметра модели и провайдера.

POST /audio/transcriptions

Speech-to-text endpoint. Принимает multipart/form-data.

Example Request
curl https://api.llm-monster.pro/v1/audio/transcriptions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@sample.wav" \
  -F "model=YOUR_STT_MODEL"
Example Response
{
  "text": "This is a sample transcription result."
}

POST /moderations

Проверяет входной контент и возвращает структурированный результат модерации.

Example Request
curl https://api.llm-monster.pro/v1/moderations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_MODERATION_MODEL",
    "input": "Example content to review"
  }'
Example Response
{
  "id": "modr_abc123",
  "model": "YOUR_MODERATION_MODEL",
  "results": [
    {
      "flagged": false,
      "categories": {
        "violence": false,
        "self-harm": false,
        "sexual": false
      }
    }
  ]
}

POST /rerank

Реранжирует документы по отношению к запросу. Полезно для search/rag-сценариев.

Example Request
curl https://api.llm-monster.pro/v1/rerank \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_RERANK_MODEL",
    "query": "openai compatible api",
    "documents": [
      "API for embeddings and chat",
      "Payment information page",
      "Audio transcription endpoint"
    ],
    "top_n": 2
  }'
Example Response
{
  "results": [
    {
      "index": 0,
      "relevance_score": 0.9821
    },
    {
      "index": 2,
      "relevance_score": 0.7414
    }
  ]
}

Ошибки и коды ответа

API использует стандартные HTTP-коды и JSON-объект ошибки для большинства неуспешных запросов.

HTTP Когда возникает Что проверить
200 Запрос выполнен успешно Ответ модели, список моделей или файл
400 Невалидный request body Поля model, messages, формат JSON или multipart
401 Нет токена или токен невалиден Заголовок Authorization
404 Маршрут или модель недоступны Путь запроса и model
429 Сработало ограничение по rate limit Повторить запрос позже или снизить интенсивность
5xx Проблема на стороне API или провайдера Повторить запрос и логировать request id
Example Error
{
  "error": {
    "message": "Invalid API key",
    "type": "authentication_error",
    "code": "invalid_api_key"
  }
}