Языковая модель Globerint — API чат-дополнений, совместимый с OpenAI
Модель общего назначения, которая подставляется вместо api.openai.com/v1.
Работает со штатным OpenAI SDK, LangChain, LlamaIndex и любым клиентом, умеющим обращаться
к OpenAI — меняются только базовый адрес и ключ.
Ключ передаётся заголовком Authorization. Он выдаётся отдельно; в примерах ниже
подставьте свой вместо ВАШ_КЛЮЧ.
Authorization: Bearer ВАШ_КЛЮЧ
Базовый адрес: https://llm.globerint.ru/v1
Через curl:
curl https://llm.globerint.ru/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ВАШ_КЛЮЧ" \
-d '{
"model": "llmka-1",
"messages": [{"role": "user", "content": "Объясни, что такое кэш, одним абзацем"}],
"max_tokens": 200
}'
Через официальный OpenAI SDK для Python — меняется только две строки:
from openai import OpenAI
client = OpenAI(
base_url="https://llm.globerint.ru/v1",
api_key="ВАШ_КЛЮЧ",
)
ответ = client.chat.completions.create(
model="llmka-1",
messages=[{"role": "user", "content": "Объясни, что такое кэш, одним абзацем"}],
max_tokens=200,
)
print(ответ.choices[0].message.content)
| Название | Назначение |
|---|---|
llmka-1 | Обычный чат: диалог, классификация, перевод, пересказ, извлечение данных. |
llmka-1-search | То же, но с поиском в интернете: ответ опирается на найденные источники и содержит ссылки на них. |
llmka-1-search-mini | Поиск с укороченным бюджетом ответа. Для коротких фактических вопросов. |
| Адрес | Что делает |
|---|---|
POST /v1/chat/completions | Основной вызов: диалог, потоковая выдача, вызов функций, поиск. |
GET /v1/models | Список доступных названий моделей. |
POST /v1/web-search | Поиск отдельно от генерации: возвращает найденные источники без ответа модели. |
GET /health | Проверка доступности. |
Формат запроса и ответа повторяет OpenAI. Роли — system, user,
assistant; ответ приходит в choices[0].message.content, расход токенов —
в usage.
{
"model": "llmka-1",
"messages": [
{"role": "system", "content": "Ты помощник службы поддержки. Отвечай кратко."},
{"role": "user", "content": "Как восстановить пароль?"}
],
"temperature": 0.7,
"max_tokens": 500
}
По умолчанию модель сначала рассуждает про себя и только потом выдаёт ответ. Рассуждение
приходит отдельным полем reasoning_content и расходует токены — на коротких ответах
это лишняя трата, а при малом max_tokens модель может израсходовать весь бюджет на
рассуждение и не дойти до ответа.
Выключается так:
{
"model": "llmka-1",
"messages": [{"role": "user", "content": "Столица Франции?"}],
"chat_template_kwargs": {"enable_thinking": false},
"max_tokens": 50
}
Оставляйте размышление включённым для задач с рассуждением — математика, логика, разбор кода. Выключайте для коротких ответов, классификации и извлечения данных.
Модель принимает изображения. Вместо строки передайте content массивом, смешивая
текст и картинку:
{
"model": "llmka-1",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "Что изображено на картинке?"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0KGgo…"}}
]
}],
"max_tokens": 200
}
Изображение заметно увеличивает размер промпта, учитывайте это при подсчёте токенов. Звук и PDF не поддерживаются.
Чтобы ответ гарантированно был разбираемым JSON нужной формы, опишите схему:
{
"model": "llmka-1",
"messages": [{"role": "user", "content": "Извлеки из текста имя и город: Анна из Казани"}],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "person",
"schema": {
"type": "object",
"properties": {
"name": {"type": "string"},
"city": {"type": "string"}
},
"required": ["name", "city"]
}
}
}
}
Если достаточно любого корректного JSON без фиксированной формы —
"response_format": {"type": "json_object"}.
С "stream": true ответ приходит событиями text/event-stream: каждая
строка начинается с data: , последняя — data: [DONE]. Текст лежит в
choices[0].delta.content.
client = OpenAI(base_url="https://llm.globerint.ru/v1", api_key="ВАШ_КЛЮЧ")
поток = client.chat.completions.create(
model="llmka-1",
messages=[{"role": "user", "content": "Расскажи о море"}],
stream=True,
)
for кусок in поток:
print(кусок.choices[0].delta.content or "", end="", flush=True)
Поддерживается в том же виде, что у OpenAI: описываете функции в tools, модель
возвращает tool_calls с именем и аргументами, вы выполняете вызов и отдаёте результат
сообщением с ролью tool.
{
"model": "llmka-1",
"messages": [{"role": "user", "content": "Какая погода в Москве?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Текущая погода в городе",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}
Укажите модель llmka-1-search — и ответ будет построен на найденных источниках,
а ссылки на них придут в annotations.
{
"model": "llmka-1-search",
"messages": [{"role": "user", "content": "Что нового в законе о такси в 2026 году?"}],
"web_search_options": {"search_context_size": "high"}
}
search_context_size принимает low, medium или
high и задаёт, сколько источников получит модель. Чтобы ограничить поиск
определёнными сайтами, добавьте список доменов:
"web_search_options": {
"search_context_size": "medium",
"allowed_domains": ["consultant.ru", "garant.ru"]
}
| Параметр | Тип | Описание |
|---|---|---|
model | строка | Название модели из списка выше. |
messages | массив | История диалога. |
max_tokens | целое | Предел длины ответа. |
temperature | 0–2 | Разброс. Меньше — предсказуемее. |
top_p | 0–1 | Отбор по суммарной вероятности. |
stream | да/нет | Потоковая выдача событиями. |
stop | строка или массив | Последовательности, на которых генерация прекращается. |
response_format | объект | JSON-схема или произвольный JSON. |
tools | массив | Описания функций. |
chat_template_kwargs | объект | {"enable_thinking": false} выключает размышление. |
web_search_options | объект | Настройки поиска для моделей *-search. |
| Код | Что означает |
|---|---|
401 | Ключ не передан или не принят. |
400 | Неверное тело запроса: опечатка в поле, недопустимое значение. |
404 | Неизвестное название модели или адрес. |
429 | Слишком много запросов одновременно. Повторите с задержкой. |
500, 503 | Сбой на стороне сервиса. Повторите запрос. |
Тело ошибки повторяет формат OpenAI: объект error с полями
message, type и code.