📡 Анализ клиентских чатов с помощью LLM (Ollama, локальные модели)
Этот проект предназначен для:
- подключения к локальной модели через Ollama
- анализа клиентских чатов (в формате Telegram/JSON)
- построения кастомных промптов под разные задачи
- сохранения результатов анализа в базу данных и Google Sheets
Идея проекта — выделить структурированные данные из реальных чатов (например, с Меты или Telegram) и подготовить систему для глубокого анализа намерений, жалоб, офферов и тональности.
🧱 Структура проекта
ai-chat-analysis/
├── client_chat_processor.py # 🔁 Основной скрипт: загрузка чатов, генерация промпта, вызов модели, сохранение
├── export_to_gsheets.py # 📤 Экспорт результатов в Google Таблицу
├── db.py # 🗄️ Работа с MySQL (вставка результатов анализа)
├── query_ollama.py # 🔌 Проверка соединения с Ollama через SSH-туннель
├── .env.ssh # ⚙️ Переменные окружения (пример с SSH)
├── credentials.json # 🔐 Ключ для доступа к Google Sheets API
├── data/ # 📥 Входные чаты (Telegram JSON, массивы чатов)
│ └── chat.json # Пример файла чата
├── output/ # 📦 Результаты обработки
│ ├── *_analysis.json # JSON с извлечёнными полями (has_order, summary и т.д.)
│ └── history.jsonl # История обработанных чатов (hash + мета)
├── prompts/ # 🧠 (в разработке) Коллекция промптов для разных задач анализа
│ └── *.txt # Индивидуальные инструкции для LLM
└── README.md # 📘 Документация проекта
- Python 3.10+
- Ollama (локальные LLM: gemma3n, deepseek и др.)
- Google Sheets API (через
gspread) - MySQL (через
mysql-connector-python) - SSH +
sshpassдля проброса порта к хост-машине
⚙️ Настройки окружения (.env.ssh)
Создай файл .env.ssh в корне проекта, чтобы задать переменные окружения:
##################################
# 📁 Файлы
CHAT_FILE=data/chat.json # Путь до исходного файла с чатами
OUTPUT_DIR=output # Папка для сохранения результатов
##################################
# 🔐 SSH-подключение к хосту с Ollama
SSH_HOST=192.168.1.42 # IP-адрес хост-машины с Ollama
SSH_USER= # SSH-пользователь
SSH_PORT=22 # Порт подключения по SSH
REMOTE_PORT=11434 # Порт Ollama на хосте
LOCAL_PORT=11434 # Порт, проброшенный на клиент
SSH_PASS= # Пароль SSH (можно заменить на SSH-ключ)
##################################
# 🤖 Модель
LLM_MODEL=gemma3n # Название модели Ollama (например: gemma3n, deepseek, mistral и т.д.)
- Для запуска:
set -a && source .env.ssh && set +a
python3 client_chat_processor.py
- Экспорт в Google Sheets
Убедись, что файл credentials.json рядом.
python3 export_to_gsheets.py
🧠 Что делает анализатор?
Для каждого чата:
извлекает текст сообщений
подаёт в LLM с промптом, содержащим инструкцию
ожидает структурированный JSON:
has_order
total_sum
complaint
summary
сохраняет результат в output/*.json и базу данных
🧰 План расширения
Разделить промпты по задачам (prompts/*.txt)
Генерация до 10–15 задач на чат (тональность, метки, эмоции, оффер)
Вывод результатов в Telegram или Slack
Поддержка других форматов (.eml, .msg)
Веб-интерфейс для ручного анализа и подтверждения
🧷 Пример результата (output/1_chat_analysis.json)
{ "has_order": true, "total_sum": 2150, "complaint": "Клиент жалуется на брак пластика", "summary": "Обсуждался заказ на печать из PLA. Итоговая сумма — 2150 руб. Есть жалоба на качество." }
📎 Контакты / Автор
Проект разработан для собственного изучения AI-интеграции в бизнес-процессы
github.com/rmtadmin