Skip to content

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

2 watching

Forks

Repository files navigation

Prompteus - We help diverse teams keep up with others changes

As companies grow, answering the simple question "What's happening right now?" becomes increasingly hard. Information is spread across tools, projects, and teams, making it difficult to get a clear, high-level view. Weekly status reports and ad-hoc "What's going on?" questions drain developer time and still leave managers digging through GitHub with its barely working search functionality and pretty labour-intensive project management.

Teams need a zero-friction way to surface work done, and answer follow-up questions—all in one place, automatically.

For a deeper description of what we are building, please see our problem statement.

Progress reports

Week Frank Stefan Wolfgang
1 Shared vision about GitHub summarisation Shared vision about Books-recommender service Collaborated on both

further progress reports starting at week 2 are available on confluence

Screenshots

Architecture of the systems

High level systems architecture diagram

graph TB
    %% Users Layer
    Users[USERS]
    
    %% Client Layer
    subgraph Client ["CLIENT (Frontend)"]
        Dashboard[Dashboard Components]
        QA[Q&A Interface]
        Search[Search Interface]
        Framework[Next.js 15 + React 19 + TypeScript<br/>URL Rewrites for Service Routing]
    end
    
    %% Microservices Layer
    subgraph Microservices ["MICROSERVICES LAYER<br/>(Direct Client Communication)"]
        subgraph ServerService ["SERVER SERVICE<br/>:8080<br/>Spring Boot"]
            RepoMgmt[Repository Management]
            UserPAT[User & PAT Management]
        end
        
        subgraph GenAIService ["GENAI SERVICE<br/>:3003<br/>FastAPI"]
            LangChain[LangChain/LangGraph]
            AISummary[AI Summary & Q&A]
        end
        
        subgraph SearchService ["SEARCH SERVICE<br/>:8070<br/>Spring Boot"]
            SemanticSearch[Semantic Search]
            VectorEmbed[Vector Embeddings]
        end
        
        subgraph ContribService ["CONTRIBUTION SERVICE<br/>:8082<br/>Spring Boot"]
            GitHubAPI[GitHub API Integration]
            Scheduler[Scheduler & Fetcher]
        end
        
        subgraph SummaryService ["SUMMARY SERVICE<br/>:8084<br/>Spring Boot"]
            WorkflowOrch[Workflow Orchestration]
            SummaryMgmt[Summary Management]
        end
    end
    
    %% Data Layer
    subgraph DataLayer ["DATA LAYER"]
        subgraph PostgreSQL ["POSTGRESQL"]
            Repositories[Repositories]
            UsersData[Users & PATs]
            Contributions[Contributions]
            Questions[Questions]
            Summaries[Summaries]
        end
        
        subgraph MeiliSearch ["MEILISEARCH"]
            SearchIndex[Semantic Search Index]
            VectorStore[Vector Store]
        end
        
        subgraph Ollama ["OLLAMA<br/>(LLM Service)"]
            LLMModels[Local/Remote LLM Models]
        end
    end
    
    %% External Services
    subgraph ExternalServices ["EXTERNAL SERVICES"]
        subgraph GitHubExt ["GITHUB API"]
            GitRepos[Repositories]
            Commits[Commits]
            PullRequests[Pull Requests]
            Issues[Issues]
        end
        
        subgraph OpenAI ["OPENAI API<br/>(Optional)"]
            Embeddings[Embeddings]
            OpenAIModels[LLM Models]
        end
        
        subgraph Monitoring ["MONITORING"]
            Prometheus[Prometheus]
            Grafana[Grafana]
            OpenTelemetry[OpenTelemetry]
        end
    end
    
    %% User connections
    Users -->|HTTPS| Client
    
    %% Client to Services connections
    Client -->|:8080| ServerService
    Client -->|:3003| GenAIService
    Client -->|:8070| SearchService
    Client -->|:8082| ContribService
    Client -->|:8084| SummaryService
    
    %% Inter-Service Communication
    SummaryService <-->|Orchestration| ContribService
    SummaryService <-->|AI Processing| GenAIService
    GenAIService <-->|Search Queries| SearchService
    
    %% Services to Data Layer
    ServerService --> PostgreSQL
    GenAIService --> Ollama
    SearchService --> MeiliSearch
    ContribService --> PostgreSQL
    SummaryService --> PostgreSQL
    
    %% External Service connections
    ContribService --> GitHubExt
    GenAIService --> OpenAI
    GenAIService --> Ollama
    
    %% Styling
    classDef userLayer fill:#e1f5fe
    classDef clientLayer fill:#f3e5f5
    classDef serviceLayer fill:#e8f5e8
    classDef dataLayer fill:#fff3e0
    classDef externalLayer fill:#fce4ec
    
    class Users userLayer
    class Client,Dashboard,QA,Search,Framework clientLayer
    class ServerService,GenAIService,SearchService,ContribService,SummaryService serviceLayer
    class PostgreSQL,MeiliSearch,Ollama dataLayer
    class GitHubExt,OpenAI,Monitoring externalLayer
Loading

Usecase diagram

the usecases we are optimising for

database layout diagram

Tip

You can view the DBML diagram interactively here.

database layout diagram

Getting Started

Create a .env file in the root directory with the following content:

OPENAPI_API_KEY=your_api_key_here

Alternative, you can use a remote OLLAPI service by setting the OPENAPI_API_KEY environment variable.

OLLAMA_API_URL=http://gpu...
OLLAMA_API_KEY=your_ollama_api_key_here

To get a local environment running, you can run

COMPOSE_BAKE=true docker compose up

You can now head over to http://localhost:8081 to look at the website. The Backends API is documented at http://localhost:8080/docs

Running with Local LLM Models

By default, the system can use remote Ollama services. If you want to run LLM models locally (requires NVIDIA GPU*), you can use the llm-local profile:

# Run with local Ollama service (requires NVIDIA GPU)
COMPOSE_BAKE=true docker compose --profile llm-local up

Requirements for local LLM:

  • NVIDIA GPU with CUDA support (AMD apparently works as well, untested)
  • Docker with GPU support enabled
  • Sufficient GPU memory for the models (typically 4GB+ for small models)

For more information, visit the Ollama Information on Docker Hub.

The local Ollama service will be available at http://localhost:11434 and will automatically download the required models on first run.

Configuration for Local Ollama: When using the llm-local profile, you may want to override the Ollama base URL to use your local instance. Copy the example environment file and modify it:

OLLAMA_BASE_URL=http://ollama:11434

Contributing

For contributing, we provide a docker compose-watch compatible setup.

COMPOSE_BAKE=true docker compose up --build --watch

Demo Script

For a comprehensive demonstration of the AI-powered GitHub analysis features, you can run the interactive demo script:

# Make sure the container is up and running
docker compose up --build genai

# Run the demo with your GitHub repository
docker compose exec genai python scripts/demo.py --user <your-username> --repo <owner/repo> --week <YYYY-WXX> --github-token <github_pat_XXXX...>

The demo showcases:

  • GitHub Integration: Fetch contributions automatically via GitHub API
  • AI Summary Generation: Live streaming summaries of your weekly work
  • Interactive Q&A: Ask questions about your contributions with evidence-based answers
  • Rich Analytics: Detailed contribution analysis and insights

Coming Soon: Conversational Q&A sessions with context retention and broader insights beyond evidence.

See genai/README.md for detailed API documentation and configuration options.

CI/CD Pipeline

GitHub Actions workflows handle continuous integration and deployment for all microservices:

Service Workflows

Deployment

Each pipeline includes type checking, testing, Docker builds, and OpenAPI generation. For instructions on how to deploy the application for prodcution, please refer to k8s directory.

Monitoring

Linting

In this repository, we use pre-commit to ensure code quality and consistency. To set it up, follow these steps:

pip install pre-commit
# Install the hooks
pre-commit install

It can also be run manually:

pre-commit run --all-files

Operations/ Monitoring

We provide a prometheus interface here and grafana (admin/admin) here. For further details, how the rest of the system (tracing, profiling, logs) is set up, please see these docs

API documentation

Our api is documented here:

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages