API нейросети ТекстБот: документация
Чтобы использовать API нейросети, нужно подключить платные запросы. За раз в нейросеть можно отправить до 10 000 символов текста (лишнее будет автоматически обрезано). Цена одной генерации ответа через API — 2 запроса.
Запросы API обрабатываются моделью нейросети GPT-4o, поэтому в качестве генерации можно не сомневаться.
Содержание:
Запросить генерацию ответа
POST
/api/generate_response
Цена: 2 запроса
Request body
{
"input_text": "Расскажи три шутки",
"mode": "article",
"key": "5668ds-1122-44432-2211-88799d932"
}
Описание
input_text текст запроса к нейросети.mode режим нейросети.
key ключ доступа к API — получить на https://textbot.ru/account.
Response body
{
"request_id": 59877,
"status": "processing",
"balance": 596
}
Описание
request_id ID запроса для последующего получения ответа нейросети.status Статус ответа нейросети. Может быть "processing" или "failed".
error_message (опционально) Сообщение об ошибке.
balance Баланс. Проверить: /api/balance или на https://textbot.ru/account в графе "Оплаченные запросы".
Загрузка...
import json
import requests
HOST_URL = 'https://textbot.ru/api/'
def post_request(endpoint, payload):
url = f"{HOST_URL}{endpoint}"
response = requests.post(url, data=json.dumps(payload))
return response.json()
def generate_response(api_key, input_text, mode):
payload = {'input_text': input_text, 'mode': mode, 'key': api_key}
return post_request('generate_response', payload)
HTTP [200]
{
"request_id": 59877,
"status": "processing",
"balance": 596
}
HTTP [403]
{
"status": "failed",
"error_message": "Недостаточно запросов для генерации. Баланс: 1. Нужно: 2. Оплатить запросы: https://textbot.ru/price",
"balance": 1
}
HTTP [400]
{
"status": "failed",
"error_message": "Отсутствуют необходимые параметры: key"
}
Получить результат
POST
/api/status
Цена: 0
Request body
{
"request_id": 59877,
"key": "5668ds-1122-44432-2211-88799d932"
}
Описание
request_id ID запроса, который получен в методе /api/generate_response.key ключ доступа к API — получить на https://textbot.ru/account.
Response body
{
"request_id": 59877,
"status": "processing"
}
Описание
status Статус ответа нейросети. Может быть "processing", "failed" или "completed".result Ответ нейросети.
error_message (опционально) Сообщение об ошибке.
import json
import requests
HOST_URL = 'https://textbot.ru/api/'
def post_request(endpoint, payload):
url = f"{HOST_URL}{endpoint}"
response = requests.post(url, data=json.dumps(payload))
return response.json()
def get_status(api_key, request_id):
payload = {'request_id': request_id, 'key': api_key}
return post_request('status', payload)
HTTP [200]
(Ответ успешно сгенерирован)
{
"request_id": 59877,
"status": "completed",
"result": "Древний мир — это период возникновения цивилизаций, искусства и философии до начала средневековья."
}
HTTP [200]
(Ответ в процессе генерации)
{
"request_id": 59877,
"status": "processing"
}
HTTP [404]
{
"status": "failed",
"error_message": "Запрос с таким ID не найден"
}
Проверить баланс
POST
/api/balance
Цена: 0
Request body
{
"key": "5668ds-1122-44432-2211-88799d932"
}
Описание
key ключ доступа к API — получить на https://textbot.ru/account.Response body
{
"balance": 596
}
Описание
balance Баланс. Также виден на https://textbot.ru/account в графе "Оплаченные запросы".error_message (опционально) Сообщение об ошибке.
import json
import requests
HOST_URL = 'https://textbot.ru/api/'
def post_request(endpoint, payload):
url = f"{HOST_URL}{endpoint}"
response = requests.post(url, data=json.dumps(payload))
return response.json()
def check_balance(api_key):
payload = {'key': api_key}
return post_request('balance', payload)
HTTP [200]
{
"balance": 596
}
HTTP [403]
{
"error_message": "Некорректный API ключ. Получить можно на https://textbot.ru/account"
}
ChatGPT-совместимый API (OpenAI)
TextBot.ru предоставляет эндпоинт, полностью совместимый с API OpenAI. Это позволяет использовать привычные библиотеки и инструменты (например, openai-python), просто изменив базовый URL.
POST
/v1/chat/completions
Цена: 2 запроса
Описание
Для работы необходимо в настройках вашего клиента указать:
base_url:https://textbot.ru/v1
api_key: Ваш ключ доступа к API от TextBot.ru. Получить его можно в личном кабинете.
Параметр
model
является обязательным для совместимости с библиотекой OpenAI, но на данный момент он игнорируется, так как все запросы обрабатываются моделью GPT-4o.
Пример на Python с библиотекой OpenAI
from openai import OpenAI
# Укажите ваш API-ключ от textbot.ru
api_key = "5668ds-1122-44432-2211-88799d932"
client = OpenAI(
api_key=api_key,
base_url="https://textbot.ru/v1"
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Расскажи три шутки",
}
],
model="gpt-4o"
)
print(chat_completion.choices[0].message.content)
Пример на JavaScript
// Этот код можно выполнить прямо в браузере.
async function getCompletion() {
// ВАЖНО: Не размещайте реальный API-ключ в коде на стороне клиента в продакшене!
const apiKey = "5668ds-1122-44432-2211-88799d932";
const url = "https://textbot.ru/v1/chat/completions";
const data = {
model: "gpt-4o",
messages: [
{
role: "user",
content: "Расскажи три шутки"
}
]
};
try {
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`
},
body: JSON.stringify(data)
});
if (!response.ok) {
const errorBody = await response.text();
throw new Error(`HTTP error! status: ${response.status}, body: ${errorBody}`);
}
const result = await response.json();
// Проверяем, что ответ содержит ожидаемые данные
if (result.choices && result.choices.length > 0 && result.choices[0].message) {
// Возвращаем только текст ответа
return result.choices[0].message.content;
} else {
throw new Error("Получен некорректный формат ответа от API.");
}
} catch (error) {
console.error("Ошибка внутри getCompletion:", error);
// Пробрасываем ошибку дальше, чтобы ее можно было отловить снаружи
throw error;
}
}
// --- Основная логика ---
// Создаем главную async-функцию для вызова getCompletion
async function main() {
try {
console.log("Запрашиваем ответ...");
// Здесь мы `await` самого метода getCompletion
const completionText = await getCompletion();
// А здесь печатаем полученный ответ в консоль
console.log("Ответ от нейросети:", completionText);
} catch (error) {
console.error("Не удалось получить ответ от нейросети.");
}
}
// Вызываем главную функцию, чтобы запустить весь процесс
main();
Реализация на Python (стандартное API)
import time
import json
import requests
HOST_URL = 'https://textbot.ru/api/'
def post_request(endpoint, payload):
url = f"{HOST_URL}{endpoint}"
response = requests.post(url, data=json.dumps(payload))
return response.json()
def generate_response(api_key, input_text, mode):
payload = {'input_text': input_text, 'mode': mode, 'key': api_key}
return post_request('generate_response', payload)
def get_status(api_key, request_id):
payload = {'request_id': request_id, 'key': api_key}
return post_request('status', payload)
def check_balance(api_key):
payload = {'key': api_key}
return post_request('balance', payload)
def wait_for_completion(api_key, request_id, max_attempts=80, sleep_time=2):
for _ in range(max_attempts):
time.sleep(sleep_time)
status_info = get_status(api_key, request_id)
if status_info.get('status') == 'completed':
return status_info['result']
if status_info.get('status') == 'failed':
print(f"Не удалось получить результат. Ошибка: {status_info.get('error_message', 'Неизвестная ошибка')}.")
return None
print("Истекло время ожидания результата.")
return None
def solve(api_key, mode, input_text):
response_info = generate_response(api_key, input_text, mode)
if response_info.get('status') != 'processing':
print(f"Не удалось запросить генерацию. Ошибка: {response_info.get('error_message', 'Неизвестная ошибка')}.")
return None
request_id = response_info['request_id']
print(f"Создан запрос с id {request_id}.")
return wait_for_completion(api_key, request_id)
if __name__ == '__main__':
api_key = 'ВАШ_API_КЛЮЧ'
mode = 'article' # Режим нейросети
input_text = 'Расскажи три шутки'
print("Результат:\n", solve(api_key, mode, input_text))