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