Проект создан по мотивам статьи с Хабра - локальный чатбот без ограничений на базе LM Studio и открытых LLM моделей.
- 🔒 Приватность - все данные обрабатываются локально
- 🎯 Гибкость - поддержка различных режимов работы
- 💾 История - сохранение и загрузка разговоров
- 🎨 Настройка - системные промпты для различных задач
- 📊 Статистика - отслеживание использования
- 📚 RAG (Retrieval-Augmented Generation) - используйте собственную базу знаний
- Скачайте LM Studio с официального сайта: https://lmstudio.ai/
- Установите приложение на ваш компьютер
- Запустите LM Studio
- В LM Studio перейдите во вкладку "Discover"
- Найдите и скачайте одну из рекомендуемых моделей:
- Mistral 7B - быстрая и универсальная
- LLaMA 3 8B - качественная общая модель
- DeepSeek-Coder - специализированная для программирования
- CodeGemma - еще одна модель для кода
- В LM Studio выберите вкладку "Local Server"
- Выберите скачанную модель
- Нажмите "Start Server" (по умолчанию сервер запускается на порту 1234)
- Убедитесь, что сервер запущен и показывает зеленый индикатор
# Клонируйте репозиторий или скачайте файлы
git clone <repository-url>
cd AIChatBotVodc
# Установите зависимости
pip install -r requirements.txt
python chatbot.py
python advanced_chatbot.py
python rag_chatbot.py
python demo_rag.py
- code_assistant - помощник программиста
- creative_writer - творческий писатель
- teacher - преподаватель
- analyst - аналитик данных
- general_assistant - общий ассистент
- debug_helper - помощник по отладке
- code_reviewer - ревьюер кода
- Все режимы базового чатбота
- Собственная база знаний - добавляйте свои документы
- Векторный поиск - находит релевантную информацию
- Контекстные ответы - использует знания из документов
- Поддержка форматов - TXT, PDF, MD (в разработке)
/clear
- очистить историю разговора/save [имя_файла]
- сохранить разговор/exit
- выйти из программы
/mode <ключ>
- сменить режим работы/load <имя_файла>
- загрузить сохраненный разговор/list
- показать список сохраненных разговоров/stats
- показать статистику текущего разговора/help
- показать справку
RAG (Retrieval-Augmented Generation) - это технология, которая позволяет чатботу использовать ваши собственные документы для ответов. Вместо обучения модели заново, система:
- Создает векторные представления ваших документов
- При получении вопроса находит наиболее релевантные части
- Использует найденную информацию для генерации ответа
-
Запустите демонстрацию:
python demo_rag.py
-
Добавьте свои документы:
python rag_chatbot.py # В чате используйте команду: /add_document путь_к_файлу.txt
-
Поддерживаемые форматы:
- TXT (текстовые файлы)
- PDF (в разработке)
- MD (Markdown, в разработке)
- Инструкции и руководства
- Техническая документация
- Учебные материалы
- Заметки и статьи
- FAQ и ответы на частые вопросы
/add_document <путь>
- добавить документ в базу знаний/search <запрос>
- найти информацию в документах/list_documents
- показать список добавленных документов/clear_kb
- очистить базу знаний/help
- показать все команды
/mode code_assistant
Помоги мне написать функцию для сортировки массива в Python
# Добавляем документ о компании
/add_document company_info.txt
# Задаем вопрос по содержимому документа
Пользователь: Какие продукты предлагает компания?
Ассистент: Согласно информации из базы знаний, компания предлагает следующие продукты:
1. Программное обеспечение для автоматизации бизнеса
2. Облачные решения для хранения данных
3. Консультационные услуги по цифровой трансформации
4. Обучающие курсы и вебинары
# Ищем информацию в документах
/search политика безопасности
/mode teacher
Объясни, что такое рекурсия в программировании
/mode debug_helper
У меня ошибка IndexError: list index out of range, что это значит?
/mode code_reviewer
Проанализируй этот код и скажи, как его можно улучшить
AIChatBotVodc/
├── chatbot.py # Основной скрипт чатбота
├── advanced_chatbot.py # Расширенная версия с дополнительными функциями
├── rag_chatbot.py # Чатбот с поддержкой RAG и базой знаний
├── system_prompts.py # Системные промпты для разных режимов
├── knowledge_base.py # Система векторизации и хранения знаний
├── embedding_api.py # API для работы с эмбеддингами
├── demo_rag.py # Демонстрационный скрипт RAG
├── example_knowledge.txt # Пример документа для базы знаний
├── requirements.txt # Зависимости Python
├── README.md # Этот файл
└── conversations/ # Директория для сохраненных разговоров
- Python 3.8+
- LM Studio (последняя версия)
- Минимум 8 ГБ ОЗУ (рекомендуется 16 ГБ)
- Место на диске: 5-10 ГБ для моделей
- Mistral 7B - быстрая и хорошо работает на большинстве задач
- DeepSeek-Coder - специально обучена для кода
- CodeGemma - отлично подходит для отладки и ревью
- LLaMA 3 8B - высокое качество ответов
- Mistral 7B - хороший баланс скорости и качества
- Убедитесь, что LM Studio запущен
- Проверьте, что сервер активен (зеленый индикатор)
- Проверьте порт (по умолчанию 1234)
- Попробуйте перезапустить сервер в LM Studio
- Попробуйте более легкую модель
- Уменьшите параметр
max_tokens
в коде - Проверьте загрузку системы
- Убедитесь, что у вас достаточно ОЗУ
- Попробуйте модель меньшего размера
- Закройте другие требовательные приложения
- Все данные обрабатываются локально
- Никакие данные не отправляются внешним сервисам
- История разговоров хранится только на вашем компьютере
Возможные улучшения:
- Веб-интерфейс
- Поддержка RAG (Retrieval-Augmented Generation)
- Интеграция с VS Code
- Поддержка голосового ввода
- Экспорт разговоров в различные форматы
Этот проект является открытым и доступен для свободного использования.
Если у вас возникли вопросы или проблемы:
- Проверьте этот README
- Убедитесь, что все зависимости установлены
- Проверьте, что LM Studio правильно настроен
- Попробуйте перезапустить сервер в LM Studio
Проект создан по мотивам статьи с Хабра: https://habr.com/ru/articles/922340/