ehristoforu commited on
Commit
bb1671d
β€’
1 Parent(s): 3a1b429

Upload 5 files

Browse files
Files changed (5) hide show
  1. .env.local.template +431 -0
  2. .gitattributes +0 -1
  3. Dockerfile +159 -0
  4. README.md +9 -6
  5. entrypoint.sh.template +19 -0
.env.local.template ADDED
@@ -0,0 +1,431 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use .env.local to change these variables
2
+ # DO NOT EDIT THIS FILE WITH SENSITIVE DATA
3
+
4
+ MONGODB_URL=${MONGODB_URL}
5
+ MONGODB_DB_NAME=chat-ui
6
+ MONGODB_DIRECT_CONNECTION=false
7
+
8
+
9
+ COOKIE_NAME=HuggingGPT
10
+ HF_ACCESS_TOKEN=#hf_<token> from from https://huggingface.co/settings/token
11
+
12
+ # used to activate search with web functionality. disabled if not defined
13
+ SERPAPI_KEY=#your serpapi key here
14
+
15
+ # Parameters to enable "Sign in with HF"
16
+ OPENID_CONFIG=`{
17
+ PROVIDER_URL: "https://huggingface.co",
18
+ CLIENT_ID: "${OPENID_CLIENT_ID}",
19
+ CLIENT_SECRET: "${OPENID_CLIENT_SECRET}"
20
+ }`
21
+
22
+
23
+
24
+ MODELS=`[
25
+ {
26
+ "name": "gpt-3.5-turbo",
27
+ "displayName": "GPT-3.5-Turbo",
28
+ "logoUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/ChatGPT_logo.svg/1200px-ChatGPT_logo.svg.png",
29
+ "modelUrl": "https://platform.openai.com/docs/models/gpt-3-5-turbo",
30
+ "websiteUrl": "https://openai.com/chatgpt",
31
+ "parameters": {
32
+ "temperature": 0.3,
33
+ "top_p": 0.8,
34
+ "repetition_penalty": 0.0,
35
+ "max_tokens": 1024,
36
+ "top_k": 50,
37
+ "truncate": 1000,
38
+ "max_new_tokens": 2048
39
+ },
40
+ "endpoints": [{
41
+ "type" : "openai",
42
+ "apiKey": "${OPENAI_API_KEY}",
43
+ "baseURL": "${ENDPOINT}"
44
+ }]
45
+ },
46
+ {
47
+ "name": "gpt-3.5-turbo-0613",
48
+ "displayName": "GPT-3.5-Turbo-0613",
49
+ "logoUrl": "data:image/png;base64,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",
50
+ "modelUrl": "https://platform.openai.com/docs/models/gpt-3-5-turbo",
51
+ "websiteUrl": "https://openai.com/chatgpt",
52
+ "parameters": {
53
+ "temperature": 0.3,
54
+ "top_p": 0.8,
55
+ "repetition_penalty": 0.0,
56
+ "max_tokens": 1024,
57
+ "top_k": 50,
58
+ "truncate": 1000,
59
+ "max_new_tokens": 2048
60
+ },
61
+ "endpoints": [{
62
+ "type" : "openai",
63
+ "apiKey": "${OPENAI_API_KEY}",
64
+ "baseURL": "${ENDPOINT}"
65
+ }]
66
+ },
67
+ {
68
+ "name": "gpt-3.5-turbo-0125",
69
+ "displayName": "GPT-3.5-Turbo-0125",
70
+ "logoUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRko-LT_4JHX2nVrtmqa4rNoVY5nZYT8IlKRw&s",
71
+ "modelUrl": "https://platform.openai.com/docs/models/gpt-3-5-turbo",
72
+ "websiteUrl": "https://openai.com/chatgpt",
73
+ "parameters": {
74
+ "temperature": 0.3,
75
+ "top_p": 0.8,
76
+ "repetition_penalty": 0.0,
77
+ "max_tokens": 1024,
78
+ "top_k": 50,
79
+ "truncate": 1000,
80
+ "max_new_tokens": 2048
81
+ },
82
+ "endpoints": [{
83
+ "type" : "openai",
84
+ "apiKey": "${FREEGPT_API_KEY}",
85
+ "baseURL": "https://free.gpt.ge/v1"
86
+ }]
87
+ },
88
+ {
89
+ "name": "gpt-3.5-turbo-1106",
90
+ "displayName": "GPT-3.5-Turbo-1106",
91
+ "logoUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQR5OxjPZIjkJcJYBERpy1as9vm_eOrohdyEw&s",
92
+ "modelUrl": "https://platform.openai.com/docs/models/gpt-3-5-turbo",
93
+ "websiteUrl": "https://openai.com/chatgpt",
94
+ "parameters": {
95
+ "temperature": 0.3,
96
+ "top_p": 0.8,
97
+ "repetition_penalty": 0.0,
98
+ "max_tokens": 1024,
99
+ "top_k": 50,
100
+ "truncate": 1000,
101
+ "max_new_tokens": 2048
102
+ },
103
+ "endpoints": [{
104
+ "type" : "openai",
105
+ "apiKey": "${FREEGPT_API_KEY}",
106
+ "baseURL": "https://free.gpt.ge/v1"
107
+ }]
108
+ },
109
+ {
110
+ "name": "net-gpt-3.5-turbo",
111
+ "displayName": "GPT-3.5-Turbo-Browsering",
112
+ "logoUrl": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSOFDjKWYHuKk1c4MSfizq5pdzrohJnTfrSbA&s",
113
+ "modelUrl": "https://platform.openai.com/docs/models/gpt-3-5-turbo",
114
+ "websiteUrl": "https://openai.com/chatgpt",
115
+ "parameters": {
116
+ "temperature": 0.3,
117
+ "top_p": 0.8,
118
+ "repetition_penalty": 0.0,
119
+ "max_tokens": 1024,
120
+ "top_k": 50,
121
+ "truncate": 1000,
122
+ "max_new_tokens": 2048
123
+ },
124
+ "endpoints": [{
125
+ "type" : "openai",
126
+ "apiKey": "${FREEGPT_API_KEY}",
127
+ "baseURL": "https://free.gpt.ge/v1"
128
+ }]
129
+ },
130
+ {
131
+ "name": "gpt-4-turbo",
132
+ "displayName": "Gemini Pro",
133
+ "logoUrl": "data:image/png;base64,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",
134
+ "modelUrl": "https://gemini.google.com",
135
+ "websiteUrl": "https://blog.google/technology/ai/google-gemini-ai",
136
+ "parameters": {
137
+ "temperature": 0.3,
138
+ "top_p": 0.8,
139
+ "repetition_penalty": 0.0,
140
+ "max_tokens": 1024,
141
+ "top_k": 50,
142
+ "truncate": 1000,
143
+ "max_new_tokens": 2048
144
+ },
145
+ "endpoints": [{
146
+ "type" : "openai",
147
+ "apiKey": "${GEMINI_API_KEY}",
148
+ "baseURL": "https://gemini-openai-proxy.deno.dev/v1"
149
+ }]
150
+ },
151
+ {
152
+ "name": "claude-3-sonnet",
153
+ "displayName": "Claude-3-Sonnet",
154
+ "modelUrl": "https://claude.ai",
155
+ "websiteUrl": "https://claude.ai",
156
+ "parameters": {
157
+ "temperature": 0.3,
158
+ "top_p": 0.8,
159
+ "repetition_penalty": 0.0,
160
+ "max_tokens": 1024,
161
+ "top_k": 50,
162
+ "truncate": 1000,
163
+ "max_new_tokens": 2048
164
+ },
165
+ "endpoints": [{
166
+ "type" : "openai",
167
+ "apiKey": "${VISIONCRAFT_API_KEY}",
168
+ "baseURL": "https://visioncraft.top/v1"
169
+ }]
170
+ },
171
+ {
172
+ "name": "claude-3-haiku",
173
+ "displayName": "Claude-3-Haiku",
174
+ "modelUrl": "https://claude.ai",
175
+ "websiteUrl": "https://claude.ai",
176
+ "parameters": {
177
+ "temperature": 0.3,
178
+ "top_p": 0.8,
179
+ "repetition_penalty": 0.0,
180
+ "max_tokens": 1024,
181
+ "top_k": 50,
182
+ "truncate": 1000,
183
+ "max_new_tokens": 2048
184
+ },
185
+ "endpoints": [{
186
+ "type" : "openai",
187
+ "apiKey": "${VISIONCRAFT_API_KEY}",
188
+ "baseURL": "https://visioncraft.top/v1"
189
+ }]
190
+ },
191
+ {
192
+ "name": "claude-instant-100k",
193
+ "displayName": "Claude-Instant-100K",
194
+ "modelUrl": "https://claude.ai",
195
+ "websiteUrl": "https://claude.ai",
196
+ "parameters": {
197
+ "temperature": 0.3,
198
+ "top_p": 0.8,
199
+ "repetition_penalty": 0.0,
200
+ "max_tokens": 1024,
201
+ "top_k": 50,
202
+ "truncate": 1000,
203
+ "max_new_tokens": 2048
204
+ },
205
+ "endpoints": [{
206
+ "type" : "openai",
207
+ "apiKey": "${VISIONCRAFT_API_KEY}",
208
+ "baseURL": "https://visioncraft.top/v1"
209
+ }]
210
+ },
211
+ {
212
+ "name": "claude-instant",
213
+ "displayName": "Claude-Instant",
214
+ "modelUrl": "https://claude.ai",
215
+ "websiteUrl": "https://claude.ai",
216
+ "parameters": {
217
+ "temperature": 0.3,
218
+ "top_p": 0.8,
219
+ "repetition_penalty": 0.0,
220
+ "max_tokens": 1024,
221
+ "top_k": 50,
222
+ "truncate": 1000,
223
+ "max_new_tokens": 2048
224
+ },
225
+ "endpoints": [{
226
+ "type" : "openai",
227
+ "apiKey": "${VISIONCRAFT_API_KEY}",
228
+ "baseURL": "https://visioncraft.top/v1"
229
+ }]
230
+ },
231
+ {
232
+ "name": "dbrx-instruct",
233
+ "displayName": "DBRX-Instruct",
234
+ "modelUrl": "https://huggingface.co/databricks/dbrx-instruct",
235
+ "websiteUrl": "https://www.databricks.com/",
236
+ "parameters": {
237
+ "temperature": 0.3,
238
+ "top_p": 0.8,
239
+ "repetition_penalty": 0.0,
240
+ "max_tokens": 1024,
241
+ "top_k": 50,
242
+ "truncate": 1000,
243
+ "max_new_tokens": 2048
244
+ },
245
+ "endpoints": [{
246
+ "type" : "openai",
247
+ "apiKey": "${VISIONCRAFT_API_KEY}",
248
+ "baseURL": "https://visioncraft.top/v1"
249
+ }]
250
+ },
251
+ {
252
+ "name": "llama3-70b-8192",
253
+ "displayName": "Llama3-70B",
254
+ "description": "Generation over generation, Meta Llama 3 demonstrates state-of-the-art performance on a wide range of industry benchmarks and offers new capabilities, including improved reasoning.",
255
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/meta-logo.png",
256
+ "modelUrl": "https://huggingface.co/meta-llama/Meta-Llama-3-70B",
257
+ "websiteUrl": "https://llama.meta.com/llama3",
258
+ "parameters": {
259
+ "temperature": 0.3,
260
+ "top_p": 0.8,
261
+ "repetition_penalty": 0.0,
262
+ "max_tokens": 1024,
263
+ "top_k": 50,
264
+ "truncate": 1000,
265
+ "max_new_tokens": 2048
266
+ },
267
+ "endpoints": [{
268
+ "type" : "openai",
269
+ "apiKey": "${GROQ_API_KEY}",
270
+ "baseURL": "https://api.groq.com/openai/v1"
271
+ }]
272
+ },
273
+ {
274
+ "name": "llama3-8b-8192",
275
+ "displayName": "Llama3-8B",
276
+ "description": "Generation over generation, Meta Llama 3 demonstrates state-of-the-art performance on a wide range of industry benchmarks and offers new capabilities, including improved reasoning.",
277
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/meta-logo.png",
278
+ "modelUrl": "https://huggingface.co/meta-llama/Meta-Llama-3-8B",
279
+ "websiteUrl": "https://llama.meta.com/llama3",
280
+ "parameters": {
281
+ "temperature": 0.3,
282
+ "top_p": 0.8,
283
+ "repetition_penalty": 0.0,
284
+ "max_tokens": 1024,
285
+ "top_k": 50,
286
+ "truncate": 1000,
287
+ "max_new_tokens": 2048
288
+ },
289
+ "endpoints": [{
290
+ "type" : "openai",
291
+ "apiKey": "${GROQ_API_KEY}",
292
+ "baseURL": "https://api.groq.com/openai/v1"
293
+ }]
294
+ },
295
+ {
296
+ "name": "llama2-70b-4096",
297
+ "displayName": "Llama2-70B",
298
+ "description": "Generation over generation, Meta Llama 2 demonstrates state-of-the-art performance on a wide range of industry benchmarks and offers new capabilities, including improved reasoning.",
299
+ "logoUrl": "https://pl-public-data.s3.amazonaws.com/assets_lightning/Lit_LLaMA_Badge3x.png",
300
+ "modelUrl": "https://huggingface.co/meta-llama/Llama-2-70b",
301
+ "websiteUrl": "https://llama.meta.com/llama2",
302
+ "parameters": {
303
+ "temperature": 0.3,
304
+ "top_p": 0.8,
305
+ "repetition_penalty": 0.0,
306
+ "max_tokens": 1024,
307
+ "top_k": 50,
308
+ "truncate": 1000,
309
+ "max_new_tokens": 2048
310
+ },
311
+ "endpoints": [{
312
+ "type" : "openai",
313
+ "apiKey": "${GROQ_API_KEY}",
314
+ "baseURL": "https://api.groq.com/openai/v1"
315
+ }]
316
+ },
317
+ {
318
+ "name": "mixtral-8x7b-32768",
319
+ "displayName": "Mixtral-8x7B",
320
+ "description" : "The latest MoE model from Mistral AI! 8x7B and outperforms Llama 2 70B in most benchmarks.",
321
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/mistral-logo.png",
322
+ "websiteUrl" : "https://mistral.ai/news/mixtral-of-experts",
323
+ "modelUrl": "https://huggingface.co/mistralai/Mixtral-8x7B-v0.1",
324
+ "parameters": {
325
+ "temperature": 0.3,
326
+ "top_p": 0.8,
327
+ "repetition_penalty": 0.0,
328
+ "max_tokens": 1024,
329
+ "top_k": 50,
330
+ "truncate": 1000,
331
+ "max_new_tokens": 2048
332
+ },
333
+ "endpoints": [{
334
+ "type" : "openai",
335
+ "apiKey": "${GROQ_API_KEY}",
336
+ "baseURL": "https://api.groq.com/openai/v1"
337
+ }]
338
+ },
339
+ {
340
+ "name": "Mixtral-8x22B-Instruct-v0.1",
341
+ "displayName": "Mixtral-8x22B",
342
+ "description" : "The latest MoE model from Mistral AI! 8x22B and outperforms Llama 3 8B in most benchmarks.",
343
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/mistral-logo.png",
344
+ "websiteUrl" : "https://mistral.ai/news/mixtral-of-experts",
345
+ "modelUrl": "https://huggingface.co/mistralai/Mixtral-8x22B-v0.1",
346
+ "parameters": {
347
+ "temperature": 0.3,
348
+ "top_p": 0.8,
349
+ "repetition_penalty": 0.0,
350
+ "max_tokens": 1024,
351
+ "top_k": 50,
352
+ "truncate": 1000,
353
+ "max_new_tokens": 2048
354
+ },
355
+ "endpoints": [{
356
+ "type" : "openai",
357
+ "apiKey": "${VISIONCRAFT_API_KEY}",
358
+ "baseURL": "https://visioncraft.top/v1"
359
+ }]
360
+ },
361
+ {
362
+ "name": "zephyr-orpo-141b-A35b-v0.1",
363
+ "displayName": "Zephyr-Orpo-141B-A35B"
364
+ "description": "Zephyr 141B-A35B is a fine-tuned version of Mistral 8x22B, trained using ORPO, a novel alignment algorithm.",
365
+ "modelUrl": "https://huggingface.co/HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1",
366
+ "websiteUrl": "https://huggingface.co/HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1",
367
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/zephyr-logo.png",
368
+ "parameters": {
369
+ "temperature": 0.3,
370
+ "top_p": 0.8,
371
+ "repetition_penalty": 0.0,
372
+ "max_tokens": 1024,
373
+ "top_k": 50,
374
+ "truncate": 1000,
375
+ "max_new_tokens": 2048
376
+ },
377
+ "endpoints": [{
378
+ "type" : "openai",
379
+ "apiKey": "${VISIONCRAFT_API_KEY}",
380
+ "baseURL": "https://visioncraft.top/v1"
381
+ }]
382
+ },
383
+ {
384
+ "name": "gemma-7b-it",
385
+ "displayName": "Gemma-7B-IT",
386
+ "description": "Gemma 7B 1.1 is the latest release in the Gemma family of lightweight models built by Google, trained using a novel RLHF method.",
387
+ "websiteUrl" : "https://blog.google/technology/developers/gemma-open-models/",
388
+ "logoUrl": "https://huggingface.co/datasets/huggingchat/models-logo/resolve/main/google-logo.png",
389
+ "modelUrl": "https://huggingface.co/google/gemma-1.1-7b-it",
390
+ "parameters": {
391
+ "temperature": 0.3,
392
+ "top_p": 0.8,
393
+ "repetition_penalty": 0.0,
394
+ "max_tokens": 1024,
395
+ "top_k": 50,
396
+ "truncate": 1000,
397
+ "max_new_tokens": 2048
398
+ },
399
+ "endpoints": [{
400
+ "type" : "openai",
401
+ "apiKey": "${GROQ_API_KEY}",
402
+ "baseURL": "https://api.groq.com/openai/v1"
403
+ }]
404
+ }
405
+ ]`
406
+
407
+ OLD_MODELS=`[]`# any removed models, `{ name: string, displayName?: string, id?: string }`
408
+
409
+ PUBLIC_ORIGIN=${SPACE_HOST}
410
+ PUBLIC_SHARE_PREFIX=${SPACE_HOST}/r
411
+ PUBLIC_GOOGLE_ANALYTICS_ID=#G-XXXXXXXX / Leave empty to disable
412
+ PUBLIC_DEPRECATED_GOOGLE_ANALYTICS_ID=#UA-XXXXXXXX-X / Leave empty to disable
413
+ PUBLIC_ANNOUNCEMENT_BANNERS=`[
414
+ {
415
+ "title": "🦾 Claude-3-Sonnet is now available for free!",
416
+ "linkTitle": "try it",
417
+ "linkHref": "/chat?model=claude-3-sonnet"
418
+ }
419
+ ]`
420
+
421
+ PARQUET_EXPORT_DATASET=
422
+ PARQUET_EXPORT_HF_TOKEN=
423
+ PARQUET_EXPORT_SECRET=
424
+
425
+ PUBLIC_APP_NAME=${APP_NAME} # name used as title throughout the app
426
+ PUBLIC_APP_DESCRIPTION=We provide free access to the latest AI models. There is a possibility that some models may be temporarily unavailable, in which case please select another model.
427
+ PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
428
+ PUBLIC_APP_COLOR=${APP_COLOR} # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette
429
+ PUBLIC_APP_DATA_SHARING=1#set to 1 to enable disclaimers & options about data sharing
430
+ PUBLIC_APP_DATA_DISCLAIMER1=#set to 1 to enable disclaimers about model outputs
431
+ PUBLIC_APP_DISCLAIMER_MESSAGE="Disclaimer: AI is an area of active research with known problems such as biased generation and misinformation. Do not use this application for high-stakes decisions or advice. Do not insert your personal data, especially sensitive, like health data."
.gitattributes CHANGED
@@ -25,7 +25,6 @@
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
  *.wasm filter=lfs diff=lfs merge=lfs -text
 
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
 
28
  *.tflite filter=lfs diff=lfs merge=lfs -text
29
  *.tgz filter=lfs diff=lfs merge=lfs -text
30
  *.wasm filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ARG MODEL_NAME
2
+ ARG MODEL_PARAMS
3
+ ARG MODEL_PROMPT_TEMPLATE
4
+ ARG APP_COLOR
5
+ ARG APP_NAME
6
+
7
+
8
+ FROM node:20 as chatui-builder
9
+ ARG MODEL_NAME
10
+ ARG MODEL_PARAMS
11
+ ARG APP_COLOR
12
+ ARG APP_NAME
13
+ ARG MODEL_PROMPT_TEMPLATE
14
+
15
+ WORKDIR /app
16
+
17
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
18
+ git gettext && \
19
+ rm -rf /var/lib/apt/lists/*
20
+
21
+
22
+ RUN git clone https://github.com/fredhu21/chat-ui.git
23
+
24
+ WORKDIR /app/chat-ui
25
+
26
+
27
+ COPY .env.local.template .env.local.template
28
+
29
+ RUN mkdir defaults
30
+ ADD defaults /defaults
31
+ RUN chmod -R 777 /defaults
32
+
33
+
34
+ RUN --mount=type=secret,id=OPENAI_API_KEY,mode=0444 \
35
+ OPENAI_API_KEY=$(cat /run/secrets/OPENAI_API_KEY) && export OPENAI_API_KEY && echo "${OPENAI_API_KEY}" >> "/defaults/.openai.key" && cat /defaults/.openai.key
36
+
37
+
38
+ RUN --mount=type=secret,id=ENDPOINT,mode=0444 \
39
+ ENDPOINT=$(cat /run/secrets/ENDPOINT) && export ENDPOINT && echo "${ENDPOINT}" >> "/defaults/.endpoint" && cat /defaults/.endpoint
40
+
41
+ RUN --mount=type=secret,id=GEMINI_API_KEY,mode=0444 \
42
+ ENDPOINT=$(cat /run/secrets/GEMINI_API_KEY) && export GEMINI_API_KEY && echo "${GEMINI_API_KEY}" >> "/defaults/.gemini.key" && cat /defaults/.gemini.key
43
+
44
+ RUN --mount=type=secret,id=FREEGPT_API_KEY,mode=0444 \
45
+ ENDPOINT=$(cat /run/secrets/FREEGPT_API_KEY) && export FREEGPT_API_KEY && echo "${FREEGPT_API_KEY}" >> "/defaults/.freegpt.key" && cat /defaults/.freegpt.key
46
+
47
+ RUN --mount=type=secret,id=GROQ_API_KEY,mode=0444 \
48
+ ENDPOINT=$(cat /run/secrets/GROQ_API_KEY) && export GROQ_API_KEY && echo "${GROQ_API_KEY}" >> "/defaults/.groq.key" && cat /defaults/.groq.key
49
+
50
+ RUN --mount=type=secret,id=VISIONCRAFT_API_KEY,mode=0444 \
51
+ ENDPOINT=$(cat /run/secrets/VISIONCRAFT_API_KEY) && export VISIONCRAFT_API_KEY && echo "${VISIONCRAFT_API_KEY}" >> "/defaults/.visioncraft.key" && cat /defaults/.visioncraft.key
52
+
53
+ RUN --mount=type=secret,id=OPENID_CLIENT_ID,mode=0444 \
54
+ ENDPOINT=$(cat /run/secrets/OPENID_CLIENT_ID) && export OPENID_CLIENT_ID && echo "${OPENID_CLIENT_ID}" >> "/defaults/.openid.client_id" && cat /defaults/.openid.client_id
55
+
56
+ RUN --mount=type=secret,id=OPENID_CLIENT_SECRET,mode=0444 \
57
+ ENDPOINT=$(cat /run/secrets/OPENID_CLIENT_SECRET) && export OPENID_CLIENT_SECRET && echo "${OPENID_CLIENT_SECRET}" >> "/defaults/.openid.client_secret" && cat /defaults/.openid.client_secret
58
+
59
+
60
+ RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
61
+ MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \
62
+ && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \
63
+ && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \
64
+ && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \
65
+ && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \
66
+ && MONGODB_URL=$(cat /run/secrets/MONGODB_URL || cat /defaults/MONGODB_URL) && export MONGODB_URL && \
67
+ echo "${MONGODB_URL}" && OPENAI_API_KEY=$(cat /defaults/.openai.key) && export OPENAI_API_KEY && echo "${OPENAI_API_KEY}" \
68
+ && ENDPOINT=$(cat /defaults/.endpoint) && export ENDPOINT && echo "${ENDPOINT}" \
69
+ && GEMINI_API_KEY=$(cat /defaults/.gemini.key) && export GEMINI_API_KEY && echo "${GEMINI_API_KEY}" \
70
+ && FREEGPT_API_KEY=$(cat /defaults/.freegpt.key) && export FREEGPT_API_KEY && echo "${FREEGPT_API_KEY}" \
71
+ && GROQ_API_KEY=$(cat /defaults/.groq.key) && export GROQ_API_KEY && echo "${GROQ_API_KEY}" \
72
+ && VISIONCRAFT_API_KEY=$(cat /defaults/.visioncraft.key) && export VISIONCRAFT_API_KEY && echo "${VISIONCRAFT_API_KEY}" \
73
+ && OPENID_CLIENT_ID=$(cat /defaults/.openid.client_id) && export OPENID_CLIENT_ID && echo "${OPENID_CLIENT_ID}" \
74
+ && OPENID_CLIENT_SECRET=$(cat /defaults/.openid.client_secret) && export OPENID_CLIENT_SECRET && echo "${OPENID_CLIENT_SECRET}" \
75
+ && envsubst < ".env.local.template" > ".env.local" \
76
+ && rm .env.local.template && cat .env.local
77
+
78
+
79
+
80
+ RUN --mount=type=cache,target=/app/.npm \
81
+ npm set cache /app/.npm && \
82
+ npm ci
83
+
84
+ RUN npm run build
85
+
86
+ FROM ghcr.io/huggingface/text-generation-inference:latest
87
+
88
+ ARG MODEL_NAME
89
+ ARG MODEL_PARAMS
90
+ ARG MODEL_PROMPT_TEMPLATE
91
+ ARG APP_COLOR
92
+ ARG APP_NAME
93
+
94
+ ENV TZ=Europe/Paris \
95
+ PORT=3000
96
+
97
+
98
+
99
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
100
+ gnupg \
101
+ curl \
102
+ gettext && \
103
+ rm -rf /var/lib/apt/lists/*
104
+ COPY entrypoint.sh.template entrypoint.sh.template
105
+
106
+ RUN mkdir defaults
107
+ ADD defaults /defaults
108
+ RUN chmod -R 777 /defaults
109
+
110
+ RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
111
+ MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \
112
+ && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \
113
+ && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \
114
+ && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \
115
+ && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \
116
+ && MONGODB_URL=$(cat /run/secrets/MONGODB_URL > /dev/null | grep '^' || cat /defaults/MONGODB_URL) && export MONGODB_URL && \
117
+ envsubst < "entrypoint.sh.template" > "entrypoint.sh" \
118
+ && rm entrypoint.sh.template
119
+
120
+
121
+ RUN curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
122
+ gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
123
+ --dearmor
124
+
125
+ RUN echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
126
+
127
+
128
+
129
+ RUN mkdir -p /data/db
130
+ RUN chown -R 1000:1000 /data
131
+
132
+ RUN curl -fsSL https://deb.nodesource.com/setup_19.x | /bin/bash -
133
+
134
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
135
+ nodejs && \
136
+ rm -rf /var/lib/apt/lists/*
137
+
138
+ RUN mkdir /app
139
+ RUN chown -R 1000:1000 /app
140
+
141
+ RUN useradd -m -u 1000 user
142
+
143
+ # Switch to the "user" user
144
+ USER user
145
+
146
+ ENV HOME=/home/user \
147
+ PATH=/home/user/.local/bin:$PATH
148
+
149
+ RUN npm config set prefix /home/user/.local
150
+ RUN npm install -g pm2
151
+
152
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/node_modules /app/node_modules
153
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/package.json /app/package.json
154
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/build /app/build
155
+
156
+ ENTRYPOINT ["/bin/bash"]
157
+ CMD ["entrypoint.sh"]
158
+
159
+
README.md CHANGED
@@ -1,11 +1,14 @@
1
  ---
2
- title: Solatiun
3
- emoji: πŸ”₯
4
- colorFrom: blue
5
- colorTo: gray
6
  sdk: docker
7
- pinned: false
 
 
 
8
  license: apache-2.0
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: Solatium
3
+ emoji: 🌍
4
+ colorFrom: indigo
5
+ colorTo: red
6
  sdk: docker
7
+ pinned: true
8
+ app_port: 3000
9
+ failure_strategy: rollback
10
+ load_balancing_strategy: random
11
  license: apache-2.0
12
  ---
13
 
14
+ # Solatium Chat
entrypoint.sh.template ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # Start the local Mongo database
4
+ #mongod &
5
+
6
+ # Start the text-generation-inference process
7
+ #text-generation-launcher --model-id ${MODEL_NAME} --num-shard 1 --port 8080 --trust-remote-code &
8
+
9
+ # Wait for text-generation-inference to start
10
+ #curl --retry 60 --retry-delay 10 --retry-connrefused http://127.0.0.1:8080/health
11
+
12
+ # Start the chat-ui process
13
+ pm2 start /app/build/index.js -i $CPU_CORES --no-daemon &
14
+
15
+ # Wait for any process to exit
16
+ wait -n
17
+
18
+ # Exit with status of process that exited first
19
+ exit $?