Task21#68
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #36
Modificări principale
Features noi
core/scan_worker.py (fișier nou)
Implementare completă a clasei ScanWorker(QThread) care orchestrează pipeline-ul AI end-to-end
Fluxul per fișier: extragere text (PDF/imagine/txt) → Agent 1 (Extractor) → Agent 2 (Decider)
Fișierele cu decizia move sunt mutate și redenumite fizic automat; cele cu decizia quarantine sunt trimise spre review manual
Emite semnale progress_updated, log_updated, scan_finished conectate la UI
ui/tabs/scan_tab.py (modificat)
Înlocuire ScanThread (bazat pe extensii statice) cu noul ScanWorker AI
Adăugat câmp AI Organizing Rule pentru introducerea regulilor în limbaj natural
ai/llm_config.py (modificat)
Adăugat suport pentru AI_PROVIDER=google folosind langchain-google-genai
Factory returnează ChatGoogleGenerativeAI sau ChatOllama în funcție de variabila de mediu
Bug Fixes
ai/agent_decider.py (modificat de două ori)
Restaurat conținut (fișierul fusese golit accidental)
Prompt îmbunătățit pentru redenumire inteligentă: modelul acum tratează naming_convention ca un șablon cu placeholder-uri semantice (ex: abreviereaMateriei_Curs_NumarulCursului_Data → AlgoritmiAvansati_Curs_4_01012026.pdf)
Docs & Config
.env.example: adăugat GOOGLE_MODEL_NAME=gemini-2.5-flash
README.md: instrucțiuni complete de setup pas-cu-pas (ambele variante: Gemini și Ollama)
requirements.txt: adăugat langchain-google-genai și python-dotenv
Cum se testează
Copiați .env.example în .env și setați AI_PROVIDER=google + cheia API
Rulați aplicația: ./.venv/bin/python main.py
În tab-ul Scan, introduceți o regulă (ex: "cursurile merg în Facultate, redenumite abreviereaMateriei_Curs_NumarulCursului_Data")
Selectați un folder sursă și apăsați Start Scan
Verificați că fișierele au fost mutate și redenumite conform regulii