pygpt-net 2.4.28__py3-none-any.whl → 2.4.34__py3-none-any.whl

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 (168) hide show
  1. CHANGELOG.md +40 -0
  2. README.md +62 -5
  3. pygpt_net/CHANGELOG.txt +40 -0
  4. pygpt_net/__init__.py +3 -3
  5. pygpt_net/controller/access/__init__.py +5 -5
  6. pygpt_net/controller/access/control.py +3 -2
  7. pygpt_net/controller/attachment.py +67 -1
  8. pygpt_net/controller/audio/__init__.py +34 -6
  9. pygpt_net/controller/chat/__init__.py +3 -1
  10. pygpt_net/controller/chat/attachment.py +239 -37
  11. pygpt_net/controller/chat/audio.py +99 -0
  12. pygpt_net/controller/chat/input.py +10 -3
  13. pygpt_net/controller/chat/output.py +4 -1
  14. pygpt_net/controller/chat/text.py +10 -5
  15. pygpt_net/controller/dialogs/confirm.py +17 -1
  16. pygpt_net/controller/kernel/reply.py +5 -8
  17. pygpt_net/controller/lang/custom.py +3 -1
  18. pygpt_net/controller/mode.py +2 -1
  19. pygpt_net/controller/presets/editor.py +11 -2
  20. pygpt_net/core/access/voice.py +2 -2
  21. pygpt_net/core/agents/legacy.py +3 -1
  22. pygpt_net/core/attachments/__init__.py +11 -7
  23. pygpt_net/core/attachments/context.py +226 -44
  24. pygpt_net/core/{audio.py → audio/__init__.py} +1 -1
  25. pygpt_net/core/audio/context.py +34 -0
  26. pygpt_net/core/bridge/context.py +29 -1
  27. pygpt_net/core/bridge/worker.py +16 -1
  28. pygpt_net/core/ctx/__init__.py +4 -1
  29. pygpt_net/core/db/__init__.py +4 -2
  30. pygpt_net/core/debug/attachments.py +3 -1
  31. pygpt_net/core/debug/context.py +5 -1
  32. pygpt_net/core/debug/presets.py +3 -1
  33. pygpt_net/core/docker/__init__.py +170 -16
  34. pygpt_net/core/docker/builder.py +6 -2
  35. pygpt_net/core/events/event.py +3 -1
  36. pygpt_net/core/experts/__init__.py +24 -6
  37. pygpt_net/core/idx/chat.py +55 -4
  38. pygpt_net/core/idx/indexing.py +123 -15
  39. pygpt_net/core/modes.py +3 -1
  40. pygpt_net/core/presets.py +13 -2
  41. pygpt_net/core/render/markdown/pid.py +2 -1
  42. pygpt_net/core/render/plain/pid.py +2 -1
  43. pygpt_net/core/render/web/body.py +34 -12
  44. pygpt_net/core/render/web/pid.py +2 -1
  45. pygpt_net/core/render/web/renderer.py +12 -3
  46. pygpt_net/core/tokens.py +4 -2
  47. pygpt_net/core/types/mode.py +2 -1
  48. pygpt_net/data/config/config.json +7 -4
  49. pygpt_net/data/config/models.json +191 -6
  50. pygpt_net/data/config/modes.json +11 -5
  51. pygpt_net/data/config/presets/current.audio.json +34 -0
  52. pygpt_net/data/config/settings.json +15 -1
  53. pygpt_net/data/css/web.css +70 -0
  54. pygpt_net/data/css/web.dark.css +4 -1
  55. pygpt_net/data/css/web.light.css +1 -1
  56. pygpt_net/data/locale/locale.de.ini +33 -20
  57. pygpt_net/data/locale/locale.en.ini +73 -58
  58. pygpt_net/data/locale/locale.es.ini +33 -20
  59. pygpt_net/data/locale/locale.fr.ini +35 -22
  60. pygpt_net/data/locale/locale.it.ini +33 -20
  61. pygpt_net/data/locale/locale.pl.ini +36 -23
  62. pygpt_net/data/locale/locale.uk.ini +33 -20
  63. pygpt_net/data/locale/locale.zh.ini +40 -27
  64. pygpt_net/data/locale/plugin.cmd_code_interpreter.de.ini +6 -0
  65. pygpt_net/data/locale/plugin.cmd_code_interpreter.en.ini +15 -7
  66. pygpt_net/data/locale/plugin.cmd_code_interpreter.es.ini +6 -0
  67. pygpt_net/data/locale/plugin.cmd_code_interpreter.fr.ini +6 -0
  68. pygpt_net/data/locale/plugin.cmd_code_interpreter.it.ini +6 -0
  69. pygpt_net/data/locale/plugin.cmd_code_interpreter.pl.ini +6 -0
  70. pygpt_net/data/locale/plugin.cmd_code_interpreter.uk.ini +6 -0
  71. pygpt_net/data/locale/plugin.cmd_code_interpreter.zh.ini +6 -0
  72. pygpt_net/data/locale/plugin.cmd_files.de.ini +4 -4
  73. pygpt_net/data/locale/plugin.cmd_files.en.ini +4 -4
  74. pygpt_net/data/locale/plugin.cmd_files.es.ini +4 -4
  75. pygpt_net/data/locale/plugin.cmd_files.fr.ini +4 -4
  76. pygpt_net/data/locale/plugin.cmd_files.it.ini +4 -4
  77. pygpt_net/data/locale/plugin.cmd_files.pl.ini +4 -4
  78. pygpt_net/data/locale/plugin.cmd_files.uk.ini +4 -4
  79. pygpt_net/data/locale/plugin.cmd_files.zh.ini +4 -4
  80. pygpt_net/data/locale/plugin.cmd_system.de.ini +6 -6
  81. pygpt_net/data/locale/plugin.cmd_system.en.ini +12 -6
  82. pygpt_net/data/locale/plugin.cmd_system.es.ini +6 -6
  83. pygpt_net/data/locale/plugin.cmd_system.fr.ini +6 -6
  84. pygpt_net/data/locale/plugin.cmd_system.it.ini +6 -6
  85. pygpt_net/data/locale/plugin.cmd_system.pl.ini +6 -6
  86. pygpt_net/data/locale/plugin.cmd_system.uk.ini +6 -6
  87. pygpt_net/data/locale/plugin.cmd_system.zh.ini +6 -6
  88. pygpt_net/data/locale/plugin.cmd_web.de.ini +5 -5
  89. pygpt_net/data/locale/plugin.cmd_web.en.ini +5 -5
  90. pygpt_net/data/locale/plugin.cmd_web.es.ini +5 -5
  91. pygpt_net/data/locale/plugin.cmd_web.fr.ini +5 -5
  92. pygpt_net/data/locale/plugin.cmd_web.it.ini +5 -5
  93. pygpt_net/data/locale/plugin.cmd_web.pl.ini +5 -5
  94. pygpt_net/data/locale/plugin.cmd_web.uk.ini +5 -5
  95. pygpt_net/data/locale/plugin.cmd_web.zh.ini +5 -5
  96. pygpt_net/data/locale/plugin.idx_llama_index.de.ini +12 -12
  97. pygpt_net/data/locale/plugin.idx_llama_index.en.ini +12 -12
  98. pygpt_net/data/locale/plugin.idx_llama_index.es.ini +12 -12
  99. pygpt_net/data/locale/plugin.idx_llama_index.fr.ini +12 -12
  100. pygpt_net/data/locale/plugin.idx_llama_index.it.ini +12 -12
  101. pygpt_net/data/locale/plugin.idx_llama_index.pl.ini +12 -12
  102. pygpt_net/data/locale/plugin.idx_llama_index.uk.ini +12 -12
  103. pygpt_net/data/locale/plugin.idx_llama_index.zh.ini +12 -12
  104. pygpt_net/item/attachment.py +9 -1
  105. pygpt_net/item/ctx.py +9 -1
  106. pygpt_net/item/preset.py +5 -1
  107. pygpt_net/launcher.py +3 -1
  108. pygpt_net/migrations/Version20241126170000.py +28 -0
  109. pygpt_net/migrations/__init__.py +3 -1
  110. pygpt_net/plugin/audio_input/__init__.py +11 -1
  111. pygpt_net/plugin/audio_input/worker.py +9 -1
  112. pygpt_net/plugin/audio_output/__init__.py +37 -7
  113. pygpt_net/plugin/audio_output/worker.py +38 -41
  114. pygpt_net/plugin/cmd_code_interpreter/__init__.py +51 -35
  115. pygpt_net/plugin/cmd_code_interpreter/builder.py +16 -4
  116. pygpt_net/plugin/cmd_code_interpreter/config.py +98 -39
  117. pygpt_net/plugin/cmd_code_interpreter/docker.py +4 -0
  118. pygpt_net/plugin/cmd_code_interpreter/ipython/__init__.py +13 -0
  119. pygpt_net/plugin/cmd_code_interpreter/{ipython.py → ipython/docker_kernel.py} +10 -3
  120. pygpt_net/plugin/cmd_code_interpreter/ipython/local_kernel.py +220 -0
  121. pygpt_net/plugin/cmd_code_interpreter/runner.py +5 -5
  122. pygpt_net/plugin/cmd_mouse_control/__init__.py +4 -2
  123. pygpt_net/plugin/cmd_system/config.py +50 -0
  124. pygpt_net/plugin/cmd_system/docker.py +4 -0
  125. pygpt_net/plugin/idx_llama_index/__init__.py +23 -1
  126. pygpt_net/plugin/idx_llama_index/worker.py +10 -0
  127. pygpt_net/plugin/openai_dalle/__init__.py +3 -1
  128. pygpt_net/plugin/openai_vision/__init__.py +3 -1
  129. pygpt_net/provider/core/attachment/json_file.py +4 -1
  130. pygpt_net/provider/core/config/patch.py +25 -0
  131. pygpt_net/provider/core/ctx/db_sqlite/storage.py +14 -4
  132. pygpt_net/provider/core/ctx/db_sqlite/utils.py +19 -2
  133. pygpt_net/provider/core/model/patch.py +7 -1
  134. pygpt_net/provider/core/preset/json_file.py +5 -1
  135. pygpt_net/provider/gpt/__init__.py +14 -2
  136. pygpt_net/provider/gpt/audio.py +63 -0
  137. pygpt_net/provider/gpt/chat.py +76 -44
  138. pygpt_net/provider/gpt/utils.py +27 -0
  139. pygpt_net/provider/gpt/vision.py +37 -15
  140. pygpt_net/provider/loaders/base.py +10 -1
  141. pygpt_net/provider/loaders/web_yt.py +19 -1
  142. pygpt_net/tools/code_interpreter/__init__.py +1 -0
  143. pygpt_net/tools/image_viewer/ui/dialogs.py +3 -1
  144. pygpt_net/ui/dialog/preset.py +3 -1
  145. pygpt_net/ui/dialog/url.py +29 -0
  146. pygpt_net/ui/dialogs.py +5 -1
  147. pygpt_net/ui/layout/chat/attachments.py +42 -6
  148. pygpt_net/ui/layout/chat/attachments_ctx.py +14 -4
  149. pygpt_net/ui/layout/chat/attachments_uploaded.py +8 -4
  150. pygpt_net/ui/layout/toolbox/agent.py +8 -7
  151. pygpt_net/ui/layout/toolbox/agent_llama.py +5 -4
  152. pygpt_net/ui/layout/toolbox/prompt.py +8 -6
  153. pygpt_net/ui/menu/tools.py +17 -11
  154. pygpt_net/ui/widget/anims/toggles.py +167 -0
  155. pygpt_net/ui/widget/dialog/url.py +59 -0
  156. pygpt_net/ui/widget/element/group.py +2 -1
  157. pygpt_net/ui/widget/lists/attachment.py +22 -17
  158. pygpt_net/ui/widget/lists/attachment_ctx.py +65 -3
  159. pygpt_net/ui/widget/option/checkbox.py +69 -5
  160. pygpt_net/ui/widget/option/cmd.py +4 -5
  161. pygpt_net/ui/widget/option/toggle.py +62 -0
  162. pygpt_net/ui/widget/option/toggle_label.py +79 -0
  163. pygpt_net/ui/widget/textarea/url.py +43 -0
  164. {pygpt_net-2.4.28.dist-info → pygpt_net-2.4.34.dist-info}/METADATA +65 -7
  165. {pygpt_net-2.4.28.dist-info → pygpt_net-2.4.34.dist-info}/RECORD +168 -154
  166. {pygpt_net-2.4.28.dist-info → pygpt_net-2.4.34.dist-info}/LICENSE +0 -0
  167. {pygpt_net-2.4.28.dist-info → pygpt_net-2.4.34.dist-info}/WHEEL +0 -0
  168. {pygpt_net-2.4.28.dist-info → pygpt_net-2.4.34.dist-info}/entry_points.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.4.28",
4
- "app.version": "2.4.28",
5
- "updated_at": "2024-11-24T00:00:00"
3
+ "version": "2.4.34",
4
+ "app.version": "2.4.34",
5
+ "updated_at": "2024-11-26T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "claude-3-5-sonnet-20240620": {
@@ -855,8 +855,8 @@
855
855
  ]
856
856
  },
857
857
  "ctx": 128000,
858
- "tokens": 4096,
859
- "default": false
858
+ "tokens": 16384,
859
+ "default": true
860
860
  },
861
861
  "gpt-4o-mini": {
862
862
  "id": "gpt-4o-mini",
@@ -918,9 +918,194 @@
918
918
  ]
919
919
  },
920
920
  "ctx": 128000,
921
- "tokens": 4096,
921
+ "tokens": 16384,
922
922
  "default": false
923
923
  },
924
+ "gpt-4o-audio-preview": {
925
+ "id": "gpt-4o-audio-preview",
926
+ "name": "gpt-4o-audio-preview",
927
+ "mode": [
928
+ "audio"
929
+ ],
930
+ "langchain": {
931
+ "provider": "openai",
932
+ "mode": [
933
+ "chat"
934
+ ],
935
+ "args": [
936
+ {
937
+ "name": "model_name",
938
+ "value": "gpt-4o-audio-preview",
939
+ "type": "str"
940
+ }
941
+ ],
942
+ "env": [
943
+ {
944
+ "name": "OPENAI_API_KEY",
945
+ "value": "{api_key}"
946
+ },
947
+ {
948
+ "name": "OPENAI_API_BASE",
949
+ "value": "{api_endpoint}"
950
+ }
951
+ ]
952
+ },
953
+ "llama_index": {
954
+ "provider": "openai",
955
+ "mode": [
956
+ "chat"
957
+ ],
958
+ "args": [
959
+ {
960
+ "name": "model",
961
+ "value": "gpt-4o-audio-preview",
962
+ "type": "str"
963
+ }
964
+ ],
965
+ "env": [
966
+ {
967
+ "name": "OPENAI_API_KEY",
968
+ "value": "{api_key}"
969
+ },
970
+ {
971
+ "name": "OPENAI_API_BASE",
972
+ "value": "{api_endpoint}"
973
+ }
974
+ ]
975
+ },
976
+ "ctx": 128000,
977
+ "tokens": 16384,
978
+ "default": false,
979
+ "multimodal": []
980
+ },
981
+ "gpt-4o-2024-11-20": {
982
+ "id": "gpt-4o-2024-11-20",
983
+ "name": "gpt-4o-2024-11-20",
984
+ "mode": [
985
+ "chat",
986
+ "assistant",
987
+ "langchain",
988
+ "llama_index",
989
+ "vision",
990
+ "agent",
991
+ "expert",
992
+ "agent_llama"
993
+ ],
994
+ "langchain": {
995
+ "provider": "openai",
996
+ "mode": [
997
+ "chat"
998
+ ],
999
+ "args": [
1000
+ {
1001
+ "name": "model_name",
1002
+ "value": "gpt-4o-2024-11-20",
1003
+ "type": "str"
1004
+ }
1005
+ ],
1006
+ "env": [
1007
+ {
1008
+ "name": "OPENAI_API_KEY",
1009
+ "value": "{api_key}"
1010
+ },
1011
+ {
1012
+ "name": "OPENAI_API_BASE",
1013
+ "value": "{api_endpoint}"
1014
+ }
1015
+ ]
1016
+ },
1017
+ "llama_index": {
1018
+ "provider": "openai",
1019
+ "mode": [
1020
+ "chat"
1021
+ ],
1022
+ "args": [
1023
+ {
1024
+ "name": "model",
1025
+ "value": "gpt-4o-2024-11-20",
1026
+ "type": "str"
1027
+ }
1028
+ ],
1029
+ "env": [
1030
+ {
1031
+ "name": "OPENAI_API_KEY",
1032
+ "value": "{api_key}"
1033
+ },
1034
+ {
1035
+ "name": "OPENAI_API_BASE",
1036
+ "value": "{api_endpoint}"
1037
+ }
1038
+ ]
1039
+ },
1040
+ "ctx": 128000,
1041
+ "tokens": 16384,
1042
+ "default": false,
1043
+ "multimodal": []
1044
+ },
1045
+ "chatgpt-4o-latest": {
1046
+ "id": "chatgpt-4o-latest",
1047
+ "name": "chatgpt-4o-latest",
1048
+ "mode": [
1049
+ "chat",
1050
+ "assistant",
1051
+ "langchain",
1052
+ "llama_index",
1053
+ "vision",
1054
+ "agent",
1055
+ "expert",
1056
+ "agent_llama"
1057
+ ],
1058
+ "langchain": {
1059
+ "provider": "openai",
1060
+ "mode": [
1061
+ "chat"
1062
+ ],
1063
+ "args": [
1064
+ {
1065
+ "name": "model_name",
1066
+ "value": "chatgpt-4o-latest",
1067
+ "type": "str"
1068
+ }
1069
+ ],
1070
+ "env": [
1071
+ {
1072
+ "name": "OPENAI_API_KEY",
1073
+ "value": "{api_key}"
1074
+ },
1075
+ {
1076
+ "name": "OPENAI_API_BASE",
1077
+ "value": "{api_endpoint}"
1078
+ }
1079
+ ]
1080
+ },
1081
+ "llama_index": {
1082
+ "provider": "openai",
1083
+ "mode": [
1084
+ "chat"
1085
+ ],
1086
+ "args": [
1087
+ {
1088
+ "name": "model",
1089
+ "value": "chatgpt-4o-latest",
1090
+ "type": "str"
1091
+ }
1092
+ ],
1093
+ "env": [
1094
+ {
1095
+ "name": "OPENAI_API_KEY",
1096
+ "value": "{api_key}"
1097
+ },
1098
+ {
1099
+ "name": "OPENAI_API_BASE",
1100
+ "value": "{api_endpoint}"
1101
+ }
1102
+ ]
1103
+ },
1104
+ "ctx": 128000,
1105
+ "tokens": 16384,
1106
+ "default": false,
1107
+ "multimodal": []
1108
+ },
924
1109
  "gpt-4-32k": {
925
1110
  "id": "gpt-4-32k",
926
1111
  "name": "gpt-4-32k",
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "__meta__": {
3
- "version": "2.4.28",
4
- "app.version": "2.4.28",
5
- "updated_at": "2024-11-24T00:00:00"
3
+ "version": "2.4.34",
4
+ "app.version": "2.4.34",
5
+ "updated_at": "2024-11-26T00:00:00"
6
6
  },
7
7
  "items": {
8
8
  "chat": {
@@ -11,6 +11,12 @@
11
11
  "label": "mode.chat",
12
12
  "default": true
13
13
  },
14
+ "audio": {
15
+ "id": "audio",
16
+ "name": "audio",
17
+ "label": "mode.audio",
18
+ "default": false
19
+ },
14
20
  "completion": {
15
21
  "id": "completion",
16
22
  "name": "completion",
@@ -43,13 +49,13 @@
43
49
  },
44
50
  "llama_index": {
45
51
  "id": "llama_index",
46
- "name": "Index (Llama-index)",
52
+ "name": "Index (LlamaIndex)",
47
53
  "label": "mode.llama_index",
48
54
  "default": false
49
55
  },
50
56
  "agent_llama": {
51
57
  "id": "agent_llama",
52
- "name": "Agent (Llama-index)",
58
+ "name": "Agent (LlamaIndex)",
53
59
  "label": "mode.agent_llama",
54
60
  "default": false
55
61
  },
@@ -0,0 +1,34 @@
1
+ {
2
+ "uuid": "9e6b1ef4-24f8-4fe7-b8a8-b71f73daf14d",
3
+ "name": "*",
4
+ "ai_name": "",
5
+ "user_name": "",
6
+ "prompt": "",
7
+ "chat": false,
8
+ "completion": false,
9
+ "img": false,
10
+ "vision": false,
11
+ "langchain": false,
12
+ "assistant": false,
13
+ "llama_index": false,
14
+ "agent": false,
15
+ "agent_llama": false,
16
+ "expert": false,
17
+ "audio": true,
18
+ "temperature": 1.0,
19
+ "filename": "current.audio",
20
+ "model": null,
21
+ "tools": {
22
+ "function": []
23
+ },
24
+ "experts": [],
25
+ "idx": null,
26
+ "agent_provider": null,
27
+ "assistant_id": "",
28
+ "enabled": true,
29
+ "__meta__": {
30
+ "version": "2.4.34",
31
+ "app.version": "2.4.34",
32
+ "updated_at": "2024-11-26T22:06:18"
33
+ }
34
+ }
@@ -358,6 +358,20 @@
358
358
  "step": null,
359
359
  "advanced": false
360
360
  },
361
+ "ctx.attachment.query.model": {
362
+ "section": "files",
363
+ "type": "combo",
364
+ "use": "models",
365
+ "slider": false,
366
+ "label": "settings.ctx.attachment.query.model",
367
+ "description": "settings.ctx.attachment.query.model.desc",
368
+ "value": "gpt-4o-mini",
369
+ "min": null,
370
+ "max": null,
371
+ "multiplier": null,
372
+ "step": null,
373
+ "advanced": false
374
+ },
361
375
  "download.dir": {
362
376
  "section": "files",
363
377
  "type": "text",
@@ -1461,7 +1475,7 @@
1461
1475
  "section": "developer",
1462
1476
  "type": "bool",
1463
1477
  "slider": false,
1464
- "label": "Log Llama-index usage to console",
1478
+ "label": "Log LlamaIndex usage to console",
1465
1479
  "value": false,
1466
1480
  "min": null,
1467
1481
  "max": null,
@@ -26,10 +26,76 @@ body {{
26
26
  -webkit-border-radius: 1ex;
27
27
  -webkit-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.75);
28
28
  }}
29
+ a {{
30
+ text-decoration: none;
31
+ color: #a1b5c4 !important;
32
+ }}
33
+ a:hover {{
34
+ cursor: pointer !important;
35
+ text-decoration: underline;
36
+ }}
29
37
  p {{
30
38
  margin-top: 5px;
31
39
  margin-bottom: 5px;
32
40
  }}
41
+ .extra-src-icon {{
42
+ padding-right: 2px;
43
+ }}
44
+ .extra-src-img-box {{
45
+ display: inline-block;
46
+ text-align: center;
47
+ padding: 5px;
48
+ margin: 5px;
49
+ max-width: 400px;
50
+ height: auto;
51
+ white-space: pre-wrap;
52
+ word-break: break-all !important;
53
+ }}
54
+ .extra-src-img-box:hover {{
55
+ cursor: pointer;
56
+ }}
57
+ .extra-src-img-box .title {{
58
+ width: 400px;
59
+ overflow: hidden;
60
+ white-space: nowrap;
61
+ text-overflow: ellipsis;
62
+ display: block;
63
+ text-align: center;
64
+ padding: 0;
65
+ margin: 0;
66
+ padding-top: 10px;
67
+ display: block;
68
+ font-size: 0.95rem;
69
+ }}
70
+ .extra-src-img-box .img-outer {{
71
+ display: flex;
72
+ flex-direction: column;
73
+ }}
74
+ .extra-src-img-box .img-wrapper {{
75
+ position: relative;
76
+ overflow: hidden;
77
+ border: 1px solid #000;
78
+ background: #000;
79
+ width: 400px;
80
+ height: 280px;
81
+ margin: 0;
82
+ margin-bottom: 0px !important;
83
+ border-radius: 5px;
84
+ -webkit-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
85
+ -moz-box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
86
+ box-shadow: 8px 8px 22px -16px rgba(0, 0, 0, 1);
87
+ }}
88
+ .extra-src-img-box .img-wrapper:hover {{
89
+ border: 1px solid gray;
90
+ }}
91
+ .extra-src-img-box img {{
92
+ margin-bottom: 2px;
93
+ padding-bottom: 0px;
94
+ display: block;
95
+ width: 100%;
96
+ height: 100%;
97
+ object-fit: cover;
98
+ }}
33
99
  .msg-user {{
34
100
  white-space: pre-wrap;
35
101
  width: auto;
@@ -52,6 +118,10 @@ p {{
52
118
  .msg-extra {{
53
119
  margin-top: 10px;
54
120
  margin-bottom: 0px;
121
+ color: gray;
122
+ }}
123
+ .msg-extra a {{
124
+ color: gray;
55
125
  }}
56
126
  .msg-user .msg-extra {{
57
127
  font-weight: bold;
@@ -15,7 +15,10 @@ body {{
15
15
  background: #232629;
16
16
  }}
17
17
  a {{
18
- color: #fff;
18
+ color: #a1b5c4 !important;
19
+ }}
20
+ a:hover {{
21
+ color: #b8cad7 !important;
19
22
  }}
20
23
  .msg-user {{
21
24
  color: #cbcbcb !important;
@@ -18,7 +18,7 @@ p {{
18
18
  color: #000;
19
19
  }}
20
20
  a {{
21
- color: #000;
21
+ color: #3b7097 !important;
22
22
  }}
23
23
  .msg-user {{
24
24
  color: #2c2c2c !important;
@@ -8,7 +8,7 @@ about.thanks.sponsors = Sponsoren
8
8
  about.thanks.supporters = Unterstützer
9
9
  action.add = Hinzufügen
10
10
  action.clear = Löschen
11
- action.cmd.expand = zeigen/verbergen Ausgabe
11
+ action.cmd.expand = JSON-Ausgabe
12
12
  action.copy = Kopieren
13
13
  action.ctx_copy_id = ID kopieren
14
14
  action.ctx.indexed = Zuletzt indiziert am
@@ -23,12 +23,15 @@ action.group.delete.all = Alles löschen (mit Elementen)
23
23
  action.group.delete.only = Löschen (nur Gruppe)
24
24
  action.group.new = Neue Gruppe
25
25
  action.group.remove = Aus Gruppe entfernen
26
- action.idx = Index with Llama-index...
26
+ action.idx = Index with LlamaIndex...
27
27
  action.idx.remove = Entfernen aus
28
28
  action.mkdir = Verzeichnis erstellen...
29
29
  action.move_to = Verschieben nach
30
30
  action.open = Öffnen
31
31
  action.open_dir = Im Verzeichnis öffnen...
32
+ action.open_dir_dest = Zielverzeichnis öffnen
33
+ action.open_dir_src = Quellverzeichnis öffnen
34
+ action.open_dir_storage = Speicherverzeichnis öffnen
32
35
  action.paste = Einfügen
33
36
  action.pin = Oben anheften
34
37
  action.profile.delete = Profil entfernen (nur aus Liste)
@@ -93,21 +96,26 @@ assistant.tool.file_search = Chat mit Dateien
93
96
  assistant.tool.function = Werkzeug: Funktion
94
97
  assistant.tool.retrieval = Werkzeug: Abruf
95
98
  assistant.vector_store = Vektor Speicher
99
+ attachments.auto_index = Automatische Indizierung beim Hochladen
96
100
  attachments.btn.add = Datei hinzufügen
101
+ attachments.btn.add_url = URL
97
102
  attachments.btn.clear = Dateien löschen
98
103
  attachments.capture_clear = Beim Erfassen löschen
99
104
  attachments.clear.confirm = Liste löschen?
105
+ attachments.ctx.indexed = Ja
100
106
  attachments.ctx.label = Zusätzlicher Kontext
101
107
  attachments.ctx.mode.full = Vollständiger Kontext
102
108
  attachments.ctx.mode.off = Aus (deaktivieren)
103
109
  attachments.ctx.mode.query = Nur Abfrage
104
110
  attachments.ctx.mode.summary = Zusammenfassung
105
111
  attachments.delete.confirm = Datei aus der Liste entfernen?
112
+ attachments.header.idx = Index
106
113
  attachments.header.length = Länge (Zeichen / Tokens)
107
114
  attachments.header.name = Name
108
115
  attachments.header.path = Pfad
109
116
  attachments.header.size = Größe
110
117
  attachments.header.store = Vektor Speicher(e)
118
+ attachments.options.label = Optionen
111
119
  attachments.send_clear = Liste nach dem Senden löschen
112
120
  attachments.tab = Anhänge
113
121
  attachments_uploaded.btn.clear = Dateien löschen
@@ -163,7 +171,7 @@ chat.prefix.img = Bild
163
171
  chat.prefix.url = Link
164
172
  clipboard.copied = In die Zwischenablage kopiert.
165
173
  clipboard.copied_to = In die Zwischenablage kopiert:
166
- cmd.enabled = Werkzeuge
174
+ cmd.enabled = + Werkzeuge
167
175
  cmd.tip = Tipp: Um die Ausführung von Werkzeugen aus Plugins zu ermöglichen, müssen Sie die Option "+ Werkzeuge" aktivieren.
168
176
  coming_soon = Demnächst...
169
177
  confirm.assistant.delete = Assistent löschen?
@@ -334,6 +342,10 @@ dialog.start.link = https://platform.openai.com/account/api-keys
334
342
  dialog.start.settings.text = Wenn Sie bereits einen API-KEY haben, dann können Sie ihn im Einstellungsfenster konfigurieren.\nKlicken Sie auf die Schaltfläche EINSTELLUNGEN ÖFFNEN und fügen Sie dann Ihren API-KEY in das API-KEY-Feld ein.
335
343
  dialog.start.title = API-KEY ist noch nicht konfiguriert
336
344
  dialog.start.title.text = Ihr API-Schlüssel ist noch nicht konfiguriert...\nSie erhalten einen API-Schlüssel, indem Sie ein Konto auf der OpenAI-Website registrieren:
345
+ dialog.url.dismiss = Abbrechen
346
+ dialog.url.tip = Geben Sie die URL der Webseite an, die Sie als zusätzlichen Kontext anfügen möchten, z.B. https://de.wikipedia.org/wiki/Elon_Musk, oder ein YouTube-Video zur Transkription, z.B. https://www.youtube.com/watch?v=CRRlbK5w8AE.
347
+ dialog.url.title = URL
348
+ dialog.url.update = Hinzufügen
337
349
  dialog.workdir.change.confirm = Sind Sie sicher, dass Sie das Arbeitsverzeichnis zu folgendem ändern/verschieben möchten:\n{path}?
338
350
  dialog.workdir.change.empty.alert = Verzeichnis ist nicht leer! Vorgang wird abgebrochen.
339
351
  dialog.workdir.reset.btn = Aktuell
@@ -468,7 +480,7 @@ filter.ctx.counters.all = Alle Zähler
468
480
  filter.ctx.label = Filter zur Anzeige der Kontextliste
469
481
  filter.ctx.label.colors = Nach Labels anzeigen
470
482
  filter.ctx.radio.all = Alle
471
- filter.ctx.radio.indexed = Indiziert (llama-index)
483
+ filter.ctx.radio.indexed = Indiziert (LlamaIndex)
472
484
  filter.ctx.radio.labeled = Beschriftet
473
485
  filter.ctx.radio.pinned = Angepinnt
474
486
  header.assistant.tool.function.desc = Beschreibung
@@ -532,7 +544,7 @@ interpreter.edit = Bearbeitungsmodus
532
544
  interpreter.edit_label.edit = Code (Verlauf)
533
545
  interpreter.edit_label.output = Ausgabe
534
546
  interpreter.input.placeholder = Auszuführender Python-Code...
535
- ipython.docker.build.finish = Erfolg! Das Docker-Image für IPython wurde erstellt. Sie können jetzt die Ausführung des vorherigen Befehls erneut anfordern.
547
+ ipython.docker.build.finish = Erfolg! Das Docker-Image für IPython wurde erstellt.
536
548
  ipython.docker.build.start = Docker-Image wird erstellt... bitte warten...
537
549
  ipython.docker.install = Für die Ausführung von IPython muss Docker installiert sein. Docker wurde auf diesem System nicht erkannt. Bitte installieren Sie zuerst Docker; die Anweisungen finden Sie hier: https://docs.docker.com/engine/install/. Die Ausführung des aktuellen Befehls wurde pausiert.
538
550
  ipython.image.build = Das Docker-Image für IPython wurde noch nicht erstellt. Dies wird jetzt geschehen und es kann eine Weile dauern (aber es ist ein einmaliger Vorgang). Die Ausführung des Befehls wurde pausiert. Sobald das Image erstellt ist, führen Sie den Befehl bitte erneut aus.
@@ -614,12 +626,13 @@ menu.tray.screenshot = Fragen mit Screenshot...
614
626
  menu.video = Video
615
627
  menu.video.capture = Eingang: kamera
616
628
  menu.video.capture.auto = Automatische Bildaufnahme
617
- mode.agent = Agent (legacy)
618
- mode.agent_llama = Agent (Llama-index)
619
- mode.agent_llama.tooltip = Erweiterte Agenten (Llama-index)
629
+ mode.agent = Agent (Legacy)
630
+ mode.agent_llama = Agent (LlamaIndex)
631
+ mode.agent_llama.tooltip = Erweiterte Agenten (LlamaIndex)
620
632
  mode.agent.tooltip = Einfache Agenten (legacy)
621
633
  mode.assistant = Assistent
622
634
  mode.assistant.tooltip = Chat mittels Assistants API
635
+ mode.audio = Chat mit Audio
623
636
  mode.chat = Chat
624
637
  mode.chat.tooltip = Chatmodus (Standard)
625
638
  mode.completion = Vervollständigung
@@ -631,7 +644,7 @@ mode.img.tooltip = Bildgenerierung mit DALL-E
631
644
  mode.langchain = Langchain
632
645
  mode.langchain.tooltip = Chat mit Modellen von Langchain
633
646
  mode.llama_index = Chat mit Dateien
634
- mode.llama_index.tooltip = Chat mit zusätzlichem Kontext von Llama-index
647
+ mode.llama_index.tooltip = Chat mit zusätzlichem Kontext von LlamaIndex
635
648
  mode.vision = Vision
636
649
  mode.vision.tooltip = Bildanalyse mit GPT-4 Vision
637
650
  msg.agent.plan = Plan
@@ -671,8 +684,8 @@ preset.action.disable = Deaktivieren
671
684
  preset.action.duplicate = Duplizieren
672
685
  preset.action.edit = Bearbeiten
673
686
  preset.action.enable = Aktivieren
674
- preset.agent = Agent (legacy)
675
- preset.agent_llama = Agent (Llama-index)
687
+ preset.agent = Agent (Legacy)
688
+ preset.agent_llama = Agent (LlamaIndex)
676
689
  preset.agent_provider = Agentenanbieter
677
690
  preset.agent_provider.desc = Wählen Sie den Agententyp für das aktuelle Preset
678
691
  preset.ai_name = KI-Name
@@ -742,6 +755,11 @@ settings.app.env = Anwendungsumgebung (os.environ)
742
755
  settings.app.env.desc = Zusätzliche Umgebungsvariablen, die beim Start der Anwendung gesetzt werden sollen
743
756
  settings.check_updates = Beim Start nach Updates suchen
744
757
  settings.check_updates.bg = Im Hintergrund nach Updates suchen
758
+ settings.cmd.field.desc = Aktivieren Sie das `{cmd}`-Werkzeug.
759
+ settings.cmd.field.enable = Werkzeug: {cmd}
760
+ settings.cmd.field.instruction = Anweisung für das Modell
761
+ settings.cmd.field.params = JSON-Parameter (Werkzeugargumente)
762
+ settings.cmd.field.tooltip = Aktivieren Sie das `{cmd}`-Werkzeug
745
763
  settings.context_threshold = Kontextschwelle
746
764
  settings.ctx.audio = Audio-Symbol immer anzeigen
747
765
  settings.ctx.auto_summary = Kontext automatisch zusammenfassen
@@ -840,7 +858,7 @@ settings.section.files = Dateien und Anhänge
840
858
  settings.section.general = Allgemein
841
859
  settings.section.images = Bilder
842
860
  settings.section.layout = Layout
843
- settings.section.llama_index = Indizes (llama-index)
861
+ settings.section.llama_index = Indizes (LlamaIndex)
844
862
  settings.section.model = Modelle
845
863
  settings.section.updates = Aktualisierungen
846
864
  settings.section.vision = Vision
@@ -897,7 +915,7 @@ text.context_menu.copy_to.notepad = Notepad
897
915
  text.context_menu.find = Suchen...
898
916
  theme.dark = Dunkel
899
917
  theme.light = Hell
900
- tip.input.attachments = Hier können Sie Ihrer Nachricht Anhänge hinzufügen, wenn der Modus dies unterstützt. Hier können Sie Dateien zur Analyse im Assistant-Modus oder Bilder und von der Kamera erfasste Bilder zur Analyse im Vision-Modus senden.
918
+ tip.input.attachments = Hier können Sie Anhänge zur Nachricht hinzufügen, die Sie senden. Sie können Textdateien, Code-Dateien, PDFs, Dokumente, Tabellenkalkulationen und andere senden - sie werden als zusätzlicher Kontext in der Konversation verwendet. Sie können auch Bilder oder aufgenommene Fotos von einer Kamera zur Analyse senden.
901
919
  tip.input.attachments.ctx = Unten sind die hochgeladenen und indexierten Anhänge, die Sie als zusätzlichen Kontext verwenden können. Der zusätzliche Kontext steht für die gesamte obige Diskussion zur Verfügung. Optionen: Vollständiger Kontext - enthält den gesamten zusätzlichen Inhalt (roh) im System-Prompt, Nur Abfrage - fragt nur den indexierten Inhalt ab, Zusammenfassung - enthält eine Zusammenfassung des hinzugefügten Inhalts im Prompt, Aus - zusätzlichen Kontext deaktivieren.
902
920
  tip.input.attachments.uploaded = Hier ist eine Liste von Dateien, die im Assistant-Modus auf den Server hochgeladen wurden. Diese Dateien befinden sich auf einem entfernten Server und nicht auf Ihrem lokalen Computer, sodass das Modell sie mit extern auf dem entfernten Server verfügbaren Werkzeugen verwenden und analysieren kann.
903
921
  tip.output.tab.calendar = Mit dem Kalender können Sie zu ausgewählten Gesprächen von einem bestimmten Tag navigieren. Klicken Sie in den Kalender auf einen Tag, um die Anzeige des Chat-Verlaufs auf diesen Tag zu beschränken. Sie können auch Tagesnotizen erstellen und ihnen farbige Etiketten zuweisen.
@@ -946,7 +964,7 @@ tool.indexer.menu.file.remove_idx = Index entfernen
946
964
  tool.indexer.option.clear = Dateiliste nach Indexierung löschen
947
965
  tool.indexer.option.recursive = Rekursiv (Unterverzeichnisse einschließen)
948
966
  tool.indexer.option.replace = Die alte Dokumentenversion aus dem Index entfernen (falls vorhanden)
949
- tool.indexer.status = Ausgabe-Protokoll (Llama-index):
967
+ tool.indexer.status = Ausgabe-Protokoll (LlamaIndex):
950
968
  tool.indexer.tab.browser = idx durchsuchen
951
969
  tool.indexer.tab.browse.tip = Aktuell indizierte Elemente durchsuchen oder entfernen (hier wird die Datenbankzuordnung zum Index angezeigt).
952
970
  tool.indexer.tab.ctx = Kontext
@@ -963,7 +981,7 @@ tool.indexer.tab.files.path.dir = Verzeichnis auswählen:
963
981
  tool.indexer.tab.files.path.files = Datei(en) auswählen:
964
982
  tool.indexer.tab.files.tip = Wählen Sie Datei(en) oder Verzeichnis, um Dateien in den ausgewählten Index einzubetten. Der Datenlader wird automatisch basierend auf der Dateierweiterung ausgewählt.
965
983
  tool.indexer.tab.web = Web
966
- tool.indexer.tab.web.cfg = Konfiguration (globale Einstellungen) - Einstellungen -> Llama-index -> Datenlader
984
+ tool.indexer.tab.web.cfg = Konfiguration (globale Einstellungen) - Einstellungen -> LlamaIndex -> Datenlader
967
985
  tool.indexer.tab.web.help = Hilfe
968
986
  tool.indexer.tab.web.loader = Datenlader
969
987
  tool.indexer.tab.web.source = Datenquelle
@@ -993,8 +1011,3 @@ vision.capture.manual.captured.success = Bild von der Kamera aufgenommen:
993
1011
  vision.capture.name.prefix = Kameraaufnahme:
994
1012
  vision.capture.options.title = Videoaufnahme
995
1013
  vision.checkbox.tooltip = Wenn aktiviert, ist das Vision-Modell aktiv. Es wird automatisch beim Hochladen eines Bildes aktiviert. Sie können es in Echtzeit deaktivieren.
996
- settings.cmd.field.desc = Aktivieren Sie das `{cmd}`-Werkzeug.
997
- settings.cmd.field.enable = Werkzeug: {cmd}
998
- settings.cmd.field.instruction = Anweisung für das Modell
999
- settings.cmd.field.params = JSON-Parameter (Werkzeugargumente)
1000
- settings.cmd.field.tooltip = Aktivieren Sie das `{cmd}`-Werkzeug