Aplikacja, która z notatek, artykułu albo pliku .pdf, .docx lub .txt tworzy fiszki do nauki. Wszystko działa lokalnie: model językowy uruchamia Ollama na Twoim komputerze, więc materiały nie trafiają do chmury.
Uruchom u siebie Kod źródłowy

Jeden model językowy pisze fiszki i sam ocenia ich jakość. Słabe są odrzucane, zanim trafią do talii.
Wklejony tekst albo pliki .txt, .docx i .pdf, dzielone na fragmenty.
Qwen 2.5 przez Ollamę. Bez kluczy API, bez opłat, działa offline.
LLM-as-judge ocenia każdą fiszkę w skali 1-5, duplikaty są usuwane.
Przycisk Wyjaśnij w trybie nauki wyszukuje fragmenty materiału (RAG) i tłumaczy na ich podstawie.
Tryb nauki w aplikacji, edycja fiszek w tabeli, eksport do Anki i CSV.
Lista pobranych modeli i katalog do pobrania z rozmiarem, pobieranie z poziomu aplikacji.
Interfejs w Streamlit wywołuje logikę w flashcards.py i rag.py, a te rozmawiają z lokalnym serwerem Ollama.
Tekst jest dzielony na fragmenty, model tworzy z nich fiszki w formacie JSON zgodnym ze schematem Pydantic, potem następuje deduplikacja, ocena i eksport.
RAG (Retrieval-Augmented Generation) to sposób, w którym model przed odpowiedzią dostaje fragmenty Twojego materiału, wyszukane po znaczeniu. Dzięki temu wyjaśnia fiszkę na podstawie źródła, a nie z pamięci, i podaje, z którego fragmentu korzysta.
bge-m3 zamienia każdy na wektor.| Model | Rola | Rozmiar |
|---|---|---|
qwen2.5:3b | domyślny model językowy: pisze fiszki, ocenia je i wyjaśnia | 1,9 GB |
qwen2.5:7b | dokładniejszy, wolniejszy; dla mocniejszego sprzętu | 4,7 GB |
bge-m3 | model do embeddingów (1024 wymiary), wielojęzyczny, dobrze radzi sobie z polskim | 1,2 GB |
| inne z katalogu | llama3.2, gemma3, qwen3, mistral, phi4-mini i inne, do pobrania z aplikacji | 1-5 GB |
Wymagania: Python 3.12 i Ollama.
# 1. kod
git clone https://github.com/juliuszlosinski/ATLAS.git
cd ATLAS/Flashcards
# 2. modele (raz): językowy i do embeddingów
ollama pull qwen2.5:3b
ollama pull bge-m3
# 3. biblioteki (raz)
pip install -r requirements.txt
# 4. aplikacja
python -m streamlit run app.py
# testy (bez modelu, z atrapą)
python -m unittest discover tests