Cadmus Europe is an experiment, and a heavy WIP. There are no claims being made on accurary or viability. It aims to build a web application that provides summaries and analyses of European political programs and parliamentary sessions. It leverages AI to generate insights and comparisons between different political parties and their positions on various topics.
The motivation lies in lowering the threshold for understanding and interpreting political programs. Reading whole political programs can be overwhelming, daunting, and time-consuming. Getting a Summary neccessitates neutrality, which is not always guaranteeable with present-day LLMs. However, the initial results are promising, and we are eager to see how this experiment evolves.
frontend/
: Contains the TypeScript-based frontend application using React, ShadCN, and TailwindCSSmain.go
: The main Go file for the backend serverhandlers.go
: Contains the HTTP request handlersutils.go
: Utility functions for the backendexample.app.yaml
: Configuration file for Google Cloud deploymentdeploy.sh
: Script for deploying the application to Google Cloudrun.sh
: Script for running the application locally
- Node.js 20 or later (21.7.3 at the time of writing)
- Bun
- Google Cloud SDK (Gcloud CLI)
- Firebase account and credentials
- Groq API key: Groq Console
-
Clone the repository:
git clone https://github.com/justinmiehle/cadmus-europe.git cd cadmus-europe
-
Set up environment variables: Create a
.env
file in the root directory and add the following:GROQ_API_KEY=your_groq_api_key PORT=5001
For the service account key, use:
gcloud iam service-accounts keys create ./serviceAccountKey.json --iam-account=[email protected]
-
Install backend dependencies:
bun install bun run build
-
Set up the frontend:
cd frontend bun install
-
Copy the
example.env
file to.env
and add your own API keys (for the backend). -
Run the application:
./run.sh
Note: You may need to make the script executable first:
chmod +x run.sh
-
Copy the
example.app.yaml
file toapp.yaml
and add your own GROQ API Key. -
Deploy the application to Google Cloud:
./deploy.sh
Note:
- You may need to make the script executable first:
chmod +x deploy.sh
- You may need to run
gcloud auth login
first if you're not authenticated. - This project does not include the
app.yaml
orserviceaccountkey.json
, you will need to create them yourself.
- You may need to make the script executable first:
- The frontend is built with TypeScript, React, ShadCN, and TailwindCSS.
- Code formatting is handled by Biome with default settings.
-
Instruction Adherence & Compliance:
- The AI prompts need refinement to improve instruction adherence.
- Language switching requests are not always handled correctly.
- Opening certain file formats (e.g., PDFs) can be problematic.
-
Documentation:
- Improve documentation for setting up
app.yaml
andserviceaccountkey.json
. - Add more detailed instructions for local development and testing.
- Improve documentation for setting up
-
Error Handling:
- Implement more robust error handling and user feedback mechanisms.
-
Performance:
- Optimize AI calling for faster response times, especially in the topic comparison.
-
User Interface:
- Enhance the UI/UX based on user feedback and usability testing.
Contributions are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.