Локальный API-сервер для общения с AI-моделями через duck.ai, без необходимости использования браузера.
Этот проект позволяет запускать локальный FastAPI-сервер, через который вы можете отправлять запросы к AI-моделям (например, GPT-4o), используя интерфейс duck.ai — но уже программно, через API.
Duck.ai не предоставляет публичного API, но позволяет общаться с мощными моделями бесплатно.
duck-local-chat-api
обходит это ограничение, автоматически извлекая валидные заголовки запросов через браузерный скрипт, и предоставляет простой HTTP-интерфейс для интеграции в свои приложения.
- Использует Playwright + Chromium в фоне (на виртуальном дисплее) для имитации реального пользователя.
- Автоматически проходит проверки (если есть) и отправляет тестовый запрос, чтобы получить действующие
заголовки
(включаяvqd
). - Заголовки сохраняются и используются для последующих запросов к API duck.ai.
- Всё работает локально, без передачи ваших данных куда-либо.
- FastAPI — для создания API
- Playwright (patchright) — для автоматизации (undetected)
- xvfbwrapper — создаёт виртуальный экран (для headless-работы)
notify-send
— Linux-уведомления о статусе- Основан на
mrgick/duck_chat
⚠️ Поддерживается только Linux (из-заxvfb
иnotify-send
).
git clone https://github.com/paranoik1/duck-local-chat-api
cd duck-local-chat-api
# Установка через poetry
poetry install --no-root
# Создание виртуального окружения
poetry env use python3.13
# Вход в виртуальное окружение
$(poetry env activate)
# Можно установить с помощью pip
# Создание python окружение
python -m venv .venv
# Активирование его
source .venv/bin/activate
# Установка пакетов из requirements.txt
pip install -r requirements.txt
Убедитесь, что у вас установлены
xvfb
иlibnotify-bin
:sudo apt install xvfb libnotify-bin
$ python main.py
usage: main.py [-h] [--host HOST] [--port PORT] [--log-level LOG_LEVEL] [-f]
Запуск сервиса
options:
-h, --help show this help message and exit
--host HOST Хост для сервера (по умолчанию 127.0.0.1)
--port PORT Порт для сервера (по умолчанию 8000)
--log-level LOG_LEVEL
Уровень логирования (например, debug, info, warning, error, critical)
-f Пропустить проверку needs_editing и запустить generate_models без условий
curl -X POST http://127.0.0.1:8000/chat \
-H "Content-Type: application/json" \
-d '{
"content": "Привет! Кто ты?",
"model": "gpt-4o-mini"
}'
Доступные модели
duck_chat/models/model_type.py
:
Gpt4OMini
→ gpt-4o-miniGpt4OMini
= gpt-4o-miniGpt5Mini
= gpt-5-miniGptOss120B
= openai/gpt-oss-120bLlama4Scout17B16EInstruct
= meta-llama/Llama-4-Scout-17B-16E-InstructClaude35HaikuLatest
= claude-3-5-haiku-latestMistralSmall24BInstruct2501
= mistralai/Mistral-Small-24B-Instruct-2501
Ответ:
"Привет! Я — искусственный интеллект, готовый помочь тебе с любыми вопросами…"
⚠️ Список моделей автоматически парсится с Duck.ai API сервисом при запуске сервиса - поэтому выше приведенный перечень моделей может быть устаревшим, смотритеduck_chat/models/model_type.py
- При старте сервер проверяет наличие валидных заголовков.
- Если они устарели или отсутствуют — запускается фоновая задача, которая:
- Запускает Chromium в виртуальном дисплее
- Переходит на duck.ai
- Отправляет тестовый запрос
- Перехватывает заголовки из API-запроса
- Сохраняет их для дальнейшего использования
- Вы получите уведомление:
Заголовки получены и сохранены
Если возникнет ошибка проверки (
ChallengeException
), система автоматически попытается обновить заголовки.
duck-local-chat-api/
├── service.py # Основной FastAPI-сервер
├── utils.py # Скрипт получения заголовков через Playwright
├── headers_manager.py # Управление сохранением/загрузкой заголовков
├── main.py # Скрипт запуска
└── duck_chat/ # Модифицированная библиотека для работы с duck.ai
- Только Linux (из-за
xvfb
иnotify-send
) - Не учитывается история чата при отправке нового промпта (нужна лишь для корректной валидации основго промпта)
- Работает только пока заголовки валидны (время жизни — 5-10 запросов)
- Не предназначен для массового использования (следуйте правилам duck.ai)
- Требует доступа к Chromium и GUI-совместимых инструментов
Сделано с ❤️ для тех, кто хочет использовать AI без регистрации и лишних движений.
Автор не несёт ответственности за нарушение правил duck.ai при массовом использовании.
- mrgick/duck_chat — за основу
- patchright — за отличное решение по обходу проверок на ботов
- Playwright & FastAPI — за отличные инструменты
🦆 Утки не возвращаются, но API — да.
Пользуйтесь с умом.