EU AI Act Compliance Chatbot
by thoughtgeek
This is a chatbot designed to answer questions about the EU AI Act. It uses a hybrid retrieval approach combining vector search and a knowledge graph.
View on GitHub
Last updated: N/A
EU AI Act Compliance Chatbot
A chatbot designed to answer questions about the EU AI Act using a hybrid retrieval approach (vector search + knowledge graph).
Setup
- Install Poetry: If you don't have Poetry installed, follow the instructions here.
- Clone the repository:
git clone <your-repo-url> cd eu-ai-act-chatbot - Install dependencies:
poetry install - Set up environment variables:
- Copy the
.env.examplefile to.env:cp .env .env # Or .env.example if you rename the template - Fill in your API keys and service details in the
.envfile.
- Copy the
- Download the EU AI Act PDF: Place the PDF file in a
data/directory (you might need to create it) and name iteu_ai_act.pdf.
Processing Data
To process the EU AI Act document and populate the vector store and knowledge graph:
poetry shell
python -m scripts.process_eu_ai_act
Running the API
To run the FastAPI application locally:
poetry shell
uvicorn src.eu_ai_act_chatbot.api.main:app --reload
The API will be available at http://127.0.0.1:8000. You can access the interactive documentation at http://127.0.0.1:8000/docs.
Running Tests
poetry shell
pytest
Deployment (AWS Lambda)
- Create a deployment package:
# Ensure dependencies are installed in the project's virtual env poetry install --no-dev # Create the package directory mkdir package # Install dependencies into the package directory poetry run pip install --upgrade pip poetry run pip install -r <(poetry export -f requirements.txt --without-hashes) --target ./package # Copy source code and Lambda handler cp -r ./src ./package/ cp lambda_function.py ./package/ # Create the zip file cd package zip -r ../deployment.zip . cd .. - Upload
deployment.zipto your AWS Lambda function. - Ensure the Lambda function's handler is set to
lambda_function.lambda_handler. - Configure necessary environment variables in the Lambda function settings.