@lobehub/chat 1.70.11 → 1.71.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.github/workflows/sync-database-schema.yml +25 -0
  2. package/CHANGELOG.md +58 -0
  3. package/changelog/v1.json +21 -0
  4. package/docs/developer/database-schema.dbml +569 -0
  5. package/locales/ar/components.json +1 -0
  6. package/locales/ar/models.json +6 -0
  7. package/locales/bg-BG/components.json +1 -0
  8. package/locales/bg-BG/models.json +6 -0
  9. package/locales/de-DE/components.json +1 -0
  10. package/locales/de-DE/models.json +6 -0
  11. package/locales/en-US/components.json +1 -0
  12. package/locales/en-US/models.json +6 -0
  13. package/locales/es-ES/components.json +1 -0
  14. package/locales/es-ES/models.json +6 -0
  15. package/locales/fa-IR/components.json +1 -0
  16. package/locales/fa-IR/models.json +6 -0
  17. package/locales/fr-FR/components.json +1 -0
  18. package/locales/fr-FR/models.json +6 -0
  19. package/locales/it-IT/components.json +1 -0
  20. package/locales/it-IT/models.json +6 -0
  21. package/locales/ja-JP/components.json +1 -0
  22. package/locales/ja-JP/models.json +6 -0
  23. package/locales/ko-KR/components.json +1 -0
  24. package/locales/ko-KR/models.json +6 -0
  25. package/locales/nl-NL/components.json +1 -0
  26. package/locales/nl-NL/models.json +6 -0
  27. package/locales/pl-PL/components.json +1 -0
  28. package/locales/pl-PL/models.json +6 -0
  29. package/locales/pt-BR/components.json +1 -0
  30. package/locales/pt-BR/models.json +6 -0
  31. package/locales/ru-RU/components.json +1 -0
  32. package/locales/ru-RU/models.json +6 -0
  33. package/locales/tr-TR/components.json +1 -0
  34. package/locales/tr-TR/models.json +6 -0
  35. package/locales/vi-VN/components.json +1 -0
  36. package/locales/vi-VN/models.json +6 -0
  37. package/locales/zh-CN/components.json +1 -0
  38. package/locales/zh-CN/models.json +6 -0
  39. package/locales/zh-TW/components.json +1 -0
  40. package/locales/zh-TW/models.json +6 -0
  41. package/package.json +6 -2
  42. package/scripts/dbmlWorkflow/index.ts +11 -0
  43. package/src/components/ModelSelect/index.tsx +16 -0
  44. package/src/config/aiModels/google.ts +36 -0
  45. package/src/config/aiModels/vertexai.ts +24 -6
  46. package/src/config/modelProviders/vertexai.ts +1 -1
  47. package/src/database/client/migrations.json +4 -4
  48. package/src/database/server/models/message.ts +20 -9
  49. package/src/database/server/models/user.test.ts +58 -0
  50. package/src/features/AlertBanner/CloudBanner.tsx +1 -1
  51. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -1
  52. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  53. package/src/libs/agent-runtime/google/index.ts +23 -5
  54. package/src/libs/agent-runtime/utils/streams/google-ai.test.ts +189 -0
  55. package/src/libs/agent-runtime/utils/streams/google-ai.ts +70 -23
  56. package/src/libs/agent-runtime/utils/streams/index.ts +1 -0
  57. package/src/libs/agent-runtime/utils/streams/protocol.ts +2 -0
  58. package/src/locales/default/components.ts +1 -0
  59. package/src/services/chat.ts +33 -15
  60. package/src/services/file/client.ts +3 -1
  61. package/src/services/message/server.ts +2 -2
  62. package/src/services/message/type.ts +2 -2
  63. package/src/services/upload.ts +82 -1
  64. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +44 -4
  65. package/src/store/chat/slices/message/action.ts +3 -0
  66. package/src/store/file/slices/upload/action.ts +36 -13
  67. package/src/store/file/store.ts +2 -0
  68. package/src/types/aiModel.ts +4 -1
  69. package/src/types/files/upload.ts +7 -0
  70. package/src/types/message/base.ts +22 -1
  71. package/src/types/message/chat.ts +1 -6
  72. package/src/types/message/image.ts +11 -0
  73. package/src/types/message/index.ts +1 -0
  74. package/src/utils/fetch/fetchSSE.ts +24 -1
@@ -0,0 +1,25 @@
1
+ name: Database Schema Visualization CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - 'docs/developer/database-schema.dbml'
9
+
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Install dbdocs
17
+ run: sudo npm install -g dbdocs
18
+
19
+ - name: Check dbdocs
20
+ run: dbdocs
21
+
22
+ - name: sync database schema to dbdocs
23
+ env:
24
+ DBDOCS_TOKEN: ${{ secrets.DBDOCS_TOKEN }}
25
+ run: npm run db:visualize
package/CHANGELOG.md CHANGED
@@ -2,6 +2,64 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.71.1](https://github.com/lobehub/lobe-chat/compare/v1.71.0...v1.71.1)
6
+
7
+ <sup>Released on **2025-03-15**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Fix google gemini output relative issue.
12
+
13
+ #### 💄 Styles
14
+
15
+ - **misc**: Update Vertex AI models.
16
+
17
+ <br/>
18
+
19
+ <details>
20
+ <summary><kbd>Improvements and Fixes</kbd></summary>
21
+
22
+ #### What's fixed
23
+
24
+ - **misc**: Fix google gemini output relative issue, closes [#6970](https://github.com/lobehub/lobe-chat/issues/6970) ([fdcaaf3](https://github.com/lobehub/lobe-chat/commit/fdcaaf3))
25
+
26
+ #### Styles
27
+
28
+ - **misc**: Update Vertex AI models, closes [#6967](https://github.com/lobehub/lobe-chat/issues/6967) ([d4432f1](https://github.com/lobehub/lobe-chat/commit/d4432f1))
29
+
30
+ </details>
31
+
32
+ <div align="right">
33
+
34
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
35
+
36
+ </div>
37
+
38
+ ## [Version 1.71.0](https://github.com/lobehub/lobe-chat/compare/v1.70.11...v1.71.0)
39
+
40
+ <sup>Released on **2025-03-14**</sup>
41
+
42
+ #### ✨ Features
43
+
44
+ - **misc**: Support gemini image output in chat.
45
+
46
+ <br/>
47
+
48
+ <details>
49
+ <summary><kbd>Improvements and Fixes</kbd></summary>
50
+
51
+ #### What's improved
52
+
53
+ - **misc**: Support gemini image output in chat, closes [#6931](https://github.com/lobehub/lobe-chat/issues/6931) ([d4c0d1f](https://github.com/lobehub/lobe-chat/commit/d4c0d1f))
54
+
55
+ </details>
56
+
57
+ <div align="right">
58
+
59
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
60
+
61
+ </div>
62
+
5
63
  ### [Version 1.70.11](https://github.com/lobehub/lobe-chat/compare/v1.70.10...v1.70.11)
6
64
 
7
65
  <sup>Released on **2025-03-13**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,25 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "fixes": [
5
+ "Fix google gemini output relative issue."
6
+ ],
7
+ "improvements": [
8
+ "Update Vertex AI models."
9
+ ]
10
+ },
11
+ "date": "2025-03-15",
12
+ "version": "1.71.1"
13
+ },
14
+ {
15
+ "children": {
16
+ "features": [
17
+ "Support gemini image output in chat."
18
+ ]
19
+ },
20
+ "date": "2025-03-14",
21
+ "version": "1.71.0"
22
+ },
2
23
  {
3
24
  "children": {},
4
25
  "date": "2025-03-13",
@@ -0,0 +1,569 @@
1
+ table agents {
2
+ id text [pk, not null]
3
+ slug varchar(100) [unique]
4
+ title text
5
+ description text
6
+ tags jsonb [default: `[]`]
7
+ avatar text
8
+ background_color text
9
+ plugins jsonb [default: `[]`]
10
+ user_id text [not null]
11
+ chat_config jsonb
12
+ few_shots jsonb
13
+ model text
14
+ params jsonb [default: `{}`]
15
+ provider text
16
+ system_role text
17
+ tts jsonb
18
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
19
+ created_at "timestamp with time zone" [not null, default: `now()`]
20
+ updated_at "timestamp with time zone" [not null, default: `now()`]
21
+ }
22
+
23
+ table agents_files {
24
+ file_id text [not null]
25
+ agent_id text [not null]
26
+ enabled boolean [default: true]
27
+ user_id text [not null]
28
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
29
+ created_at "timestamp with time zone" [not null, default: `now()`]
30
+ updated_at "timestamp with time zone" [not null, default: `now()`]
31
+
32
+ indexes {
33
+ (file_id, agent_id, user_id) [pk]
34
+ }
35
+ }
36
+
37
+ table agents_knowledge_bases {
38
+ agent_id text [not null]
39
+ knowledge_base_id text [not null]
40
+ user_id text [not null]
41
+ enabled boolean [default: true]
42
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
43
+ created_at "timestamp with time zone" [not null, default: `now()`]
44
+ updated_at "timestamp with time zone" [not null, default: `now()`]
45
+
46
+ indexes {
47
+ (agent_id, knowledge_base_id) [pk]
48
+ }
49
+ }
50
+
51
+ table ai_models {
52
+ id varchar(150) [not null]
53
+ display_name varchar(200)
54
+ description text
55
+ organization varchar(100)
56
+ enabled boolean
57
+ provider_id varchar(64) [not null]
58
+ type varchar(20) [not null, default: 'chat']
59
+ sort integer
60
+ user_id text [not null]
61
+ pricing jsonb
62
+ parameters jsonb [default: `{}`]
63
+ config jsonb
64
+ abilities jsonb [default: `{}`]
65
+ context_window_tokens integer
66
+ source varchar(20)
67
+ released_at varchar(10)
68
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
69
+ created_at "timestamp with time zone" [not null, default: `now()`]
70
+ updated_at "timestamp with time zone" [not null, default: `now()`]
71
+
72
+ indexes {
73
+ (id, provider_id, user_id) [pk]
74
+ }
75
+ }
76
+
77
+ table ai_providers {
78
+ id varchar(64) [not null]
79
+ name text
80
+ user_id text [not null]
81
+ sort integer
82
+ enabled boolean
83
+ fetch_on_client boolean
84
+ check_model text
85
+ logo text
86
+ description text
87
+ key_vaults text
88
+ source varchar(20)
89
+ settings jsonb
90
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
91
+ created_at "timestamp with time zone" [not null, default: `now()`]
92
+ updated_at "timestamp with time zone" [not null, default: `now()`]
93
+
94
+ indexes {
95
+ (id, user_id) [pk]
96
+ }
97
+ }
98
+
99
+ table async_tasks {
100
+ id uuid [pk, not null, default: `gen_random_uuid()`]
101
+ type text
102
+ status text
103
+ error jsonb
104
+ user_id text [not null]
105
+ duration integer
106
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
107
+ created_at "timestamp with time zone" [not null, default: `now()`]
108
+ updated_at "timestamp with time zone" [not null, default: `now()`]
109
+ }
110
+
111
+ table files {
112
+ id text [pk, not null]
113
+ user_id text [not null]
114
+ file_type varchar(255) [not null]
115
+ file_hash varchar(64)
116
+ name text [not null]
117
+ size integer [not null]
118
+ url text [not null]
119
+ metadata jsonb
120
+ chunk_task_id uuid
121
+ embedding_task_id uuid
122
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
123
+ created_at "timestamp with time zone" [not null, default: `now()`]
124
+ updated_at "timestamp with time zone" [not null, default: `now()`]
125
+ }
126
+
127
+ table global_files {
128
+ hash_id varchar(64) [pk, not null]
129
+ file_type varchar(255) [not null]
130
+ size integer [not null]
131
+ url text [not null]
132
+ metadata jsonb
133
+ created_at "timestamp with time zone" [not null, default: `now()`]
134
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
135
+ }
136
+
137
+ table knowledge_base_files {
138
+ knowledge_base_id text [not null]
139
+ file_id text [not null]
140
+ created_at "timestamp with time zone" [not null, default: `now()`]
141
+
142
+ indexes {
143
+ (knowledge_base_id, file_id) [pk]
144
+ }
145
+ }
146
+
147
+ table knowledge_bases {
148
+ id text [pk, not null]
149
+ name text [not null]
150
+ description text
151
+ avatar text
152
+ type text
153
+ user_id text [not null]
154
+ is_public boolean [default: false]
155
+ settings jsonb
156
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
157
+ created_at "timestamp with time zone" [not null, default: `now()`]
158
+ updated_at "timestamp with time zone" [not null, default: `now()`]
159
+ }
160
+
161
+ table message_chunks {
162
+ message_id text
163
+ chunk_id uuid
164
+
165
+ indexes {
166
+ (chunk_id, message_id) [pk]
167
+ }
168
+ }
169
+
170
+ table message_plugins {
171
+ id text [pk, not null]
172
+ tool_call_id text
173
+ type text [default: 'default']
174
+ api_name text
175
+ arguments text
176
+ identifier text
177
+ state jsonb
178
+ error jsonb
179
+ }
180
+
181
+ table message_queries {
182
+ id uuid [pk, not null, default: `gen_random_uuid()`]
183
+ message_id text [not null]
184
+ rewrite_query text
185
+ user_query text
186
+ embeddings_id uuid
187
+ }
188
+
189
+ table message_query_chunks {
190
+ id text
191
+ query_id uuid
192
+ chunk_id uuid
193
+ similarity "numeric(6, 5)"
194
+
195
+ indexes {
196
+ (chunk_id, id, query_id) [pk]
197
+ }
198
+ }
199
+
200
+ table message_tts {
201
+ id text [pk, not null]
202
+ content_md5 text
203
+ file_id text
204
+ voice text
205
+ }
206
+
207
+ table message_translates {
208
+ id text [pk, not null]
209
+ content text
210
+ from text
211
+ to text
212
+ }
213
+
214
+ table messages {
215
+ id text [pk, not null]
216
+ role text [not null]
217
+ content text
218
+ reasoning jsonb
219
+ search jsonb
220
+ metadata jsonb
221
+ model text
222
+ provider text
223
+ favorite boolean [default: false]
224
+ error jsonb
225
+ tools jsonb
226
+ trace_id text
227
+ observation_id text
228
+ client_id text
229
+ user_id text [not null]
230
+ session_id text
231
+ topic_id text
232
+ thread_id text
233
+ parent_id text
234
+ quota_id text
235
+ agent_id text
236
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
237
+ created_at "timestamp with time zone" [not null, default: `now()`]
238
+ updated_at "timestamp with time zone" [not null, default: `now()`]
239
+
240
+ indexes {
241
+ created_at [name: 'messages_created_at_idx']
242
+ (client_id, user_id) [name: 'message_client_id_user_unique', unique]
243
+ topic_id [name: 'messages_topic_id_idx']
244
+ parent_id [name: 'messages_parent_id_idx']
245
+ quota_id [name: 'messages_quota_id_idx']
246
+ }
247
+ }
248
+
249
+ table messages_files {
250
+ file_id text [not null]
251
+ message_id text [not null]
252
+
253
+ indexes {
254
+ (file_id, message_id) [pk]
255
+ }
256
+ }
257
+
258
+ table nextauth_accounts {
259
+ access_token text
260
+ expires_at integer
261
+ id_token text
262
+ provider text [not null]
263
+ providerAccountId text [not null]
264
+ refresh_token text
265
+ scope text
266
+ session_state text
267
+ token_type text
268
+ type text [not null]
269
+ userId text [not null]
270
+
271
+ indexes {
272
+ (provider, providerAccountId) [pk]
273
+ }
274
+ }
275
+
276
+ table nextauth_authenticators {
277
+ counter integer [not null]
278
+ credentialBackedUp boolean [not null]
279
+ credentialDeviceType text [not null]
280
+ credentialID text [not null, unique]
281
+ credentialPublicKey text [not null]
282
+ providerAccountId text [not null]
283
+ transports text
284
+ userId text [not null]
285
+
286
+ indexes {
287
+ (userId, credentialID) [pk]
288
+ }
289
+ }
290
+
291
+ table nextauth_sessions {
292
+ expires timestamp [not null]
293
+ sessionToken text [pk, not null]
294
+ userId text [not null]
295
+ }
296
+
297
+ table nextauth_verificationtokens {
298
+ expires timestamp [not null]
299
+ identifier text [not null]
300
+ token text [not null]
301
+
302
+ indexes {
303
+ (identifier, token) [pk]
304
+ }
305
+ }
306
+
307
+ table chunks {
308
+ id uuid [pk, not null, default: `gen_random_uuid()`]
309
+ text text
310
+ abstract text
311
+ metadata jsonb
312
+ index integer
313
+ type varchar
314
+ user_id text
315
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
316
+ created_at "timestamp with time zone" [not null, default: `now()`]
317
+ updated_at "timestamp with time zone" [not null, default: `now()`]
318
+ }
319
+
320
+ table embeddings {
321
+ id uuid [pk, not null, default: `gen_random_uuid()`]
322
+ chunk_id uuid [unique]
323
+ embeddings vector(1024)
324
+ model text
325
+ user_id text
326
+ }
327
+
328
+ table unstructured_chunks {
329
+ id uuid [pk, not null, default: `gen_random_uuid()`]
330
+ text text
331
+ metadata jsonb
332
+ index integer
333
+ type varchar
334
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
335
+ created_at "timestamp with time zone" [not null, default: `now()`]
336
+ updated_at "timestamp with time zone" [not null, default: `now()`]
337
+ parent_id varchar
338
+ composite_id uuid
339
+ user_id text
340
+ file_id varchar
341
+ }
342
+
343
+ table rag_eval_dataset_records {
344
+ id integer [pk, not null]
345
+ dataset_id integer [not null]
346
+ ideal text
347
+ question text
348
+ reference_files text[]
349
+ metadata jsonb
350
+ user_id text
351
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
352
+ created_at "timestamp with time zone" [not null, default: `now()`]
353
+ updated_at "timestamp with time zone" [not null, default: `now()`]
354
+ }
355
+
356
+ table rag_eval_datasets {
357
+ id integer [pk, not null]
358
+ description text
359
+ name text [not null]
360
+ knowledge_base_id text
361
+ user_id text
362
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
363
+ created_at "timestamp with time zone" [not null, default: `now()`]
364
+ updated_at "timestamp with time zone" [not null, default: `now()`]
365
+ }
366
+
367
+ table rag_eval_evaluations {
368
+ id integer [pk, not null]
369
+ name text [not null]
370
+ description text
371
+ eval_records_url text
372
+ status text
373
+ error jsonb
374
+ dataset_id integer [not null]
375
+ knowledge_base_id text
376
+ language_model text
377
+ embedding_model text
378
+ user_id text
379
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
380
+ created_at "timestamp with time zone" [not null, default: `now()`]
381
+ updated_at "timestamp with time zone" [not null, default: `now()`]
382
+ }
383
+
384
+ table rag_eval_evaluation_records {
385
+ id integer [pk, not null]
386
+ question text [not null]
387
+ answer text
388
+ context text[]
389
+ ideal text
390
+ status text
391
+ error jsonb
392
+ language_model text
393
+ embedding_model text
394
+ question_embedding_id uuid
395
+ duration integer
396
+ dataset_record_id integer [not null]
397
+ evaluation_id integer [not null]
398
+ user_id text
399
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
400
+ created_at "timestamp with time zone" [not null, default: `now()`]
401
+ updated_at "timestamp with time zone" [not null, default: `now()`]
402
+ }
403
+
404
+ table agents_to_sessions {
405
+ agent_id text [not null]
406
+ session_id text [not null]
407
+
408
+ indexes {
409
+ (agent_id, session_id) [pk]
410
+ }
411
+ }
412
+
413
+ table file_chunks {
414
+ file_id varchar
415
+ chunk_id uuid
416
+ created_at "timestamp with time zone" [not null, default: `now()`]
417
+
418
+ indexes {
419
+ (file_id, chunk_id) [pk]
420
+ }
421
+ }
422
+
423
+ table files_to_sessions {
424
+ file_id text [not null]
425
+ session_id text [not null]
426
+
427
+ indexes {
428
+ (file_id, session_id) [pk]
429
+ }
430
+ }
431
+
432
+ table session_groups {
433
+ id text [pk, not null]
434
+ name text [not null]
435
+ sort integer
436
+ user_id text [not null]
437
+ client_id text
438
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
439
+ created_at "timestamp with time zone" [not null, default: `now()`]
440
+ updated_at "timestamp with time zone" [not null, default: `now()`]
441
+
442
+ indexes {
443
+ (client_id, user_id) [name: 'session_group_client_id_user_unique', unique]
444
+ }
445
+ }
446
+
447
+ table sessions {
448
+ id text [pk, not null]
449
+ slug varchar(100) [not null]
450
+ title text
451
+ description text
452
+ avatar text
453
+ background_color text
454
+ type text [default: 'agent']
455
+ user_id text [not null]
456
+ group_id text
457
+ client_id text
458
+ pinned boolean [default: false]
459
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
460
+ created_at "timestamp with time zone" [not null, default: `now()`]
461
+ updated_at "timestamp with time zone" [not null, default: `now()`]
462
+
463
+ indexes {
464
+ (slug, user_id) [name: 'slug_user_id_unique', unique]
465
+ (client_id, user_id) [name: 'sessions_client_id_user_id_unique', unique]
466
+ }
467
+ }
468
+
469
+ table threads {
470
+ id text [pk, not null]
471
+ title text
472
+ type text [not null]
473
+ status text [default: 'active']
474
+ topic_id text [not null]
475
+ source_message_id text [not null]
476
+ parent_thread_id text
477
+ user_id text [not null]
478
+ last_active_at "timestamp with time zone" [default: `now()`]
479
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
480
+ created_at "timestamp with time zone" [not null, default: `now()`]
481
+ updated_at "timestamp with time zone" [not null, default: `now()`]
482
+ }
483
+
484
+ table topics {
485
+ id text [pk, not null]
486
+ title text
487
+ favorite boolean [default: false]
488
+ session_id text
489
+ user_id text [not null]
490
+ client_id text
491
+ history_summary text
492
+ metadata jsonb
493
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
494
+ created_at "timestamp with time zone" [not null, default: `now()`]
495
+ updated_at "timestamp with time zone" [not null, default: `now()`]
496
+
497
+ indexes {
498
+ (client_id, user_id) [name: 'topic_client_id_user_id_unique', unique]
499
+ }
500
+ }
501
+
502
+ table user_installed_plugins {
503
+ user_id text [not null]
504
+ identifier text [not null]
505
+ type text [not null]
506
+ manifest jsonb
507
+ settings jsonb
508
+ custom_params jsonb
509
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
510
+ created_at "timestamp with time zone" [not null, default: `now()`]
511
+ updated_at "timestamp with time zone" [not null, default: `now()`]
512
+
513
+ indexes {
514
+ (user_id, identifier) [pk]
515
+ }
516
+ }
517
+
518
+ table user_settings {
519
+ id text [pk, not null]
520
+ tts jsonb
521
+ key_vaults text
522
+ general jsonb
523
+ language_model jsonb
524
+ system_agent jsonb
525
+ default_agent jsonb
526
+ tool jsonb
527
+ }
528
+
529
+ table users {
530
+ id text [pk, not null]
531
+ username text [unique]
532
+ email text
533
+ avatar text
534
+ phone text
535
+ first_name text
536
+ last_name text
537
+ full_name text
538
+ is_onboarded boolean [default: false]
539
+ clerk_created_at "timestamp with time zone"
540
+ email_verified_at "timestamp with time zone"
541
+ preference jsonb
542
+ accessed_at "timestamp with time zone" [not null, default: `now()`]
543
+ created_at "timestamp with time zone" [not null, default: `now()`]
544
+ updated_at "timestamp with time zone" [not null, default: `now()`]
545
+ }
546
+
547
+ ref: agents_knowledge_bases.knowledge_base_id - knowledge_bases.id
548
+
549
+ ref: agents_knowledge_bases.agent_id > agents.id
550
+
551
+ ref: agents_to_sessions.session_id > sessions.id
552
+
553
+ ref: agents_to_sessions.agent_id > agents.id
554
+
555
+ ref: unstructured_chunks.file_id - files.id
556
+
557
+ ref: files.embedding_task_id - async_tasks.id
558
+
559
+ ref: messages.session_id - sessions.id
560
+
561
+ ref: messages.parent_id - messages.id
562
+
563
+ ref: messages.topic_id - topics.id
564
+
565
+ ref: threads.source_message_id - messages.id
566
+
567
+ ref: sessions.group_id - session_groups.id
568
+
569
+ ref: topics.session_id - sessions.id
@@ -76,6 +76,7 @@
76
76
  "custom": "نموذج مخصص، الإعداد الافتراضي يدعم الاستدعاء الوظيفي والتعرف البصري، يرجى التحقق من قدرة النموذج على القيام بذلك بناءً على الحالة الفعلية",
77
77
  "file": "يدعم هذا النموذج قراءة وتعرف الملفات المرفوعة",
78
78
  "functionCall": "يدعم هذا النموذج استدعاء الوظائف",
79
+ "imageOutput": "يدعم هذا النموذج إنشاء الصور",
79
80
  "reasoning": "يدعم هذا النموذج التفكير العميق",
80
81
  "search": "يدعم هذا النموذج البحث عبر الإنترنت",
81
82
  "tokens": "يدعم هذا النموذج حتى {{tokens}} رمزًا في جلسة واحدة",
@@ -833,6 +833,12 @@
833
833
  "gemini-2.0-flash-001": {
834
834
  "description": "Gemini 2.0 Flash يقدم ميزات وتحسينات من الجيل التالي، بما في ذلك سرعة فائقة، واستخدام أدوات أصلية، وتوليد متعدد الوسائط، ونافذة سياق تصل إلى 1M توكن."
835
835
  },
836
+ "gemini-2.0-flash-exp": {
837
+ "description": "نموذج جمنيس 2.0 فلاش، تم تحسينه لتحقيق أهداف مثل الكفاءة من حيث التكلفة وانخفاض الكمون."
838
+ },
839
+ "gemini-2.0-flash-exp-image-generation": {
840
+ "description": "نموذج تجريبي Gemini 2.0 Flash، يدعم توليد الصور"
841
+ },
836
842
  "gemini-2.0-flash-lite": {
837
843
  "description": "نموذج جمنّي 2.0 فلاش هو نسخة معدلة، تم تحسينها لتحقيق الكفاءة من حيث التكلفة والحد من التأخير."
838
844
  },
@@ -76,6 +76,7 @@
76
76
  "custom": "Потребителски модел, по подразбиране поддържа функционалност за функционални обаждания и визуално разпознаване, моля, потвърдете наличието на тези възможности спрямо реалните условия",
77
77
  "file": "Този модел поддържа качване на файлове и разпознаване",
78
78
  "functionCall": "Този модел поддържа функционални обаждания (Function Call)",
79
+ "imageOutput": "Този модел поддържа генериране на изображения",
79
80
  "reasoning": "Този модел поддържа дълбочинно мислене",
80
81
  "search": "Този модел поддържа търсене в мрежата",
81
82
  "tokens": "Този модел поддържа до {{tokens}} токена за една сесия",