VkusVill电报机器人
Telegram是一个使用人工智能收集食物篮的机器人。
机器人做什么
- 接受产品收集请求(如“收集橄榄沙拉篮子”)
- 支持语音信息 通过Whisper API转录
- 使用Claude AI来理解食谱和配料
- 通过MCP(Model Context Protocol)搜索产品
- 创建购物车并生成订单链接
堆栈
- OpenAI代理SDK 支持MCP的代理框架
- 文学硕士 -通过OpenAI兼容接口处理不同LLM的代理
- aiogram Telegram Bot API异步
- 克劳德·海库4.5 语言模型
- 码头工人 集装箱化
安装和启动
1.克隆存储库
git clone https://github.com/maddness/vkusvill-mcp-bot.git
cd vkusvill-mcp-bot2.配置配置
创建文件 config.yaml:
cp config.example.yaml config.yaml
nano config.yaml # или любой другой редактор填写令牌和设置:
telegram:
bot_token: "YOUR_BOT_TOKEN" # Токен от @BotFather
admin_ids:
- 123456789 # Ваш Telegram ID для уведомлений
llm:
model: "litellm/openai/claude-haiku-4-5"
api_key: "YOUR_API_KEY" # API ключ для Claude
api_base: "YOUR_API_BASE_URL" # URL вашего LLM API
mcp:
url: "https://mcp001.vkusvill.ru/mcp"
whisper:
api_url: "YOUR_WHISPER_API_URL" # URL Whisper API для транскрибации
api_key: "YOUR_WHISPER_API_KEY" # API ключ (если требуется)
model: "whisper-1"
max_file_size_mb: 20 # Максимальный размер голосового сообщения
max_duration_seconds: 180 # Максимальная длительность (3 минуты)
bot:
max_history_messages: 20
stream_update_interval: 1.0
stream_min_chars: 50在哪里获取代币:
bot_token-创建一个机器人通过 @植物学家 在Telegramapi_key-获取Claude或兼容服务的API密钥admin_ids-您的电报ID(可通过电子邮件查询) @用户信息机器人)
3.通过Docker启动(推荐)
收集并运行容器:
docker compose up -d --build查看日志:
docker compose logs -f停止机器人:
docker compose down重新启动机器人:
docker compose restart4.或本地启动
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py访问服务器
网络访问要求
服务器必须具有对以下资源的传出访问:
资源,港口,目的地。 |--------|------|------------| | github.com 443.克隆存储库 | pypi.org, files.pythonhosted.org 443.安装Python软件包 | api.telegram.org |443| Telegram Bot API| | mcp001.vkusvill.ru #443;mcp服务器。 –您的LLM API–443语言模型API→
1.连接到服务器
ssh user@your-server-ip2.安装Docker
sudo apt update
sudo apt install docker.io docker-compose-v2 -y
sudo usermod -aG docker $USER
# Перелогиниться для применения прав3.克隆存储库
git clone https://github.com/maddness/vkusvill-mcp-bot.git
cd vkusvill-mcp-bot4.配置配置
cp config.example.yaml config.yaml
nano config.yaml # вставить токены (см. раздел "Настроить конфигурацию")5.运行机器人
docker compose up -d --build6.机器人管理
查看日志:
# Последние 50 строк
docker compose logs --tail=50
# Следить за логами в реальном времени
docker compose logs -f重新启动机器人:
docker compose restart机器人站:
docker compose down代码更新:
git pull
docker compose up -d --build查看交互日志:
# Структура: logs/YYYY-MM-DD/user_id/timestamp.json
ls -la logs/
cat logs/2026-01-03/123456789/2026-01-03_14-30-15.json | jq .查看用户数据库:
cat db/users.json | jq .
cat db/interactions.json | jq .机器人的能力
🎤 语音信息
机器人支持通过Whisper API转录语音消息:
- 最大尺寸: 20 MB
- 最大持续时间: 3分钟(180秒)
- 语言: 俄语(可调)
只需发送带有请求的语音信息,例如:
“收集罗宋汤篮子。”
机器人自动:
- 识别语音
- 显示识别文本
- 处理请求并收集垃圾
📝 短信
发送纯文本消息:
- “把橄榄沙拉篮子。”
- “我们需要一些碳水化合物的产品。”
- “我要为四个人做甜菜。
🔄 流媒体响应
机器人使用流媒体显示实时响应:
- 您可以看到请求处理过程
- 答案随着时间的推移而逐渐出现。
- 更新之间的最小延迟
机器人命令
团队描述 |---------|----------| | /start 开始使用bot | /new_chat 重置上下文,重新开始。
使用
- 给机器人发一条消息,描述你想做什么
- 机器人会在品味维尔找到合适的产品。
- 获得一个完整的购物车与订单链接
- 单击“收集新回收站”按钮进行新请求
项目结构
vkusvill-mcp-bot/
├── app.py # Точка входа
├── config.yaml # Конфигурация (не в git)
├── docker-compose.yml # Docker конфигурация
├── Dockerfile # Образ Docker
├── requirements.txt # Python зависимости
├── prompts/ # AI промпты (можно редактировать)
│ ├── system_prompt.txt # Системный промпт
│ └── user_initial_prompt.txt # Начальный промпт
├── bot/src/
│ ├── handlers/ # Telegram обработчики
│ │ ├── commands.py # Команды (/start, /new_chat)
│ │ └── messages.py # Обработка сообщений
│ ├── agent/ # AI Agent
│ │ └── runner.py # Запуск агента
│ ├── mcp/ # MCP клиент
│ │ ├── client.py # HTTP клиент
│ │ └── tools.py # Инструменты (search, create_cart)
│ └── utils/
│ ├── config.py # Загрузчик конфигурации
│ ├── logger.py # Логирование взаимодействий
│ └── database.py # База данных пользователей
├── logs/ # Логи взаимодействий (не в git)
│ └── YYYY-MM-DD/
│ └── user_id/
│ └── timestamp.json
├── db/ # База данных (не в git)
│ ├── users.json
│ └── interactions.json
└── assets/ # Ресурсы机会
- 🤖 AI助理 基于 Claude Haiku 4.5
- 🔍 自动搜索 产品通过MCP
- 🛒 生成篮子 现成链接
- ⚡ 流媒体响应 实时(Bot API 9.3)
- 📝 上下文存储器 最近20篇文章
- 👥 通知管理员 关于所有请求
- 📊 记录 JSON中的所有交互
- 💾 数据库 用户和统计
文件
许可证
麻省理工学院
