API нейросети ТекстБот: документация
Чтобы использовать API нейросети, нужно подключить платные запросы. За раз в нейросеть можно отправить до 5 000 символов текста (лишнее будет автоматически обрезано). Цена одной генерации ответа через API — 4 запроса.
Запросы API обрабатываются моделью нейросети GPT-4o, поэтому в качестве генерации можно не сомневаться.
Запросить генерацию ответа
POST
/api/generate_response
Цена: 4 запроса
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": "Недостаточно запросов для генерации. Баланс: 3. Нужно: 4. Оплатить запросы: https://textbot.ru/price",
"balance": 3
}
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"
}
Реализация на Python
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))