Logo Lanfrica

elaaabidi04/Fassarli-Ai

Domaine:

natural language processing

Type de record:

software
Créateur:
ela
Hôte:
Fassarli (فسرلي) — A multilingual RAG chatbot with native Tunisian Darija support. Detects 26 intents from real Tunisian expressions using fuzzy-matched NLP, a manually farmed Darija database built from social media, and a hybrid BM25 + vector retrieval pipeline. Powered by Llama 3.3 70B via NVIDIA NIM. Built with LangChain, ChromaDB, and Streamlit # Fassarli AI — Tunisian Darija RAG Chatbot > *"Fassarli" (فسرلي) means "explain it to me" in Tunisian Darija.* A multilingual document Q&A chatbot with **native Tunisian Darija support** — the first RAG system built specifically for Tunisian Arabizi. Powered by **Llama 3.3 70B** via NVIDIA NIM with a hybrid BM25 + vector retrieval pipeline and a self-improving feedback loop. --- ## Why This Project Is Different Most RAG chatbots handle English, French, maybe Arabic. None of them handle Tunisian Darija — a dialect that mixes Arabic, French, and Berber, written in Latin script with numbers replacing missing letters (`3=ع`, `5=خ`, `7=ح`, `9=ق`). Fassarli does. The system detects when a user writes `mafhemtch chy` (I didn't understand anything) or `5arreeff` (you're hallucinating) and **automatically adapts its response** — reformulating, repeating, giving examples, or acknowledging it went off topic. It does this across **4 languages simultaneously**, switching per message with no manual input. --- ## Darija Intent System The core innovation: a custom NLP layer that reads Tunisian Darija signals and changes how the model responds in real time. 26 intents, detected by fuzzy matching with priority ordering. | Priority | Intent | Trigger example | What the model does | |---|---|---|---| | p2 | `giving_up` | ayast moi, la3alayna | One final 2-sentence attempt | | p3 | `hallucination` | 5arreeff, khareef | Returns strictly to document context | | p3.5 | `pdf_mismatch` | mouch hakka fil pdf | Corrects answer to match source material | | p4 | `wrong_answer` | mouch hakka, moch kk | Re-reads context and retries | | p4.5 | `source_check` | mnayn jibt hadha | Cites the specific retrieved chunk | | p5 | `confusion` | mafhemtch, chnou, zid fahamni | Reformulates more simply | | p5.2 | `persistent_confusion` | ma fhemtech zeda | Switches strategy: analogy + schema | | p5.5 | `pdf_reference` | fil pdf 9alek | Confirms or clarifies what the PDF says | | p5.8 | `pdf_confusi …