Back

Feb/2026

FAWZY.AI

FAWZY.AI is a Retrieval-Augmented Generation (RAG) chatbot embedded in this portfolio. It answers questions about projects/skills using a FAISS vector index over local knowledge files plus content synced from the Django database. It also includes admin operations (maintenance mode, tracking, and knowledge refresh) to make it safe to run publicly.

Demo: use the Fawzy chat page.

FAWZY.AI screenshot

Project Details

Technologies

Python FastAPI Django LangChain Groq Hugging Face FAISS OpenPyXL

Key Metrics

FAISS (k=6)

Retrieval

all-MiniLM-L6-v2

Embeddings

Groq (Llama)

LLM

On/Off + Refresh

Admin controls

The Problem

Static portfolios force visitors to hunt for the right page. Common questions (e.g., "What is AnemoCare?", "What can Ahmed build?") take multiple clicks.

The goal was to add a conversational entry point that stays on-brand, links to the correct case studies, and can be temporarily disabled during updates.

The Solution

Built a RAG pipeline:

  • Index: split knowledge into chunks, embed with Hugging Face, store in FAISS.
  • Retrieve: fetch top relevant chunks per question (k=6).
  • Generate: one LLM call using the retrieved context + a strict system prompt.

To reduce latency/cost, the "condense question" rewrite runs only on short follow-up messages instead of every turn.

Operations are controlled from Django admin (enable/disable chat, maintenance message, Excel tracking, refresh knowledge).

Architecture & Implementation

Flow:

  1. Portfolio (Django) serves /fawzy/ and provides /api/fawzy-settings/ for runtime toggles.
  2. Fawzy API (FastAPI) handles /chat and /status.
  3. RAG: optional rewrite → FAISS retrieval → LLM response.

Admin ops:

  • Chatbot enabled toggles maintenance mode.
  • Tracking enabled writes Q&A rows to an Excel file.
  • Refresh knowledge rebuilds embeddings + FAISS and hot-swaps the chatbot instance.

Results & Impact

  • Visitors can explore the portfolio conversationally with links to relevant projects.
  • Admin can pause the bot during updates and refresh knowledge without redeploying the portfolio site.
  • Excel tracking enables quick manual evaluation and regression testing.

Next steps: tighten CORS, add rate limits, stream tokens for faster first response, and add a sitemap for project pages.