Совместимо с OpenAI: в коде меняются две строки — адрес сервера и ключ. Библиотека, формат запроса и счётчик токенов остаются теми же. Потокового ответа пока нет: с stream: true запрос отвечает ошибкой и денег не берёт.
Ключи открываются после того, как деньги пришли на счёт: так у вас не будет ключа, который есть, но не работает. Ключ показывается один раз при создании — дальше только последние четыре символа.
Вместо api.openai.com/v1 подставьте https://gpt.nls.kz/v1, вместо своего ключа — выданный.
Поле model можно не заполнять — ответит NLSGPT 1. Чужие имена возьмите из каталога ниже.
curl https://gpt.nls.kz/v1/chat/completions \
-H "Authorization: Bearer $NLSGPT_KEY" \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Сократи договор до одной страницы"}]}'
import os
from openai import OpenAI
client = OpenAI(
base_url="https://gpt.nls.kz/v1",
api_key=os.environ["NLSGPT_KEY"],
)
answer = client.chat.completions.create(
model="", # пусто — отвечает наша модель
messages=[{"role": "user", "content": "Сократи договор до одной страницы"}],
)
print(answer.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gpt.nls.kz/v1",
apiKey: process.env.NLSGPT_KEY,
});
const answer = await client.chat.completions.create({
model: "", // пусто — отвечает наша модель
messages: [{ role: "user", content: "Сократи договор до одной страницы" }],
});
console.log(answer.choices[0].message.content);
Не назвали модель — ответит NLSGPT 1. Нужна чужая — подставьте её id. Цены в тенге на странице «Модели и цены».
| Модель | id для «model» |
|---|---|
|
NLSGPT 1
наша · отвечает без выбора модели
|
nlsgpt-1 |
| GPT-5.6 Sol | gpt-5.6-sol |
| GPT-5.6 Luna | gpt-5.6-luna |
| Gemini 3.7 Flash | gemini-3.7-flash |
| Qwen3.8 Max | qwen3.8-max |
| DeepSeek V4 Pro | deepseek-v4-pro |
| DeepSeek V4 Flash | deepseek-v4-flash |
Тот же ключ, другой адрес. Вы отправляете данные и получаете разобранный результат, а цена назначена за единицу, не за токены. Какой моделью выполнить — решаем мы.
Проверить текст на ошибки · Тело запроса: JSON, поле `lines`
curl https://gpt.nls.kz/v1/durys \
-H "Authorization: Bearer $NLSGPT_KEY" \
-H "Content-Type: application/json" \
-d '{"lines":["Уведомляем вас о том что оплата произведенна"]}'
Разобрать счёт или накладную · Тело запроса: multipart, поле `files[]`, до 5 за раз
curl https://gpt.nls.kz/v1/esep \ -H "Authorization: Bearer $NLSGPT_KEY" \ -F "files[]=@schet.pdf" -F "files[]=@nakladnaya.jpg"
Привести адреса к единому виду · Тело запроса: JSON, поле `lines`
curl https://gpt.nls.kz/v1/meken \
-H "Authorization: Bearer $NLSGPT_KEY" \
-H "Content-Type: application/json" \
-d '{"lines":["г.Алматы мкр Самал-2 д.15 кв 3"]}'
Перевести на казахский · Тело запроса: JSON, поле `lines`
curl https://gpt.nls.kz/v1/tilmash \
-H "Authorization: Bearer $NLSGPT_KEY" \
-H "Content-Type: application/json" \
-d '{"lines":["Транспортно-экспедиционные услуги"]}'
Расшифровать запись в текст · Тело запроса: multipart, поле `file`, до 25 МБ
curl https://gpt.nls.kz/v1/tyndau \ -H "Authorization: Bearer $NLSGPT_KEY" \ -F file=@zapis.m4a
Модель, которая пишет ваш код, читает эти три адреса сама. Ключ им не нужен.
Код всегда приходит с текстом: какой именно лимит сработал, кто отключил модель, когда обнулится счётчик. Искать причину в журнале не нужно.
| Код | Что произошло |
|---|---|
| 200 | Ответ получен, стоимость списана с баланса |
| 401 | Ключ неверный или отозван |
| 402 | Закончился баланс. Запрос не выполнялся, деньги не списаны |
| 403 | Модель отключена администратором компании — или ключ работает только с разрешённых адресов, а запрос пришёл с другого. Что именно, написано в тексте ошибки |
| 429 | Исчерпан лимит ключа или компании. В тексте — какой и когда обнулится |
| 503 | Модель временно недоступна. Деньги не списаны, можно повторить |
Зарегистрируйте компанию, выставьте себе счёт и создайте ключ — всё в кабинете, без менеджера.