Skip to content

Commit 0a0e0e7

Browse files
committed
Merge remote-tracking branch 'origin/main' into feature/convert-server-to-ms
2 parents b6b91c5 + ff15ef3 commit 0a0e0e7

File tree

80 files changed

+2533
-329
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+2533
-329
lines changed

.github/workflows/ci-cd.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,4 +237,9 @@ jobs:
237237
chmod 600 ~/.kube/config
238238
239239
- name: Deploy with Helm
240-
run: helm -n team-continuous-disappointment upgrade recip-ai ./recipai-chart --set secrets.gitlabClientSecret="${{ secrets.PROD_CLIENT_SECRET }}" --set secrets.mongodbAdminPassword="${{ secrets.MONGODB_ADMIN_PASSWORD }}"
240+
run: |
241+
helm -n team-continuous-disappointment upgrade recip-ai ./recipai-chart \
242+
--set secrets.gitlabClientSecret="${{ secrets.PROD_CLIENT_SECRET }}" \
243+
--set secrets.mongodbAdminPassword="${{ secrets.MONGODB_ADMIN_PASSWORD }}" \
244+
--set secrets.apiOpenai="${{ secrets.API_OPENAI }}" \
245+
--set secrets.apiOpenwebui="${{ secrets.API_OPENWEBUI }}"

.github/workflows/genai-tests.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: CI/CD Tests in GenAI
2+
3+
on:
4+
push:
5+
branches-ignore:
6+
- main
7+
paths:
8+
- 'genai/**'
9+
- '.github/workflows/genai-tests.yml'
10+
11+
pull_request:
12+
branches-ignore:
13+
- main
14+
paths:
15+
- 'genai/**'
16+
- '.github/workflows/genai-tests.yml'
17+
18+
jobs:
19+
test:
20+
runs-on: ubuntu-latest
21+
# Setup qdrant for integration tests
22+
services:
23+
qdrant:
24+
image: qdrant/qdrant
25+
ports:
26+
- 6333:6333
27+
env:
28+
OPENAI_API_KEY: ${{ secrets.API_OPENAI }}
29+
30+
steps:
31+
- name: Checkout code
32+
uses: actions/checkout@v4
33+
34+
- name: Set up Python
35+
uses: actions/setup-python@v5
36+
with:
37+
python-version: '3.11'
38+
39+
- name: Install dependencies
40+
run: pip install -r requirements.txt
41+
working-directory: genai
42+
43+
- name: Run genai tests
44+
run: |
45+
cd genai
46+
pytest

docker-compose.dev.yml

Lines changed: 74 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ services:
4545
restart: unless-stopped
4646

4747
mongodb:
48-
image: mongo:latest
48+
image: mongo:8.0
4949
container_name: mongodb
5050
ports:
5151
- "27017:27017"
@@ -73,6 +73,79 @@ services:
7373
- mongodb
7474
restart: unless-stopped
7575

76+
prometheus:
77+
image: prom/prometheus:v2.52.0
78+
container_name: prometheus
79+
ports:
80+
- "9090:9090"
81+
volumes:
82+
- ./monitoring/prometheus:/etc/prometheus
83+
- prometheus_data:/prometheus
84+
command:
85+
- '--config.file=/etc/prometheus/prometheus.yml'
86+
- '--storage.tsdb.path=/prometheus'
87+
- '--web.console.libraries=/etc/prometheus/console_libraries'
88+
- '--web.console.templates=/etc/prometheus/consoles'
89+
- '--web.enable-lifecycle'
90+
restart: unless-stopped
91+
92+
grafana:
93+
image: grafana/grafana-oss:latest
94+
container_name: grafana
95+
ports:
96+
- "3001:3000"
97+
volumes:
98+
- grafana-storage:/var/lib/grafana
99+
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
100+
environment:
101+
- GF_SECURITY_ADMIN_USER=admin
102+
- GF_SECURITY_ADMIN_PASSWORD=admin
103+
- GF_USERS_ALLOW_SIGN_UP=false
104+
- GF_FEATURE_TOGGLES_ENABLE=logsInExplore
105+
- GF_LOG_CONSOLECOLORS=true
106+
depends_on:
107+
- prometheus
108+
- loki
109+
restart: unless-stopped
110+
111+
promtail:
112+
image: grafana/promtail:latest
113+
volumes:
114+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
115+
- /var/run/docker.sock:/var/run/docker.sock
116+
- ./monitoring/promtail/promtail.yaml:/etc/promtail/promtail.yaml
117+
command: -config.file=/etc/promtail/promtail.yaml
118+
depends_on:
119+
- loki
120+
restart: unless-stopped
121+
122+
loki:
123+
image: grafana/loki:2.9.0
124+
ports:
125+
- "3100:3100"
126+
volumes:
127+
- ./monitoring/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro
128+
- loki-data:/loki
129+
command: -config.file=/etc/loki/loki-config.yaml
130+
restart: unless-stopped
131+
132+
cadvisor:
133+
image: gcr.io/cadvisor/cadvisor:latest
134+
container_name: cadvisor
135+
ports:
136+
- "8003:8080"
137+
volumes:
138+
- /:/rootfs:ro
139+
- /var/run:/var/run:ro
140+
- /sys:/sys:ro
141+
- /var/lib/docker/:/var/lib/docker:ro
142+
- /dev/disk/:/dev/disk:ro
143+
privileged: true
144+
restart: unless-stopped
145+
76146
volumes:
77147
qdrant_storage:
78148
mongodb_data:
149+
prometheus_data:
150+
grafana-storage:
151+
loki-data:

docker-compose.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,109 @@ services:
3838
- server-service
3939
restart: unless-stopped
4040

41+
mongodb:
42+
image: mongo:8.0
43+
container_name: mongodb
44+
ports:
45+
- "27017:27017"
46+
environment:
47+
- MONGO_INITDB_ROOT_USERNAME=admin
48+
- MONGO_INITDB_ROOT_PASSWORD=admin
49+
- MONGO_INITDB_DATABASE=recipai
50+
volumes:
51+
- mongodb_data:/data/db
52+
restart: unless-stopped
53+
54+
mongo-express:
55+
image: mongo-express:latest
56+
container_name: mongo-express
57+
ports:
58+
- "8081:8081"
59+
environment:
60+
- ME_CONFIG_MONGODB_ADMINUSERNAME=admin
61+
- ME_CONFIG_MONGODB_ADMINPASSWORD=admin
62+
- ME_CONFIG_MONGODB_SERVER=mongodb
63+
- ME_CONFIG_MONGODB_PORT=27017
64+
- ME_CONFIG_BASICAUTH_USERNAME=admin
65+
- ME_CONFIG_BASICAUTH_PASSWORD=admin
66+
depends_on:
67+
- mongodb
68+
restart: unless-stopped
69+
70+
prometheus:
71+
image: prom/prometheus:v2.52.0
72+
container_name: prometheus
73+
ports:
74+
- "9090:9090"
75+
volumes:
76+
- ./monitoring/prometheus:/etc/prometheus
77+
- prometheus_data:/prometheus
78+
command:
79+
- '--config.file=/etc/prometheus/prometheus.yml'
80+
- '--storage.tsdb.path=/prometheus'
81+
- '--web.console.libraries=/etc/prometheus/console_libraries'
82+
- '--web.console.templates=/etc/prometheus/consoles'
83+
- '--web.enable-lifecycle'
84+
restart: unless-stopped
85+
86+
grafana:
87+
image: grafana/grafana-oss:latest
88+
container_name: grafana
89+
ports:
90+
- "3001:3000"
91+
volumes:
92+
- grafana-storage:/var/lib/grafana
93+
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
94+
environment:
95+
- GF_SECURITY_ADMIN_USER=admin
96+
- GF_SECURITY_ADMIN_PASSWORD=admin
97+
- GF_USERS_ALLOW_SIGN_UP=false
98+
- GF_FEATURE_TOGGLES_ENABLE=logsInExplore
99+
- GF_LOG_CONSOLECOLORS=true
100+
depends_on:
101+
- prometheus
102+
- loki
103+
restart: unless-stopped
104+
105+
promtail:
106+
image: grafana/promtail:latest
107+
volumes:
108+
- /var/lib/docker/containers:/var/lib/docker/containers:ro
109+
- /var/run/docker.sock:/var/run/docker.sock
110+
- ./monitoring/promtail/promtail.yaml:/etc/promtail/promtail.yaml
111+
command: -config.file=/etc/promtail/promtail.yaml
112+
depends_on:
113+
- loki
114+
restart: unless-stopped
115+
116+
loki:
117+
image: grafana/loki:2.9.0
118+
ports:
119+
- "3100:3100"
120+
volumes:
121+
- ./monitoring/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro
122+
- loki-data:/loki
123+
command: -config.file=/etc/loki/loki-config.yaml
124+
restart: unless-stopped
125+
126+
# This service is used to collect metrics from docker containers, not needed for k8s
127+
cadvisor:
128+
image: gcr.io/cadvisor/cadvisor:latest
129+
container_name: cadvisor
130+
ports:
131+
- "8003:8080"
132+
volumes:
133+
- /:/rootfs:ro
134+
- /var/run:/var/run:ro
135+
- /sys:/sys:ro
136+
- /var/lib/docker/:/var/lib/docker:ro
137+
- /dev/disk/:/dev/disk:ro
138+
privileged: true
139+
restart: unless-stopped
140+
41141
volumes:
42142
qdrant_storage:
143+
mongodb_data:
144+
prometheus_data:
145+
grafana-storage:
146+
loki-data:

genai/.env.template

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Cloud based LLM models
2+
API_OPENAI="your openai key"
3+
API_ANTHROPIC="your anthropic key"
4+
API_MISTRAL="your mistral key"
5+
API_HUGGINGFACEHUB="your huggingface api token"
6+
# Local Models
7+
API_OPENWEBUI="your openwebui key"
8+
# Base URL for calling local models
9+
BASE_URL="https://gpu.aet.cit.tum.de"

genai/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ FROM python:3.11-slim
33
WORKDIR /app
44

55
COPY requirements.txt .
6-
RUN pip install -r requirements.txt
6+
RUN pip install --no-cache-dir -r requirements.txt
77

88
COPY . .
99

1010
EXPOSE 8000
1111

12-
CMD ["python", "app.py"]
12+
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

genai/app.py

Lines changed: 0 additions & 20 deletions
This file was deleted.

genai/config.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,19 @@
99
"Config",
1010
[
1111
"api_key_openai",
12-
"waitress",
13-
"api_openwebui",
12+
"api_key_anthropic",
13+
"api_key_mistral",
14+
"api_key_huggingface",
15+
"api_key_openwebui",
1416
"base_url"
1517
],
1618
)
1719

1820
Config = ConfigT(
19-
api_key_openai=environ.get("API_SECRET_OPENAI_MINE"),
20-
waitress=environ.get("USE_WAITRESS", "false").lower() == "true",
21-
api_openwebui=environ.get("API_OPENWEBUI"),
21+
api_key_openai=environ.get("API_OPENAI"),
22+
api_key_anthropic=environ.get("API_ANTHROPIC", ""),
23+
api_key_mistral=environ.get("API_MISTRAL", ""),
24+
api_key_huggingface=environ.get("API_HUGGINGFACE", ""),
25+
api_key_openwebui=environ.get("API_OPENWEBUI"),
2226
base_url=environ.get("BASE_URL")
2327
)

0 commit comments

Comments
 (0)