A chatbot that answers questions about the University of São Paulo using freshly crawled, up-to-date university data — so answers reflect what's actually published today rather than what a model happened to memorise.
- Crawling —
crawl4aicollects and cleans content from USP web pages. - Storage — the crawled data is stored in PostgreSQL.
- Answering — an LLM (Anthropic Claude) answers user questions grounded in that data, with Instructor enforcing structured, validated outputs.
- API — served through FastAPI.
Python 3.13 · FastAPI · Anthropic Claude · Instructor · crawl4ai ·
PostgreSQL (psycopg) · Pydantic · loguru
# Install dependencies (uses uv)
uv sync
# Configure environment (API keys, database URL) in config/
# then start the API
uv run -m app.mainapp/ FastAPI application and entry point
models/ Data models and LLM response schemas
config/ Settings and environment configuration
database/ Schema and data-access code
An experimental project exploring retrieval-grounded chat over live institutional data.