Telegram-бот, который помогает заказчику описать идею IT-продукта и получить основу технического задания (ТЗ).
Бот проводит короткое интервью: задаёт вопросы по одному, собирает ответы и передаёт их языковой модели. Готовый документ отправляется в Telegram в форматах DOCX и PDF.
- 💬 Диалог с пользователем через Telegram
- 🧭 Сбор требований по этапам с помощью FSM aiogram
- 🤖 Подключение к OpenAI-совместимому API языковой модели
- 📝 Формирование технического задания на русском языке
- 📄 Экспорт результата в DOCX и PDF
- ⚙️ Настройка токенов, модели и адреса API через
.env
| Технология | Назначение |
|---|---|
| Python 3.11+ | Язык приложения |
| aiogram 3 | Telegram Bot API, маршрутизация и FSM |
| OpenAI Python SDK | Асинхронные запросы к OpenAI-совместимому API |
| Pydantic Settings | Загрузка и проверка настроек из окружения |
| python-dotenv | Чтение настроек из файла .env |
| python-docx | Создание документа DOCX |
| fpdf2 | Создание PDF-документа |
git clone https://github.com/HellenWeb/termsOfReference-llm.git
cd termsOfReference-llm
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txtВ Windows активируйте окружение командой .venv\Scripts\activate.
Скопируйте пример настроек и заполните значения:
cp .env.example .env| Переменная | Описание |
|---|---|
BOT_TOKEN |
Токен Telegram-бота, созданного через @BotFather |
LLM_API_KEY |
API-ключ выбранного LLM-провайдера |
LLM_BASE_URL |
Базовый URL OpenAI-совместимого API |
LLM_MODEL |
Идентификатор модели провайдера |
LOG_LEVEL |
Уровень логирования, например INFO или DEBUG |
ENVIRONMENT |
Название окружения, например development |
Не публикуйте .env и не добавляйте реальные ключи в репозиторий.
python -m bot.main- Откройте бота в Telegram и отправьте
/start. - Нажмите кнопку начала интервью.
- Отвечайте на вопросы о проекте: его целях, аудитории, функциях и ограничениях.
- Когда интервью завершится, получите ТЗ в DOCX и PDF.
bot/
├── handlers/ # Команды и обработчики диалога
├── keyboards/ # Клавиатуры Telegram
├── services/ # LLM-клиент и генерация ТЗ
├── states/ # Состояния FSM интервью
├── utils/ # Общие утилиты, включая логирование
├── config.py # Настройки приложения
└── main.py # Точка входа и запуск polling
tests/ # Тесты проекта
- Для работы нужны действующие Telegram Bot Token и API-ключ LLM-провайдера.
- Для генерации PDF используется Unicode-шрифт, поддерживающий кириллицу (например, DejaVu Sans или Arial).
- FSM использует хранилище в памяти: при перезапуске бота незавершённые диалоги не сохраняются.