project_MCP

0

Описание

Языки

  • Python75,1%
  • JavaScript14,5%
  • CSS8,1%
  • HTML2%
  • Dockerfile0,3%
readme.md

🎓AI Преподаватель — MCP Teacher

Добро пожаловать в проект MCP Teacher — современный веб-чат с адаптивным ИИ-преподавателем на базе GigaChat и протокола MCP (Model Communication Protocol).

Это не обычный чат-бот: система ведёт диалог как настоящий наставник — задаёт уточняющие вопросы, направляет ученика к правильному ответу, не выдаёт готовые решения сразу и автоматически адаптирует сложность под уровень пользователя.

🚀 Основные возможности

  • Адаптивное обучение — три уровня сложности (Новичок, Продвинутый, Эксперт) с автоматической оценкой знаний и сменой стиля общения
  • Память диалога — сохранение истории чатов и сообщений в MongoDB
  • RAG-поддержка — инструмент позволяет ИИ опираться на локальную базу знаний (тексты, Markdown, PDF)
  • Оценка ответов — инструмент оценивает понимание ученика и сохраняет прогресс
  • Современный интерфейс — приятный тёмный чат в стиле ChatGPT с поддержкой нескольких чатов, индикатором печати и адаптивной версткой
  • Полная контейнеризация — Docker + docker-compose для быстрого запуска

🛠 Технологии

  • Backend: FastAPI + WebSocket
  • ИИ: GigaChat (модель GigaChat-2-Max)
  • MCP: fastmcp + langchain-mcp-adapters + langgraph
  • База данных: MongoDB (асинхронный драйвер Motor)
  • Frontend: чистый HTML + CSS + Vanilla JavaScript
  • Контейнеризация: Docker + docker-compose

📦 Необходимые библиотеки

Все зависимости проекта указаны в файле

requirements.txt
:

📂 Краткое описание файлов

  • mcp_server.py
    — MCP-сервер с инструментами: RAG по базе знаний (
    kb_get_context
    ), оценка уровня (
    assess_level
    ), системная инструкция учителя
  • mcp_client.py
    — клиент MCP + логика ИИ-агента: адаптация сложности, определение темы, сохранение прогресса
  • web_server.py
    — основной FastAPI-сервер + WebSocket для чата в реальном времени
  • mongo_service.py
    — асинхронная работа с MongoDB (чаты, сообщения, уровни знаний)
  • logger.py
    — красивое логирование в консоль и файл с ротацией
  • static/index.html
    — главная страница чата
  • static/script.js
    — вся клиентская логика (WebSocket, чаты, уровни, индикатор печати)
  • static/styles.css
    — тёмный современный дизайн чата
  • docker-compose.yml
    — готовый запуск MongoDB + приложения
  • Dockerfile
    — сборка контейнера приложения
  • requirements.txt
    — все зависимости проекта

🚀 Быстрый старт

Вариант 1: Через docker-compose (рекомендуется)

Приложение будет доступно по адресу: http://localhost:8000

Вариант 2: Локальный запуск

⚙️ Конфигурация (.env)

Ключи для GigaChat: https://developers.sber.ru

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

. ├── app │ ├── logger.py # Настройка логирования │ ├── mongo_service.py # Работа с MongoDB │ ├── mcp_client.py # Клиент MCP + логика агентов │ ├── mcp_server.py # MCP-сервер с инструментами (RAG, оценка) │ ├── web_server.py # FastAPI + WebSocket сервер │ └── static/ │ ├── index.html │ ├── script.js │ └── styles.css ├── knowledge_base # ← сюда кладите .txt, .md, .pdf для RAG ├── logs # логи приложения ├── Dockerfile ├── docker-compose.yml └── requirements.txt

!!ТУТ НЕ ИТОГОВЫЙ ВАРИАНТ

🎨 Интерфейс

Приложение имеет современный минималистичный дизайн в темных тонах, оптимизированный для длительной работы с текстом и формулами:

  • Боковая панель: Удобное управление историей переписки и кнопка быстрого создания нового диалога.

  • Уровни сложности: Переключатель в верхней части экрана (Новичок, Продвинутый, Эксперт) для моментальной настройки стиля ответов ИИ.

  • Живой чат: Интерактивная лента сообщений с аватарами, индикацией набора текста и автоматической прокруткой к новым сообщениям.

📦 Основа проекта

Спасибо создателям:

  • fastmcp
  • LangChain / LangGraph
  • GigaChat API