Skip to content

emworks/ethical-llm-chatbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ethical LLM Chatbot

Локальный многофункциональный чат-бот на базе LLM с моральным фильтром, RAG, таблицами и CoT.

Описание

ethical-llm-chatbot — интерактивный чат-бот, работающий локально с текстовыми базами данных. Проект демонстрирует:

  • Этическую фильтрацию запросов (моральный фильтр)
  • RAG (retrieval-augmented generation) для ответов на вопросы по пользовательским базам
  • Табличную обработку пользовательских документов
  • Пересказ и извлечение тегов
  • Решение сложных текстовых задач с промежуточными шагами (CoT / structured reasoning)
  • Многоязычность: русский, английский, немецкий, французский

Бот может запускаться в CLI или как Telegram-бот.

Функциональные возможности

Функция Описание
Моральный фильтр Классификация запросов, отсеивающая оскорбительные или незаконные действия
RAG-поиск Поиск информации в пользовательской базе с LLM-ответами
Таблицы Автоматическое создание таблиц на основе документа или базы данных
Пересказ и теги Генерация краткого резюме текста и тематических ключевых слов
CoT / Structured reasoning Решение сложных текстовых задач с промежуточными шагами
Многоязычность Автоматическая классификация языка и общение на выбранном языке

Архитектура

flowchart TD
    %% Пользовательский запрос
    A[Пользовательский запрос] --> B{Моральный фильтр}

    %% Фильтрация
    B -- "Неприемлемый" --> C[Блокировка запроса]
    B -- "Приемлемый" --> D[Языковой классификатор]

    %% Установка языка
    D --> E[Установка языка беседы]

    %% Определение функции
    E --> F{Domain classifier / Определение функции}

    %% RAG
    F -- "RAG-поиск" --> G1[Books Collection]
    F -- "Рекомендации" --> G2[Reco Collection]
    G1 --> K["LLM (Ollama)"]
    G2 --> K

    %% Таблицы
    F -- "Таблицы" --> H[Table Collection]
    H --> K

    %% CoT / сложные задачи
    F -- "CoT / Structured Reasoning" --> I[CoT Collection]
    I --> K

    %% Пересказ и теги
    F -- "Summary & Tags" --> J[Summary / YAKE]
    J --> K

    %% Ответ пользователю
    K --> L[Ответ пользователю]

    %% Обратная связь: добавление текста в базу
    L --> M{Добавить текст в базу?}
    M -- Да --> N1[Books Collection]
    M -- Да --> N2[Reco Collection]
    M -- Да --> N3[Table Collection]
    M -- Да --> N4[CoT Collection]

    %% Поток назад к LLM для RAG
    N1 --> K
    N2 --> K
    N3 --> K
    N4 --> K
Loading

Установка

pip install -r requirements.txt

Установите и запустите Ollama.

Построение базы

Поместите тексты в папку ./data/**/*.txt и создайте базу:

python chatbot.py --build
# Для полного пересоздания базы
python chatbot.py --build --rebuild

Запуск

CLI чат

python chatbot.py --chat

Telegram-бот

python chatbot.py --telegram --telegram-token "<TG_BOT_TOKEN>"

Примеры использования

RAG-поиск

Пользователь: Найди информацию о квантовой механике в моей базе.
Бот: Вот что я нашёл: ...

Таблица

Пользователь: Создай таблицу мясных и рыбных блюд из документа.
Бот: 
| Название | Тип |
|----------|-----|
| Стейк    | Мясо|
| Сёмга    | Рыба|

CoT / сложная задача

Пользователь: Реши задачу с промежуточными шагами.
Бот: 
Шаг 1: ...
Шаг 2: ...
Итог: ...

Пересказ и теги

Пользователь: Дай краткий пересказ статьи.
Бот: Краткий пересказ...
Тэги: физика, квантовая механика, эксперименты

Структура проекта

ethical-llm-chatbot/
├─ data/                  # Пользовательские тексты для RAG, таблиц и CoT
├─ utils/                 # Вспомогательные функции
│   ├ embed.py            # Функции для векторных представлений текста
│   ├ translation/lang.py # Определение и установка языка
│   └ debug.py            # Логирование и отладка
├─ classifiers/           # Классификаторы запросов
│   ├ moral.py            # Моральный фильтр
│   ├ domain.py           # Определение функции/домена
│   └ language.py         # Определение языка
├─ chatbot.py             # Основной скрипт (CLI + Telegram)
├─ requirements.txt       # Зависимости проекта
└─ README.md              # Документация

Технологии

  • Python 3.10+
  • ChromaDB (для RAG)
  • Ollama (LLM)
  • NLTK, YAKE (токенизация, ключевые слова)
  • Telebot (Telegram интеграция)
  • Logistic Regression (классификаторы)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages