AI mapping at universities#
A system for mapping and visualising AI activities at universities.
Functions#
- Web form for submitting URLs to AI activities
- Automatic text extraction from websites using web crawlers
- LLM-based analysis of content and profile generation
- Static website generation to display AI activities
- Editorial interface for reviewing and approving submissions
- Identification of related projects and services
Technology stack#
- Backend: Python with FastAPI and Pydantic, Uvicorn, OpenAPI and SwaggerUI
- Frontend: HTML, CSS, JavaScript, Jinja2
- Database: Abstraction via Alembic, e.g. SQLite (for development) / PostgreSQL (for production)
- Crawler: BeautifulSoup; Trafilatura and PyPDF
- LLM integration: OpenAI-compatible client for local LLMs with chunking for larger data sets
- Deployment: Docker containers
- Security: CSRF, CORS, rate limits, URL checking, domain validation
Components#
Backend#
- FastAPI main application: Main entry point and API endpoints
- LLM client: Communication with the local language model
- Crawler: Extraction of text from web pages
- Profile generator: Creation of structured project information
- Site generator: Generation of the static website
Frontend#
- HTML templates: Jinja2 templates for static site generation
- CSS styles: Design and layout of the page
- JavaScript: Interactive elements and UI
OpenAPI endpoints with Swagger UI#
Examples
/api/submissions- Submission of URLs/api/submissions/{id}- Details about a submission/api/admin/submissions- Admin access to submissions/api/admin/projects- Admin access to projects/api/admin/generate-site- Triggering site generation
LLM connection#
Via Open AI API