Projekti kirjeldus.md 2.0 KB

🧠 RAG Demo PostgreSQL + Chroma

See projekt on lihtne Retrieval-Augmented Generation (RAG) süsteem, mis kasutab:

  • PostgreSQL + SQLAlchemy artiklite haldamiseks
  • Chroma vektorindeksit tekstilõikudele
  • LLM-i (nt OpenAI või lokaalne .gguf mudel Ollama/Llama.cpp jaoks) küsimustele vastamiseks

🔧 Nõuded

  • Python 3.10+
  • PostgreSQL (artiklite andmebaas)
  • Chroma (faasipõhine vektorindeks)
  • OpenAI API võti (kui kasutatakse gpt-4 või gpt-3.5-turbo)
  • .env fail, kus on vähemalt:

    DATABASE_URL=postgresql+psycopg2://kasutaja:parool@host/andmebaas
    OPENAI_API_KEY=... # vajadusel
    

🗃️ Andmebaasi struktuur

Tabel articles sisaldab:

  • id (int)
  • doi (tekst, unikaalne)
  • title, authors, summary, summary_et, journal, pdf_url, text
  • jpm.

📥 DOI-de importimine

CSV failist saab importida DOI-sid:

python -m cli.import_dois_from_csv --csv import/myfile.csv

📄 Artiklite laadimine

Lae artikleid CrossRef kaudu (sh PDF ja teksti eraldamine):

python -m cli.load_articles

Üksiku DOI laadimiseks:

python -m cli.load_article_by_doi --doi 10.1234/foobar

📚 Indekseerimine

Tekstikatkendid artiklitest saab vektorindeksisse salvestada:

python -m cli.build_index

💬 Küsimustele vastamine

Eeldab olemasolevat Chroma indeksit ja LLM mudelit (.gguf või OpenAI):

python -m cli.rag_cli --question "Mis on tehisintellekt?" --model models/mymodel.gguf

🌍 Tõlkimine

Artiklite kokkuvõtete tõlkimine eesti keelde:

python -m cli.translate_summaries

🧪 Testimine

Testide käivitamiseks:

pytest

Ühe testi käivitamine:

pytest tests/test_load_article_by_doi.py

Soovitatav on kasutada virtuaalkeskkonda (näiteks venv või conda) ja installida sõltuvused:

pip install -r requirements.txt

🎯 Projekt on mõeldud arendajatele, kes soovivad katsetada RAG-arhitektuuri kasutades PostgreSQL-i ja lokaalseid LLM-e.