You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: infrastructure/README.md
+85-54Lines changed: 85 additions & 54 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,21 +26,23 @@ This Repository contains the helm chart for the following RAG components:
26
26
- Frontend
27
27
- Backend
28
28
29
-
> 📝 NOTE: Only the settings you are most likely to adjust are listed here. For all available settings please have a look at the [values.yaml](rag/values.yaml).
29
+
> 📝 NOTE: Only the settings you are most likely to adjust are listed here. For all available settings please take a look at the [values.yaml](rag/values.yaml).
30
30
31
31
Except all `backend` services all components can be disabled and exchanged with components of your choice.
32
32
This can be done by overwriting the following values in your `values.yaml`
33
33
34
34
```yaml
35
35
features:
36
+
ollama:
37
+
enabled: false
38
+
minio:
39
+
enabled: false
36
40
langfuse:
37
41
enabled: true
38
42
qdrant:
39
43
enabled: true
40
44
frontend:
41
45
enabled: true
42
-
minio:
43
-
enabled: true
44
46
keydb:
45
47
enabled: true
46
48
```
@@ -74,16 +76,28 @@ For local development, the `imagePullSecret` is not necessary.
74
76
You can deploy Langfuse with initial values for the public and secret API keys. The respective values are shown below:
75
77
76
78
```yaml
79
+
# For production deployment with external PostgreSQL
77
80
langfuse:
81
+
postgresql:
82
+
deploy: true # If you want to use an external PostgreSQL, set this to false
78
83
langfuse:
79
84
additionalEnv:
80
-
LANGFUSE_INIT_ORG_ID:
81
-
LANGFUSE_INIT_PROJECT_ID:
82
-
LANGFUSE_INIT_PROJECT_PUBLIC_KEY:
83
-
LANGFUSE_INIT_PROJECT_SECRET_KEY:
84
-
LANGFUSE_INIT_USER_EMAIL:
85
-
LANGFUSE_INIT_USER_NAME:
86
-
LANGFUSE_INIT_USER_PASSWORD:
85
+
- name: DATABASE_URL
86
+
value: "postgresql://username:password@postgres-host:5432/langfuse" # Your PostgreSQL connection string
87
+
- name: LANGFUSE_INIT_ORG_ID
88
+
value: ... # Optional: Pre-create organization
89
+
- name: LANGFUSE_INIT_PROJECT_ID
90
+
value: ... # Optional: Pre-create project
91
+
- name: LANGFUSE_INIT_PROJECT_PUBLIC_KEY
92
+
value: ... # Optional: Set initial public key
93
+
- name: LANGFUSE_INIT_PROJECT_SECRET_KEY
94
+
value: ... # Optional: Set initial secret key
95
+
- name: LANGFUSE_INIT_USER_EMAIL
96
+
value: ... # Optional: Create initial user
97
+
- name: LANGFUSE_INIT_USER_NAME
98
+
value: ... # Optional: Initial user name
99
+
- name: LANGFUSE_INIT_USER_PASSWORD
100
+
value: ... # Optional: Initial user password
87
101
```
88
102
89
103
Besides, you can deploy Langfuse in a two-step approach. First, you deploy Langfuse without the API keys, and then you can create the API keys via the Web UI. Therefore, after deployment, you have to sign up in the Web UI and create a project in the local Langfuse instance, create API keys via the settings; see below.
@@ -134,12 +148,24 @@ The usage of the KeyDB is **only recommended for development** purposes. KeyDB i
134
148
In **production**, the usage of a fully-managed Redis instance (e.g. provided by STACKIT) is recommended. The following parameters need to be adjusted in the `values.yaml` file:
135
149
136
150
```yaml
151
+
# For production: Use external Redis instead of KeyDB
137
152
adminBackend:
138
-
keyValueStore:
139
-
USECASE_KEYVALUE_HOST: ...
153
+
envs:
154
+
keyValueStore:
155
+
USECASE_KEYVALUE_HOST: ... # Your Redis host (e.g., redis.yourdomain.com)
156
+
USECASE_KEYVALUE_PORT: 6379
157
+
140
158
features:
141
159
keydb:
142
-
enabled: false
160
+
enabled: false # Disable KeyDB for production
161
+
162
+
langfuse:
163
+
valkey:
164
+
deploy: false # Use Redis instead of KeyDB
165
+
langfuse:
166
+
additionalEnv:
167
+
- name: REDIS_CONNECTION_STRING
168
+
value: "redis:"
143
169
```
144
170
145
171
### 1.4 Frontend
@@ -150,18 +176,21 @@ The following values should be adjusted for the deployment:
150
176
frontend:
151
177
envs:
152
178
vite:
153
-
VITE_API_URL: ... # You should add the public url to the backend here
154
-
VITE_CHAT_URL: ... # You should add the public url to the chat frontend here
179
+
# Required: Update these URLs for your deployment
180
+
VITE_API_URL: "https://rag.yourdomain.com/api" # Your backend API URL
181
+
VITE_CHAT_URL: "https://rag.yourdomain.com" # Your chat frontend URL
182
+
VITE_ADMIN_URL: "https://admin.rag.yourdomain.com" # Your admin frontend URL
183
+
VITE_ADMIN_API_URL: "https://admin.rag.yourdomain.com/api" # Your admin API URL
155
184
156
185
ingress:
157
186
host:
158
-
name: ... # You should add the DNS for the chat-frontend here
187
+
name: ... # Your domain name (e.g., rag.yourdomain.com)
159
188
160
189
secrets:
161
190
viteAuth:
162
-
VITE_AUTH_USERNAME: ... # You should add the username for the basic auth of the backend here
163
-
VITE_AUTH_PASSWORD: ... # You should add the password for the basic auth of the backend here
164
-
191
+
# Required: Credentials for backend authentication
192
+
VITE_AUTH_USERNAME: ... # Username for basic auth
193
+
VITE_AUTH_PASSWORD: ... # Password for basic auth
165
194
```
166
195
167
196
### 1.5 Backend
@@ -171,33 +200,34 @@ The following values should be adjusted for the deployment:
171
200
```yaml
172
201
backend:
173
202
secrets:
203
+
# Required: Basic authentication for the backend API
204
+
basicAuth: ... # Set your basic auth credentials
174
205
175
-
basicAuth: ...
206
+
# Required: Langfuse API keys for observability
176
207
langfuse:
177
-
publicKey: ...
178
-
secretKey: ...
179
-
openai:
180
-
apiKey: ...
181
-
# LLM secrets. Only the secrets for the LLM you choose have to be provided
182
-
# With the exception of the class `stackit` the embedder and llm share the secrets
183
-
#
184
-
# stackit
208
+
publicKey: ... # Your Langfuse public key
209
+
secretKey: ... # Your Langfuse secret key
210
+
211
+
# Required: API keys for your chosen LLM provider
212
+
# STACKIT LLM provider
185
213
stackitEmbedder:
186
-
apiKey: ...
214
+
apiKey: ... # Your STACKIT embedder API key
187
215
stackitVllm:
188
-
apiKey: ...
189
-
# for ollama there is no apikey setting
216
+
apiKey: ... # Your STACKIT vLLM API key
217
+
218
+
# Optional: Only needed if using RAGAS evaluation with OpenAI
219
+
ragas:
220
+
openaiApikey: ... # Your OpenAI API key for RAGAS evaluation
190
221
191
222
envs:
192
-
# Decide which LLM you would like to use for answering/embedding.
193
-
# These settings are independent of each other. You can use a different LLM for embedding and answering.
223
+
# Required: Choose your LLM and embedder providers
# Optional: Adjust retriever settings for your use-case
230
+
# These control how many documents are retrieved from the vector database
201
231
retriever:
202
232
RETRIEVER_THRESHOLD: 0.3
203
233
RETRIEVER_K_DOCUMENTS: 10
@@ -208,6 +238,7 @@ backend:
208
238
RETRIEVER_TABLE_K_DOCUMENTS: 10
209
239
RETRIEVER_IMAGE_THRESHOLD: 0.7
210
240
RETRIEVER_IMAGE_K_DOCUMENTS: 10
241
+
# Optional: Adjust Reranker settings for your use-case
211
242
reranker:
212
243
RERANKER_K_DOCUMENTS: 5
213
244
RERANKER_MIN_RELEVANCE_SCORE: 0.001
@@ -229,32 +260,32 @@ backend:
229
260
RAGAS_MAX_CONCURRENCY: "5"
230
261
231
262
ingress:
232
-
host:
233
-
name: rag.localhost
263
+
host:
264
+
name: ... # Your domain name (e.g., rag.yourdomain.com)
234
265
235
-
global:
236
-
ssl: true
237
-
secrets:
238
-
basic_auth: ...
239
-
langfuse:
240
-
public_key: ...
241
-
secret_key: ...
266
+
# Required for production deployments
267
+
shared:
242
268
config:
243
-
envs:
244
-
rag_class_types:
245
-
RAG_CLASS_TYPE_LLM_TYPE: "stackit"
246
-
RAG_CLASS_TYPE_EMBEDDER_TYPE: "stackit"
269
+
dns:
270
+
- ... # Your primary domain (e.g., rag.yourdomain.com)
271
+
- ... # Your admin domain (e.g., admin.rag.yourdomain.com)
272
+
273
+
tls:
274
+
enabled: true
275
+
host: ... # Your primary domain for TLS certificate
276
+
secretName: tls-certificate
277
+
issuerName: letsencrypt-cluster-issuer # Adjust if using different cert issuer
247
278
248
279
```
249
280
250
-
> 📝 NOTE: All values containg`...` are placeholders and have to be replaced with real values.
281
+
> 📝 NOTE: Values marked with `...` are placeholders that **must** be replaced with your actual values for deployment.
251
282
252
-
> ⓘ INFO: This deployment comes with multiple options. You can change the `global.config.envs.rag_class_types.RAG_CLASS_TYPE_LLM_TYPE` in `./rag/values.yaml` to one of the following values:
283
+
> ⓘ INFO: This deployment comes with multiple options. You can change the `backend.envs.ragClassTypes.RAG_CLASS_TYPE_LLM_TYPE` in `./rag/values.yaml` to one of the following values:
253
284
>
254
285
> - `stackit`: Uses the STACKIT LLM as an LLM provider.
255
286
> - `ollama`: Uses Ollama as an LLM provider.
256
287
>
257
-
> The same options are also available for the `backend.envs.ragClassTypes.RAG_CLASS_TYPE_EMBEDDER_TYPE`.
288
+
> The same options are also available for the `backend.envs.embedderClassTypes.EMBEDDER_CLASS_TYPE_EMBEDDER_TYPE`.
0 commit comments