AI агент для автоматического сбора, анализа и систематизации сообщений из WhatsApp групп в Google Таблицы.
- 🔄 Автоматический сбор сообщений из указанных WhatsApp групп
- 📊 Анализ контента: категоризация, извлечение ключевых слов, анализ тональности
- 📈 Статистика и отчеты в Google Таблицах
- ⏰ Планировщик для регулярного обновления данных
- 🎯 Интеллектуальная обработка с использованием OpenAI API
git clone https://github.com/doctopmail-dev/whatsapp-ai-agent.git
cd whatsapp-ai-agent
pip install -r requirements.txt- Перейдите в Facebook Developers
- Создайте новое приложение Meta
- Добавьте продукт WhatsApp
- Получите API токен и ID номера телефона
- Добавьте ваш номер телефона в тестовые
- Перейдите в Google Cloud Console
- Создайте новый проект или выберите существующий
- Включите Google Sheets API и Google Drive API
- Создайте Service Account
- Скачайте JSON-файл с ключами и сохраните как
credentials/service-account.json - Поделитесь таблицей с email из Service Account
- Создайте OAuth 2.0 credentials
- Скачайте JSON-файл и сохраните как
credentials/credentials.json
- Получите API ключ на OpenAI Platform
- Добавьте в
.envфайл для анализа тональности сообщений
Скопируйте .env.example в .env и заполните данными:
cp .env.example .envОтредактируйте .env файл:
# WhatsApp API
WHATSAPP_API_TOKEN=your_whatsapp_api_token
WHATSAPP_PHONE_NUMBER_ID=your_phone_number_id
WHATSAPP_GROUP_IDS=group_id_1,group_id_2,group_id_3
# OpenAI API
OPENAI_API_KEY=your_openai_api_key
# Google Sheets
GOOGLE_SERVICE_ACCOUNT_PATH=./credentials/service-account.json
# Настройки агента
SPREADSHEET_TITLE=WhatsApp Анализ Сообщений
MESSAGES_PER_GROUP=50
UPDATE_INTERVAL_MINUTES=30python whatsapp_agent.py testpython whatsapp_agent.py runpython whatsapp_agent.py schedule| Колонка | Описание |
|---|---|
| ID сообщения | Уникальный идентификатор |
| Автор | Имя отправителя |
| Текст сообщения | Очищенный текст |
| Оригинальный текст | Исходный текст |
| Время | Timestamp сообщения |
| Тип сообщения | text/image/etc |
| Категория | Автоматическая категоризация |
| Ключевые слова | Извлеченные ключевые слова |
| Тональность | Позитивная/Негативная/Нейтральная |
| Длина сообщения | Количество символов |
| Дата | Дата сообщения |
| Время суток | Время в формате HH:MM |
| День недели | День недели |
| Час | Час дня (0-23) |
- Общая статистика по сообщениям
- Самые активные авторы
- Распределение по категориям
- График активности по часам и дням
Автоматически определяются следующие категории:
- Продажи/Реклама - сообщения с предложениями товаров/услуг
- Вопросы - сообщения, содержащие вопросы
- Информация/Новости - информационные сообщения
- Общение/Чат - бытовое общение
- Ссылки/Медиа - сообщения с ссылками или медиа
- Работа/Бизнес - рабочие обсуждения
- Другое - все остальные сообщения
Все действия логируются в файл whatsapp_agent.log:
tail -f whatsapp_agent.logA: Используйте WhatsApp API для получения списка групп:
from whatsapp_client import WhatsAppClient
client = WhatsAppClient(api_token, phone_id)
groups = client.get_groups_list()
for group in groups:
print(f"Название: {group['name']}, ID: {group['id']}")A: Да, анализ тональности будет пропущен, остальные функции работают.
A: Настраивается в .env файле (UPDATE_INTERVAL_MINUTES), по умолчанию 30 минут.
A: Все учетные данные хранятся локально в .env файле. Рекомендуется использовать Service Account для Google Sheets.
- Python 3.8+
- WhatsApp Business API
- Google Cloud Project с включенными API
- (Опционально) OpenAI API ключ
MIT License