Skip to content

Latest commit

Β 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Knowledge Graph Tutor (v2 β€” ontology-driven)

Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ строит Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ Π·Π½Π°Π½ΠΈΠΉ ΠΈΠ· PDF-ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LLM, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π°Ρ‘Ρ‚ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ΅ тСстированиС ΠΈ GraphRAG-ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎ Π³Ρ€Π°Ρ„Ρƒ.

image
  • Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ дисциплины ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ PDF-ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ.
  • БистСма ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сущности ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π΄ΡƒΠ±Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· эмбСддинги (строго Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ°).
  • Π“Ρ€Π°Ρ„ визуализируСтся: Ρ†Π²Π΅Ρ‚ ΡƒΠ·Π»Π° β€” Ρ‚ΠΈΠΏ сущности (ΠΈΠ· ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΠΈ), ΠΊΠΎΠ»ΡŒΡ†ΠΎ β€” статус усвоСния (каскадная Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΎΠΌΡƒ REQUIRES).
  • ВСсты ΠΏΠΎ ΡƒΠ·Π»Π°ΠΌ ΠΈ GraphRAG-Ρ€Π΅ΠΆΠΈΠΌ с ΠΎΡ‚Π²Π΅Ρ‚Π°ΠΌΠΈ строго ΠΏΠΎ контСксту Π³Ρ€Π°Ρ„Π° ΠΈ подсвСткой использованного ΠΏΡƒΡ‚ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π°.

ΠžΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡ β€” это Π΄Π°Π½Π½Ρ‹Π΅, Π° Π½Π΅ ΠΊΠΎΠ΄: классы ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ описаны Π² backend/app/ontology/ontology.yaml. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ класса = строка Π² YAML + python scripts/sync_ontology.py.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° β€” Π² knowledge_graph_analytics.md, структура backend β€” Π² backend/CONTEXT.md.

Π‘Ρ‚Π΅ΠΊ

  • Backend: Python 3.12, FastAPI, async SQLAlchemy, PostgreSQL 16 + pgvector
  • LLM: httpx β†’ OpenAI-совмСстимый endpoint (Π±Π΅Π· SDK; сСйчас Π·Π° Π½ΠΈΠΌ Gemini)
  • ΠžΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡ: YAML β†’ Pydantic; синхронизация Π² Π‘Π” скриптом
  • Π­ΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ: sentence-transformers (multilingual)
  • PDF: pymupdf4llm (сохраняСт LaTeX-Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹)
  • Frontend: React 19 + TypeScript + Vite, react-force-graph-2d, KaTeX, Zustand

Запуск

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ .env.example Π² .env ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ GEMINI_API_KEY, LLM_MODEL, POSTGRES_PASSWORD.

    cp .env.example .env
  2. ΠŸΠΎΠ΄Π½ΠΈΠΌΠΈΡ‚Π΅ вСсь стСк:

    docker-compose up -d

Π›ΠΎΠ³ΠΈ (backend):

docker-compose logs -f backend

ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ:

docker-compose up -d --build backend 2>&1 | tail -4
  1. ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ пСрСзапуститС backend (ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·):

    docker-compose exec backend alembic upgrade head
    docker-compose restart backend

    ΠžΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡ синхронизируСтся Π² Π‘Π” автоматичСски ΠΏΡ€ΠΈ стартС backend (Ρ‚Π°Π±Π»ΠΈΡ†Π° entities ссылаСтся Π½Π° entity_types ΠΏΠΎ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΊΠ»ΡŽΡ‡Ρƒ). Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎ (Π±Π΅Π· Docker) ΠΌΠΎΠΆΠ½ΠΎ вмСсто этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ python scripts/sync_ontology.py.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

# Backend
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# Frontend
cd frontend
npm install
npm run dev

Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ для экспСримСнта (диссСртация)

# Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ½Ρ‚ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΈΠ· YAML Π² Π‘Π” (послС ΠΏΡ€Π°Π²ΠΎΠΊ ontology.yaml)
python scripts/sync_ontology.py

# Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ Π² Π‘Π” (синхронный ΠΏΡ€ΠΎΠ³ΠΎΠ½ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Π°; profile ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½)
python scripts/seed_test_book.py path/to/book.pdf "НазваниС" math

# ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ качСство Π³Ρ€Π°Ρ„Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ² эталона (precision/recall/F1 ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ)
python scripts/eval_graph_quality.py <book_id> path/to/gold.json

About

πŸ”Ά ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π·Π½Π°Π½ΠΈΠΉ ΠΈΠ· PDF-ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ LLM. ГСнСрация тСстирования ΠΈ GraphRAG-ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages