Education · Arabic NLP · 2025

ChatUB

Local Arabic academic assistant

Answers students’ Arabic questions from curated University of Bisha FAQ content, with retrieval and generation kept on a local machine.

Role
Project lead
Status
Graduation project
Evidence
Public repository
Year
2025

Evidence

What a reviewer can check today — and what is not claimed.

Graduation project
Status
Graduation project at the University of Bisha — a working prototype, not deployed to students.
Evidence
Not claimed
No production deployment and no accuracy measurement are claimed.
Stack
  • Python
  • Flask
  • Sentence Transformers
  • PyTorch
  • NLTK
  • Ollama

Context

Information Systems graduation project at the University of Bisha. Abdulelah led the team from the first idea to a working prototype.

The problem

Students look for academic rules — course withdrawal, apology deadlines, registration — that are spread across documents and offices, and answers can differ depending on who they ask. A generic chatbot does not know one university’s rules, and sending campus questions to a hosted model sends them off-site.

Constraints

  • Arabic-first questions and answers
  • University content and inference stay on a local machine
  • Curated FAQ content, not the full body of regulations
  • A graduation-project timeline and team

Solution

A Flask web app matches an incoming Arabic question to curated FAQ entries with multilingual sentence embeddings, then passes the closest entry to a locally served Ollama model, which writes a concise Arabic answer.

My responsibility

Project lead

  • Defined the product scope and the problem it should solve
  • Led the graduation team from concept to a working prototype
  • Made the call to keep retrieval and generation local
  • Shaped the assistant’s behaviour and how the FAQ knowledge is structured

Architecture & workflow

  1. 01 · Input

    Arabic question

  2. 02 · Processing

    Stop-word cleanup (NLTK)

  3. 03 · Intelligence

    Embedding match against FAQs

  4. 04 · Output

    Local answer via Ollama

How it works

  • FAQ question–answer pairs are loaded from JSON files in the repository
  • Arabic text is preprocessed and NLTK Arabic stop words are removed
  • Multilingual Sentence Transformer embeddings select the nearest FAQ entry
  • An Ollama model defined in a Modelfile generates the answer locally
  • The latest question and answer are carried forward as light context

Decisions

  • Local-first, not cloud

    Retrieval and generation run on the same machine, so university content and student questions never leave it. Privacy and institutional trust mattered more than the convenience of a hosted model.

  • Anchored to curated FAQs

    Answers start from the closest curated question–answer pair instead of the model’s general knowledge. When nothing is close enough the model can still answer unguided — a limitation the repository documents openly.

Verified outcome

A working prototype: a web chat interface, a question endpoint, Arabic preprocessing and semantic FAQ matching that feeds a local model — readable and runnable from the public repository. It has not been deployed to students, and no answer-accuracy figure is claimed.

Limitations

  • Grounding is not guaranteed: if no FAQ entry passes the similarity threshold, generation continues without reference context.
  • There is no automated evaluation of answer accuracy or hallucination.
  • The official university sources behind the FAQ data are not yet documented in the repository.
  • Committed model artifacts make the repository heavy.

What would come next

  • Build an Arabic test set and measure answer accuracy before any rollout
  • Decline or hand over when no FAQ entry is close enough, instead of answering unguided
  • Document the official source behind every FAQ entry
  • Run a small pilot with students and academic advisers

The idea, sketched

Real innovation starts when technology respects context, privacy, and real human needs.
Concept visualizationIllustrative sketch of the idea — not a product screenshot.

Working on something similar?

Tell me about the problem, or pick the CV that fits the role — either way you’ll get a direct reply.