Python · Data & AI

Five production-shaped data & AI tools. Live.

Built and deployed by Raphael Fakhri — a scraping framework, an LLM-assisted extraction pipeline, a self-monitoring scheduled actor, a ReAct + RAG agent with an eval harness, and a Lebanon civic-data dashboard. Each runs in the browser; each a piece of production-shaped data and LLM engineering.

Framework

scrapehub

Async scraping with BeautifulSoup + Playwright across static, JS-rendered, infinite-scroll and API sources — proxy/UA rotation, anti-bot pacing, retry/backoff, batching, pydantic validation, CSV/JSON.

Python · asyncio · Playwright · pydantic
LLM pipeline

extract

Messy, inconsistent HTML in — clean, validated, schema-checked records out. OpenRouter behind a swappable LLM protocol, normalization, a pydantic gate, cross-source consistency, and a verification step that blocks bad deliveries.

Python · OpenRouter · pydantic · gspread
Scheduled actor

actor

An Apify actor that scrapes, enriches, batches with bounded parallelism, and watches itself — schema-drift detection and deduplicated alerting — packaged as one Docker image deployable to AWS Fargate or Lambda.

Python · Apify · AWS · Docker
LLM agent

reagent

A ReAct-style agent that reasons, calls tools, and answers over a retrieval corpus (RAG) — wrapped in an evaluation harness that scores runs against a gold set, so behaviour is measured, not vibes. OpenRouter behind a swappable model protocol.

Python · OpenRouter · ReAct · RAG · evals
Live dashboard

civicdash

Lebanon's public data, made legible — World Bank economic & digital-adoption time series, the market-reported parallel USD/LBP rate, and the official Ministry of Energy fuel schedule, collected server-side and visualised. The collect→visualise loop civic-tech runs on.

Python · FastAPI · Astro · World Bank API