Интегрируйте мощь передовых нейросетей LakeGPT в ваши приложения. Эта документация поможет вам начать работу с нашим API, понять его возможности, ограничения и лучшие практики использования.
Добро пожаловать в документацию по API LakeGPT! Наше API предоставляет программный доступ к разнообразным моделям искусственного интеллекта, позволяя разработчикам интегрировать возможности генерации текста, ответов на вопросы и выполнения других интеллектуальных задач непосредственно в свои продукты и сервисы.
API разработано с упором на простоту использования и гибкость. В основе лежит RESTful архитектура, взаимодействие происходит через стандартные HTTP-запросы, а данные передаются в формате JSON.
На данный момент API включает два основных эндпоинта:
/api/models
: Получение списка доступных моделей ИИ./api/chat
: Отправка запроса к выбранной модели ИИ и получение ответа.Базовый URL для всех запросов к API: https://api.lakegpt.ru/api/
Важное замечание о CORS: На данный момент API сконфигурировано так, чтобы принимать запросы в основном с домена https://chat.lakegpt.ru
. Если вы планируете использовать API с другого домена (например, с вашего локального сервера разработки или другого веб-приложения), вам может потребоваться настройка прокси или обращение к нам для возможной корректировки политики CORS.
На текущий момент API LakeGPT не требует сложных ключей аутентификации для базового использования. Однако для обеспечения безопасности и предотвращения злоупотреблений, все POST
запросы к API (включая /api/chat
и /api/models
) должны содержать специфический HTTP-заголовок:
X-Requested-With: XMLHttpRequest
Этот заголовок обычно автоматически добавляется JavaScript-библиотеками для AJAX-запросов (например, Fetch API, Axios, jQuery.ajax). Если вы делаете запросы из серверной среды (например, Python скрипт), вам нужно будет добавить этот заголовок вручную.
Запросы без этого заголовка будут отклонены с кодом ошибки 400 Bad Request
и сообщением {"error": "Missing required headers"}
.
Также все запросы должны отправляться с заголовком Content-Type: application/json
, если тело запроса содержит JSON данные (как в случае с /api/chat
).
Для обеспечения стабильной работы сервиса для всех пользователей и защиты от злонамеренной активности, API LakeGPT использует систему ограничения частоты запросов (rate limiting). Лимиты применяются на основе IP-адреса клиента.
/api/chat
: 20 запросов в минуту
на IP-адрес./api/models
: 30 запросов в минуту
на IP-адрес.Если вы превысите установленный лимит, API вернет ошибку с кодом состояния 429 Too Many Requests
. В этом случае вам следует подождать некоторое время перед отправкой следующего запроса.
Кроме того, сервер может блокировать запросы с IP-адресов, занесенных в черный список, или запросы с User-Agent, соответствующими известным ботам или скрейперам (например, стандартные User-Agent библиотек requests
или aiohttp
без кастомизации). В таких случаях будет возвращен код 403 Forbidden
.
Этот эндпоинт позволяет получить актуальный список моделей ИИ, доступных через API LakeGPT, с их краткими описаниями.
Метод: POST
URL: https://api.lakegpt.ru/api/models
X-Requested-With: XMLHttpRequest
(Обязательный)Content-Type: application/json
(Рекомендуется, хотя тело запроса пустое)Не требуется.
Возвращает JSON-объект, где ключами являются идентификаторы моделей, а значениями - объекты с полями name
(отображаемое имя) и description
(описание).
{
"deepseek-r1": {
"name": "🟡 DeepSeek R1",
"description": "Мощная модель для сложных задач"
},
"gemini-2.0-pro-exp": {
"name": "🟡 Gemini 2.0 Pro",
"description": "Экспериментальная модель от Google"
},
"o3-mini": {
"name": "🔴 OpenAI o3 mini",
"description": "Продвинутая модель для сложных задач"
},
"o1-mini": {
"name": "🟢 OpenAI o1 mini",
"description": "Продвинутая модель для сложных задач"
},
"searchgpt": {
"name": "🟢 SearchGPT",
"description": "Модель для поиска в реальном времени"
},
"gpt-4o-mini": {
"name": "🔴 ChatGPT-4o mini",
"description": "Обычная модель для повседневных задач"
},
"gpt-4o": {
"name": "🟢 ChatGPT-4o",
"description": "Обычная модель для повседневных задач"
},
"meta-llama/Llama-3.3-70B-Instruct-Turbo": {
"name": "🔴 Llama 3.3 70B",
"description": "Обычная модель для повседневных задач"
},
"mistralai/Mistral-Small-24B-Instruct-2501": {
"name": "🔴 Mistral Small 3",
"description": "Обычная модель для повседневных задач"
},
"claude-3-haiku-20240307": {
"name": "🔴 Claude 3 Haiku",
"description": "Обычная модель для повседневных задач"
}
// ... и другие модели
}
import requests
import json
api_url = "https://api.lakegpt.ru/api/models"
headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json',
# Рекомендуется установить кастомный User-Agent
'User-Agent': 'MyLakeGPTClient/1.0 (MyProject; +http://myproject.example.com)'
}
try:
response = requests.post(api_url, headers=headers)
response.raise_for_status() # Проверка на HTTP ошибки
models_data = response.json()
print("Доступные модели:")
for model_id, details in models_data.items():
print(f"- ID: {model_id}")
print(f" Имя: {details['name']}")
print(f" Описание: {details['description']}")
print("-" * 20)
except requests.exceptions.RequestException as e:
print(f"Ошибка при запросе списка моделей: {e}")
if e.response is not None:
print(f"Статус код: {e.response.status_code}")
try:
print(f"Тело ответа: {e.response.json()}")
except json.JSONDecodeError:
print(f"Тело ответа: {e.response.text}")
except json.JSONDecodeError:
print("Ошибка декодирования JSON ответа.")
Это основной эндпоинт для взаимодействия с моделями ИИ. Вы отправляете историю диалога и параметры, а API возвращает ответ, сгенерированный выбранной моделью.
Метод: POST
URL: https://api.lakegpt.ru/api/chat
X-Requested-With: XMLHttpRequest
(Обязательный)Content-Type: application/json
(Обязательный)User-Agent
(Рекомендуется установить кастомный)messages
(array[object], Обязательный): Массив объектов, представляющих историю диалога. Каждый объект должен содержать:
role
(string): Роль автора сообщения. Обычно "user"
для сообщений пользователя и "assistant"
для предыдущих ответов модели. Первое сообщение чаще всего имеет роль "user"
.content
(string): Текст сообщения.model
(string, Опциональный): Идентификатор модели, которую вы хотите использовать (из списка, полученного через /api/models
). Если не указан, используется модель по умолчанию (o3-mini
). Важно: Рекомендуется всегда указывать модель явно, выбирая из тех, которые подтвержденно работают (см. Примечание ниже).max_tokens
(integer, Опциональный): Максимальное количество токенов (примерно слов или частей слов), которое модель должна сгенерировать в ответе. *Примечание: текущая реализация на стороне сервера может не всегда строго соблюдать этот параметр для всех провайдеров моделей.*{
"messages": [
{
"role": "user",
"content": "Привет! Расскажи анекдот про программиста."
}
],
"model": "gpt-4o"
}
Возвращает ответ модели в виде простого текста (text/plain
).
Почему программисты предпочитают тёмную тему?
Потому что свет притягивает баги!
API может возвращать различные коды ошибок:
400 Bad Request
: Неверный формат запроса (например, отсутствует обязательное поле messages
, неверный JSON, отсутствует заголовок X-Requested-With
). Тело ответа будет содержать JSON с полем error
.403 Forbidden
: Доступ запрещен (например, IP в черном списке или заблокированный User-Agent).429 Too Many Requests
: Превышен лимит запросов.500 Internal Server Error
: Непредвиденная ошибка на сервере LakeGPT. Тело ответа может содержать JSON с полем error
.502 Bad Gateway / 503 Service Unavailable
: Проблема на стороне провайдера модели ИИ (например, LakeAI.com или LakeCoinAI). Тело ответа может содержать JSON с полем error
.import requests
import json
api_url = "https://api.lakegpt.ru/api/chat"
headers = {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json',
'User-Agent': 'MyLakeGPTClient/1.0 (MyProject; +http://myproject.example.com)'
}
payload = {
"messages": [
{"role": "user", "content": "Напиши простой Python скрипт для вывода 'Hello, World!'"}
],
# Указываем конкретную рабочую модель:
"model": "gpt-4o"
# "model": "deepseek-chat" # Или другую доступную модель
# "model": "searchgpt" # Для поиска в вебе
}
try:
response = requests.post(api_url, headers=headers, json=payload)
response.raise_for_status() # Проверка на HTTP ошибки (4xx, 5xx)
# Ответ приходит как обычный текст
ai_response = response.text
print("Ответ от AI:")
print(ai_response)
except requests.exceptions.RequestException as e:
print(f"Ошибка при запросе к чату: {e}")
if e.response is not None:
print(f"Статус код: {e.response.status_code}")
# Пытаемся прочитать тело ошибки как JSON, если не получается - как текст
try:
error_details = e.response.json()
print(f"Детали ошибки: {error_details}")
except json.JSONDecodeError:
print(f"Тело ответа (не JSON): {e.response.text}")
except Exception as e:
print(f"Произошла неожиданная ошибка: {e}")
Хотя эндпоинт /api/models
возвращает широкий список моделей, текущая серверная логика маршрутизации запросов (в файле `app.py`) активно обрабатывает только следующие модели через соответствующих провайдеров:
deepseek-r1
, deepseek-chat
, gemini-2.0-pro-exp
o1-mini
, gpt-4o
, searchgpt
Запросы к другим моделям, перечисленным в /api/models
(например, o3-mini
, gpt-4o-mini
, Llama, Mistral, Claude), на данный момент могут не обрабатываться должным образом из-за особенностей реализации сервера и, скорее всего, приведут к ошибке 500 Internal Server Error
с сообщением {"error": "AI service error"}
.
Рекомендуется при вызове /api/chat
явно указывать одну из моделей, перечисленных выше, для гарантированной работы.