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