cozy-search 2.1.1 → 2.2.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.
- package/dist/components/Assistant/AssistantSelectionItem.js +7 -2
- package/dist/components/CreateAssistantSteps/BasicInfoStep.js +2 -2
- package/dist/components/adapters/CozyRealtimeChatAdapter.js +6 -3
- package/dist/components/adapters/CozyRealtimeChatAdapter.spec.ts +70 -0
- package/dist/locales/en.json +14 -15
- package/dist/locales/fr.json +14 -15
- package/dist/locales/index.js +86 -62
- package/dist/locales/ru.json +29 -16
- package/dist/locales/vi.json +29 -16
- package/package.json +3 -3
|
@@ -25,6 +25,8 @@ var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typog
|
|
|
25
25
|
|
|
26
26
|
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
27
27
|
|
|
28
|
+
var _twakeI18n = require("twake-i18n");
|
|
29
|
+
|
|
28
30
|
var _AssistantAvatar = _interopRequireDefault(require("../Assistant/AssistantAvatar"));
|
|
29
31
|
|
|
30
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -61,6 +63,9 @@ var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
|
|
|
61
63
|
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
62
64
|
isMobile = _useBreakpoints.isMobile;
|
|
63
65
|
|
|
66
|
+
var _useI18n = (0, _twakeI18n.useI18n)(),
|
|
67
|
+
t = _useI18n.t;
|
|
68
|
+
|
|
64
69
|
var handleSelect = function handleSelect(assistant) {
|
|
65
70
|
onSelect(assistant);
|
|
66
71
|
onClose();
|
|
@@ -119,7 +124,7 @@ var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
|
|
|
119
124
|
}), !disableActions && /*#__PURE__*/_react.default.createElement("div", {
|
|
120
125
|
className: styles['menu-item-actions']
|
|
121
126
|
}, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
122
|
-
"aria-label":
|
|
127
|
+
"aria-label": t('assistant_edit.title'),
|
|
123
128
|
size: "small",
|
|
124
129
|
className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, styles['menu-item-icon-button'], !isMobile || !isSelected && isMobile), (0, _defineProperty2.default)(_cx, 'u-db', isSelected && isMobile), _cx)),
|
|
125
130
|
onClick: handleEdit
|
|
@@ -127,7 +132,7 @@ var AssistantSelectionItem = function AssistantSelectionItem(_ref) {
|
|
|
127
132
|
icon: _twakeIcons.Pen,
|
|
128
133
|
color: "var(--primaryColor)"
|
|
129
134
|
})), /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
130
|
-
"aria-label":
|
|
135
|
+
"aria-label": t('assistant_delete.title'),
|
|
131
136
|
size: "small",
|
|
132
137
|
className: (0, _classnames.default)((_cx2 = {}, (0, _defineProperty2.default)(_cx2, styles['menu-item-icon-button'], !isMobile || !isSelected && isMobile), (0, _defineProperty2.default)(_cx2, 'u-db', isSelected && isMobile), _cx2)),
|
|
133
138
|
onClick: handleDelete
|
|
@@ -125,11 +125,11 @@ var BasicInfoStep = function BasicInfoStep(_ref) {
|
|
|
125
125
|
}, /*#__PURE__*/_react.default.createElement(_Typography.default, {
|
|
126
126
|
variant: "h6",
|
|
127
127
|
className: "u-mb-half"
|
|
128
|
-
}, t('assistant_create.steps.basic_info.
|
|
128
|
+
}, t('assistant_create.steps.basic_info.description_label')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
|
|
129
129
|
fullWidth: true,
|
|
130
130
|
multiline: true,
|
|
131
131
|
rows: 6,
|
|
132
|
-
placeholder: t('assistant_create.steps.basic_info.
|
|
132
|
+
placeholder: t('assistant_create.steps.basic_info.description_placeholder'),
|
|
133
133
|
value: description,
|
|
134
134
|
onChange: onChange('description'),
|
|
135
135
|
variant: "outlined"
|
|
@@ -17,6 +17,8 @@ var _wrapAsyncGenerator2 = _interopRequireDefault(require("@babel/runtime/helper
|
|
|
17
17
|
|
|
18
18
|
var _cozyMinilog = _interopRequireDefault(require("cozy-minilog"));
|
|
19
19
|
|
|
20
|
+
var _constants = require("../constants");
|
|
21
|
+
|
|
20
22
|
var _helpers = require("../helpers");
|
|
21
23
|
|
|
22
24
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -109,10 +111,11 @@ var createCozyRealtimeChatAdapter = function createCozyRealtimeChatAdapter(optio
|
|
|
109
111
|
|
|
110
112
|
case 13:
|
|
111
113
|
_context.next = 15;
|
|
112
|
-
return (0, _awaitAsyncGenerator2.default)(client.stackClient.fetchJSON('POST', "/ai/chat/conversations/".concat(conversationId), _objectSpread({
|
|
113
|
-
q: userQuery
|
|
114
|
+
return (0, _awaitAsyncGenerator2.default)(client.stackClient.fetchJSON('POST', "/ai/chat/conversations/".concat(conversationId), _objectSpread(_objectSpread({
|
|
115
|
+
q: userQuery
|
|
116
|
+
}, assistantId && assistantId !== _constants.DEFAULT_ASSISTANT._id && {
|
|
114
117
|
assistantID: assistantId
|
|
115
|
-
}, websearchEnabled && {
|
|
118
|
+
}), websearchEnabled && {
|
|
116
119
|
websearch: true
|
|
117
120
|
})));
|
|
118
121
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ChatModelRunOptions } from '@assistant-ui/react'
|
|
2
|
+
|
|
3
|
+
import { createCozyRealtimeChatAdapter } from './CozyRealtimeChatAdapter'
|
|
4
|
+
import type { StreamBridge } from './StreamBridge'
|
|
5
|
+
import { DEFAULT_ASSISTANT } from '../constants'
|
|
6
|
+
|
|
7
|
+
const makeStreamBridge = (): StreamBridge =>
|
|
8
|
+
({
|
|
9
|
+
createStream: jest.fn(async function* () {
|
|
10
|
+
// no chunks
|
|
11
|
+
}),
|
|
12
|
+
getSources: jest.fn(() => null),
|
|
13
|
+
cleanup: jest.fn()
|
|
14
|
+
}) as unknown as StreamBridge
|
|
15
|
+
|
|
16
|
+
const makeRunOptions = (): ChatModelRunOptions =>
|
|
17
|
+
({
|
|
18
|
+
messages: [{ role: 'user', content: [{ type: 'text', text: 'hello' }] }],
|
|
19
|
+
abortSignal: undefined
|
|
20
|
+
}) as unknown as ChatModelRunOptions
|
|
21
|
+
|
|
22
|
+
const runAdapter = async (assistantId?: string): Promise<jest.Mock> => {
|
|
23
|
+
const fetchJSON = jest.fn().mockResolvedValue({})
|
|
24
|
+
const adapter = createCozyRealtimeChatAdapter(
|
|
25
|
+
{
|
|
26
|
+
client: { stackClient: { fetchJSON } },
|
|
27
|
+
conversationId: 'conv-1',
|
|
28
|
+
assistantId
|
|
29
|
+
},
|
|
30
|
+
key => key,
|
|
31
|
+
{ current: makeStreamBridge() }
|
|
32
|
+
)
|
|
33
|
+
const generator = adapter.run(makeRunOptions()) as AsyncGenerator<unknown>
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
35
|
+
for await (const _ of generator) {
|
|
36
|
+
// drain the generator
|
|
37
|
+
}
|
|
38
|
+
return fetchJSON
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
describe('CozyRealtimeChatAdapter', () => {
|
|
42
|
+
it('sends the assistantID for a real assistant', async () => {
|
|
43
|
+
const fetchJSON = await runAdapter('real-assistant-id')
|
|
44
|
+
expect(fetchJSON).toHaveBeenCalledWith(
|
|
45
|
+
'POST',
|
|
46
|
+
'/ai/chat/conversations/conv-1',
|
|
47
|
+
expect.objectContaining({ assistantID: 'real-assistant-id' })
|
|
48
|
+
)
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
it('omits the assistantID for the default assistant sentinel', async () => {
|
|
52
|
+
const fetchJSON = await runAdapter(DEFAULT_ASSISTANT._id)
|
|
53
|
+
const [, , body] = fetchJSON.mock.calls[0] as [
|
|
54
|
+
string,
|
|
55
|
+
string,
|
|
56
|
+
Record<string, unknown>
|
|
57
|
+
]
|
|
58
|
+
expect(body).not.toHaveProperty('assistantID')
|
|
59
|
+
})
|
|
60
|
+
|
|
61
|
+
it('omits the assistantID when no assistant is selected', async () => {
|
|
62
|
+
const fetchJSON = await runAdapter(undefined)
|
|
63
|
+
const [, , body] = fetchJSON.mock.calls[0] as [
|
|
64
|
+
string,
|
|
65
|
+
string,
|
|
66
|
+
Record<string, unknown>
|
|
67
|
+
]
|
|
68
|
+
expect(body).not.toHaveProperty('assistantID')
|
|
69
|
+
})
|
|
70
|
+
})
|
package/dist/locales/en.json
CHANGED
|
@@ -79,18 +79,17 @@
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"assistant_create": {
|
|
82
|
-
"title": "Create
|
|
82
|
+
"title": "Create Agent",
|
|
83
83
|
"steps": {
|
|
84
84
|
"basic_info": {
|
|
85
|
-
"description": "Customize your
|
|
85
|
+
"description": "Customize your agent. Choose its knowledge base, then its AI model.",
|
|
86
86
|
"avatar": "Avatar (optional)",
|
|
87
87
|
"name": "Name",
|
|
88
|
-
"name_placeholder": "Name your
|
|
89
|
-
"
|
|
90
|
-
"
|
|
88
|
+
"name_placeholder": "Name your agent",
|
|
89
|
+
"description_label": "Description",
|
|
90
|
+
"description_placeholder": "Optional description of this agent's role. This description will not be used by the AI",
|
|
91
91
|
"knowledge_base": "Knowledge Base (optional)",
|
|
92
92
|
"knowledge_base_placeholder": "Conversations may reveal some or all of the files that have been uploaded.",
|
|
93
|
-
"load_file": "Load files",
|
|
94
93
|
"from_drive": "From Drive",
|
|
95
94
|
"from_mail": "From Mail"
|
|
96
95
|
},
|
|
@@ -119,7 +118,7 @@
|
|
|
119
118
|
"external_warning": "Your data will be processed on external servers. This mode does not provide enhanced security protections."
|
|
120
119
|
},
|
|
121
120
|
"configuration": {
|
|
122
|
-
"description": "Enter provider URL, model and your API key to configure the new
|
|
121
|
+
"description": "Enter provider URL, model and your API key to configure the new agent. Your key will be stored securely.",
|
|
123
122
|
"custom_provider_description": "Configure your custom AI provider settings",
|
|
124
123
|
"model": {
|
|
125
124
|
"label": "Model",
|
|
@@ -145,25 +144,25 @@
|
|
|
145
144
|
"next": "Next",
|
|
146
145
|
"create": "Create"
|
|
147
146
|
},
|
|
148
|
-
"configure_api_key_title": "Configure a new
|
|
149
|
-
"configure_api_key_description": "Enter provider URL, model and your API key to configure the new
|
|
147
|
+
"configure_api_key_title": "Configure a new agent",
|
|
148
|
+
"configure_api_key_description": "Enter provider URL, model and your API key to configure the new agent. Your key will be stored securely.",
|
|
150
149
|
"from_drive": {
|
|
151
150
|
"actions": {
|
|
152
151
|
"cancel": "Cancel",
|
|
153
152
|
"add": "Add"
|
|
154
153
|
}
|
|
155
154
|
},
|
|
156
|
-
"success": "
|
|
155
|
+
"success": "Agent created successfully"
|
|
157
156
|
},
|
|
158
157
|
"assistant_edit": {
|
|
159
|
-
"title": "Edit
|
|
158
|
+
"title": "Edit Agent",
|
|
160
159
|
"buttons": {
|
|
161
160
|
"cancel": "Cancel",
|
|
162
161
|
"next": "Next",
|
|
163
162
|
"edit": "Edit"
|
|
164
163
|
},
|
|
165
|
-
"configure_api_key_title": "Configure your
|
|
166
|
-
"success": "
|
|
164
|
+
"configure_api_key_title": "Configure your agent",
|
|
165
|
+
"success": "Agent updated successfully"
|
|
167
166
|
},
|
|
168
167
|
"conversation_delete": {
|
|
169
168
|
"title": "Delete conversation",
|
|
@@ -174,8 +173,8 @@
|
|
|
174
173
|
}
|
|
175
174
|
},
|
|
176
175
|
"assistant_delete": {
|
|
177
|
-
"title": "Delete
|
|
178
|
-
"content": "Are you sure you want to delete %{name}? This action cannot be undone and will permanently remove this
|
|
176
|
+
"title": "Delete Agent",
|
|
177
|
+
"content": "Are you sure you want to delete %{name}? This action cannot be undone and will permanently remove this agent from your Twake.",
|
|
179
178
|
"buttons": {
|
|
180
179
|
"cancel": "Cancel",
|
|
181
180
|
"confirm": "Delete"
|
package/dist/locales/fr.json
CHANGED
|
@@ -79,18 +79,17 @@
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"assistant_create": {
|
|
82
|
-
"title": "Créer un
|
|
82
|
+
"title": "Créer un agent",
|
|
83
83
|
"steps": {
|
|
84
84
|
"basic_info": {
|
|
85
|
-
"description": "Personnalisez
|
|
85
|
+
"description": "Personnalisez votre agent. Choisissez la base de connaissances, puis son modèle d'IA.",
|
|
86
86
|
"avatar": "Avatar (optionnel)",
|
|
87
87
|
"name": "Nom",
|
|
88
|
-
"name_placeholder": "Nommez votre
|
|
89
|
-
"
|
|
90
|
-
"
|
|
88
|
+
"name_placeholder": "Nommez votre agent",
|
|
89
|
+
"description_label": "Description",
|
|
90
|
+
"description_placeholder": "Description optionnelle du rôle de cet agent. Cette description ne sera pas utilisée par l'IA",
|
|
91
91
|
"knowledge_base": "Base de connaissances (optionnel)",
|
|
92
92
|
"knowledge_base_placeholder": "Les conversations peuvent révéler une partie ou l'intégralité des fichiers qui ont été téléversés.",
|
|
93
|
-
"load_file": "Charger des fichiers",
|
|
94
93
|
"from_drive": "Depuis Drive",
|
|
95
94
|
"from_mail": "Depuis Mail"
|
|
96
95
|
},
|
|
@@ -119,7 +118,7 @@
|
|
|
119
118
|
"external_warning": "Vos données seront traitées sur des serveurs externes. Ce mode ne fournit pas de protections de sécurité renforcées."
|
|
120
119
|
},
|
|
121
120
|
"configuration": {
|
|
122
|
-
"description": "Saisissez l'URL du fournisseur, le modèle et votre clé API pour configurer le nouvel
|
|
121
|
+
"description": "Saisissez l'URL du fournisseur, le modèle et votre clé API pour configurer le nouvel agent. Votre clé sera stockée de manière sécurisée.",
|
|
123
122
|
"custom_provider_description": "Configurez les paramètres de votre fournisseur d'IA personnalisé",
|
|
124
123
|
"model": {
|
|
125
124
|
"label": "Modèle",
|
|
@@ -145,25 +144,25 @@
|
|
|
145
144
|
"next": "Suivant",
|
|
146
145
|
"create": "Créer"
|
|
147
146
|
},
|
|
148
|
-
"configure_api_key_title": "Configurer un nouvel
|
|
149
|
-
"configure_api_key_description": "Saisissez l'URL du fournisseur, le modèle et votre clé API pour configurer le nouvel
|
|
147
|
+
"configure_api_key_title": "Configurer un nouvel agent",
|
|
148
|
+
"configure_api_key_description": "Saisissez l'URL du fournisseur, le modèle et votre clé API pour configurer le nouvel agent. Votre clé sera stockée de manière sécurisée.",
|
|
150
149
|
"from_drive": {
|
|
151
150
|
"actions": {
|
|
152
151
|
"cancel": "Annuler",
|
|
153
152
|
"add": "Ajouter"
|
|
154
153
|
}
|
|
155
154
|
},
|
|
156
|
-
"success": "
|
|
155
|
+
"success": "Agent créé avec succès"
|
|
157
156
|
},
|
|
158
157
|
"assistant_edit": {
|
|
159
|
-
"title": "Modifier l'
|
|
158
|
+
"title": "Modifier l'agent",
|
|
160
159
|
"buttons": {
|
|
161
160
|
"cancel": "Annuler",
|
|
162
161
|
"next": "Suivant",
|
|
163
162
|
"edit": "Modifier"
|
|
164
163
|
},
|
|
165
|
-
"configure_api_key_title": "Configurer votre
|
|
166
|
-
"success": "
|
|
164
|
+
"configure_api_key_title": "Configurer votre agent",
|
|
165
|
+
"success": "Agent modifié avec succès"
|
|
167
166
|
},
|
|
168
167
|
"conversation_delete": {
|
|
169
168
|
"title": "Supprimer la conversation",
|
|
@@ -174,8 +173,8 @@
|
|
|
174
173
|
}
|
|
175
174
|
},
|
|
176
175
|
"assistant_delete": {
|
|
177
|
-
"title": "Supprimer l'
|
|
178
|
-
"content": "Êtes-vous sûr de vouloir supprimer %{name} ? Cette action ne peut pas être annulée et supprimera définitivement cet
|
|
176
|
+
"title": "Supprimer l'agent",
|
|
177
|
+
"content": "Êtes-vous sûr de vouloir supprimer %{name} ? Cette action ne peut pas être annulée et supprimera définitivement cet agent de votre Twake.",
|
|
179
178
|
"buttons": {
|
|
180
179
|
"cancel": "Annuler",
|
|
181
180
|
"confirm": "Supprimer"
|
package/dist/locales/index.js
CHANGED
|
@@ -85,18 +85,17 @@ var en = {
|
|
|
85
85
|
}
|
|
86
86
|
},
|
|
87
87
|
assistant_create: {
|
|
88
|
-
title: "Create
|
|
88
|
+
title: "Create Agent",
|
|
89
89
|
steps: {
|
|
90
90
|
basic_info: {
|
|
91
|
-
description: "Customize your
|
|
91
|
+
description: "Customize your agent. Choose its knowledge base, then its AI model.",
|
|
92
92
|
avatar: "Avatar (optional)",
|
|
93
93
|
name: "Name",
|
|
94
|
-
name_placeholder: "Name your
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
name_placeholder: "Name your agent",
|
|
95
|
+
description_label: "Description",
|
|
96
|
+
description_placeholder: "Optional description of this agent's role. This description will not be used by the AI",
|
|
97
97
|
knowledge_base: "Knowledge Base (optional)",
|
|
98
98
|
knowledge_base_placeholder: "Conversations may reveal some or all of the files that have been uploaded.",
|
|
99
|
-
load_file: "Load files",
|
|
100
99
|
from_drive: "From Drive",
|
|
101
100
|
from_mail: "From Mail"
|
|
102
101
|
},
|
|
@@ -125,7 +124,7 @@ var en = {
|
|
|
125
124
|
external_warning: "Your data will be processed on external servers. This mode does not provide enhanced security protections."
|
|
126
125
|
},
|
|
127
126
|
configuration: {
|
|
128
|
-
description: "Enter provider URL, model and your API key to configure the new
|
|
127
|
+
description: "Enter provider URL, model and your API key to configure the new agent. Your key will be stored securely.",
|
|
129
128
|
custom_provider_description: "Configure your custom AI provider settings",
|
|
130
129
|
model: {
|
|
131
130
|
label: "Model",
|
|
@@ -151,25 +150,25 @@ var en = {
|
|
|
151
150
|
next: "Next",
|
|
152
151
|
create: "Create"
|
|
153
152
|
},
|
|
154
|
-
configure_api_key_title: "Configure a new
|
|
155
|
-
configure_api_key_description: "Enter provider URL, model and your API key to configure the new
|
|
153
|
+
configure_api_key_title: "Configure a new agent",
|
|
154
|
+
configure_api_key_description: "Enter provider URL, model and your API key to configure the new agent. Your key will be stored securely.",
|
|
156
155
|
from_drive: {
|
|
157
156
|
actions: {
|
|
158
157
|
cancel: "Cancel",
|
|
159
158
|
add: "Add"
|
|
160
159
|
}
|
|
161
160
|
},
|
|
162
|
-
success: "
|
|
161
|
+
success: "Agent created successfully"
|
|
163
162
|
},
|
|
164
163
|
assistant_edit: {
|
|
165
|
-
title: "Edit
|
|
164
|
+
title: "Edit Agent",
|
|
166
165
|
buttons: {
|
|
167
166
|
cancel: "Cancel",
|
|
168
167
|
next: "Next",
|
|
169
168
|
edit: "Edit"
|
|
170
169
|
},
|
|
171
|
-
configure_api_key_title: "Configure your
|
|
172
|
-
success: "
|
|
170
|
+
configure_api_key_title: "Configure your agent",
|
|
171
|
+
success: "Agent updated successfully"
|
|
173
172
|
},
|
|
174
173
|
conversation_delete: {
|
|
175
174
|
title: "Delete conversation",
|
|
@@ -180,8 +179,8 @@ var en = {
|
|
|
180
179
|
}
|
|
181
180
|
},
|
|
182
181
|
assistant_delete: {
|
|
183
|
-
title: "Delete
|
|
184
|
-
content: "Are you sure you want to delete %{name}? This action cannot be undone and will permanently remove this
|
|
182
|
+
title: "Delete Agent",
|
|
183
|
+
content: "Are you sure you want to delete %{name}? This action cannot be undone and will permanently remove this agent from your Twake.",
|
|
185
184
|
buttons: {
|
|
186
185
|
cancel: "Cancel",
|
|
187
186
|
confirm: "Delete"
|
|
@@ -269,18 +268,17 @@ var fr = {
|
|
|
269
268
|
}
|
|
270
269
|
},
|
|
271
270
|
assistant_create: {
|
|
272
|
-
title: "Cr\xE9er un
|
|
271
|
+
title: "Cr\xE9er un agent",
|
|
273
272
|
steps: {
|
|
274
273
|
basic_info: {
|
|
275
|
-
description: "Personnalisez
|
|
274
|
+
description: "Personnalisez votre agent. Choisissez la base de connaissances, puis son mod\xE8le d'IA.",
|
|
276
275
|
avatar: "Avatar (optionnel)",
|
|
277
276
|
name: "Nom",
|
|
278
|
-
name_placeholder: "Nommez votre
|
|
279
|
-
|
|
280
|
-
|
|
277
|
+
name_placeholder: "Nommez votre agent",
|
|
278
|
+
description_label: "Description",
|
|
279
|
+
description_placeholder: "Description optionnelle du r\xF4le de cet agent. Cette description ne sera pas utilis\xE9e par l'IA",
|
|
281
280
|
knowledge_base: "Base de connaissances (optionnel)",
|
|
282
281
|
knowledge_base_placeholder: "Les conversations peuvent r\xE9v\xE9ler une partie ou l'int\xE9gralit\xE9 des fichiers qui ont \xE9t\xE9 t\xE9l\xE9vers\xE9s.",
|
|
283
|
-
load_file: "Charger des fichiers",
|
|
284
282
|
from_drive: "Depuis Drive",
|
|
285
283
|
from_mail: "Depuis Mail"
|
|
286
284
|
},
|
|
@@ -309,7 +307,7 @@ var fr = {
|
|
|
309
307
|
external_warning: "Vos donn\xE9es seront trait\xE9es sur des serveurs externes. Ce mode ne fournit pas de protections de s\xE9curit\xE9 renforc\xE9es."
|
|
310
308
|
},
|
|
311
309
|
configuration: {
|
|
312
|
-
description: "Saisissez l'URL du fournisseur, le mod\xE8le et votre cl\xE9 API pour configurer le nouvel
|
|
310
|
+
description: "Saisissez l'URL du fournisseur, le mod\xE8le et votre cl\xE9 API pour configurer le nouvel agent. Votre cl\xE9 sera stock\xE9e de mani\xE8re s\xE9curis\xE9e.",
|
|
313
311
|
custom_provider_description: "Configurez les param\xE8tres de votre fournisseur d'IA personnalis\xE9",
|
|
314
312
|
model: {
|
|
315
313
|
label: "Mod\xE8le",
|
|
@@ -335,25 +333,25 @@ var fr = {
|
|
|
335
333
|
next: "Suivant",
|
|
336
334
|
create: "Cr\xE9er"
|
|
337
335
|
},
|
|
338
|
-
configure_api_key_title: "Configurer un nouvel
|
|
339
|
-
configure_api_key_description: "Saisissez l'URL du fournisseur, le mod\xE8le et votre cl\xE9 API pour configurer le nouvel
|
|
336
|
+
configure_api_key_title: "Configurer un nouvel agent",
|
|
337
|
+
configure_api_key_description: "Saisissez l'URL du fournisseur, le mod\xE8le et votre cl\xE9 API pour configurer le nouvel agent. Votre cl\xE9 sera stock\xE9e de mani\xE8re s\xE9curis\xE9e.",
|
|
340
338
|
from_drive: {
|
|
341
339
|
actions: {
|
|
342
340
|
cancel: "Annuler",
|
|
343
341
|
add: "Ajouter"
|
|
344
342
|
}
|
|
345
343
|
},
|
|
346
|
-
success: "
|
|
344
|
+
success: "Agent cr\xE9\xE9 avec succ\xE8s"
|
|
347
345
|
},
|
|
348
346
|
assistant_edit: {
|
|
349
|
-
title: "Modifier l'
|
|
347
|
+
title: "Modifier l'agent",
|
|
350
348
|
buttons: {
|
|
351
349
|
cancel: "Annuler",
|
|
352
350
|
next: "Suivant",
|
|
353
351
|
edit: "Modifier"
|
|
354
352
|
},
|
|
355
|
-
configure_api_key_title: "Configurer votre
|
|
356
|
-
success: "
|
|
353
|
+
configure_api_key_title: "Configurer votre agent",
|
|
354
|
+
success: "Agent modifi\xE9 avec succ\xE8s"
|
|
357
355
|
},
|
|
358
356
|
conversation_delete: {
|
|
359
357
|
title: "Supprimer la conversation",
|
|
@@ -364,8 +362,8 @@ var fr = {
|
|
|
364
362
|
}
|
|
365
363
|
},
|
|
366
364
|
assistant_delete: {
|
|
367
|
-
title: "Supprimer l'
|
|
368
|
-
content: "\xCAtes-vous s\xFBr de vouloir supprimer %{name}\xA0? Cette action ne peut pas \xEAtre annul\xE9e et supprimera d\xE9finitivement cet
|
|
365
|
+
title: "Supprimer l'agent",
|
|
366
|
+
content: "\xCAtes-vous s\xFBr de vouloir supprimer %{name}\xA0? Cette action ne peut pas \xEAtre annul\xE9e et supprimera d\xE9finitivement cet agent de votre Twake.",
|
|
369
367
|
buttons: {
|
|
370
368
|
cancel: "Annuler",
|
|
371
369
|
confirm: "Supprimer"
|
|
@@ -452,22 +450,35 @@ var ru = {
|
|
|
452
450
|
draft: "\u0427\u0435\u0440\u043D\u043E\u0432\u0438\u043A\u0438",
|
|
453
451
|
outbox: "\u0418\u0441\u0445\u043E\u0434\u044F\u0449\u0438\u0435",
|
|
454
452
|
spam: "\u0421\u043F\u0430\u043C",
|
|
455
|
-
search_in: "\u041F\u043E\u0438\u0441\u043A \u0432"
|
|
453
|
+
search_in: "\u041F\u043E\u0438\u0441\u043A \u0432",
|
|
454
|
+
drive: "Drive"
|
|
455
|
+
},
|
|
456
|
+
knowledge_base: {
|
|
457
|
+
change_folder: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u043F\u0430\u043F\u043A\u0443\u2026",
|
|
458
|
+
emails: "\u041F\u0438\u0441\u044C\u043C\u0430",
|
|
459
|
+
open_folder: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0432 Drive",
|
|
460
|
+
picker_error: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043A\u0440\u044B\u0442\u044C \u0432\u044B\u0431\u043E\u0440 \u043F\u0430\u043F\u043A\u0438 Drive. \u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",
|
|
461
|
+
remove: "\u0423\u0431\u0440\u0430\u0442\u044C \u043F\u0430\u043F\u043A\u0443",
|
|
462
|
+
remove_emails: "\u0423\u0431\u0440\u0430\u0442\u044C \u043F\u0438\u0441\u044C\u043C\u0430",
|
|
463
|
+
select_folder: "\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u044D\u0442\u0443 \u043F\u0430\u043F\u043A\u0443",
|
|
464
|
+
unavailable: "\u041F\u0430\u043F\u043A\u0430 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430"
|
|
465
|
+
},
|
|
466
|
+
websearch: {
|
|
467
|
+
label: "\u0412\u0435\u0431-\u043F\u043E\u0438\u0441\u043A"
|
|
456
468
|
}
|
|
457
469
|
},
|
|
458
470
|
assistant_create: {
|
|
459
|
-
title: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0430\
|
|
471
|
+
title: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
460
472
|
steps: {
|
|
461
473
|
basic_info: {
|
|
462
|
-
description: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \
|
|
474
|
+
description: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430. \u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0431\u0430\u0437\u0443 \u0437\u043D\u0430\u043D\u0438\u0439, \u0437\u0430\u0442\u0435\u043C \u043C\u043E\u0434\u0435\u043B\u044C \u0418\u0418.",
|
|
463
475
|
avatar: "\u0410\u0432\u0430\u0442\u0430\u0440 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
464
476
|
name: "\u0418\u043C\u044F",
|
|
465
|
-
name_placeholder: "\u041D\u0430\u0437\u043E\u0432\u0438\u0442\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u0430\
|
|
466
|
-
|
|
467
|
-
|
|
477
|
+
name_placeholder: "\u041D\u0430\u0437\u043E\u0432\u0438\u0442\u0435 \u0432\u0430\u0448\u0435\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
478
|
+
description_label: "\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435",
|
|
479
|
+
description_placeholder: "\u041D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0440\u043E\u043B\u0438 \u044D\u0442\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430. \u042D\u0442\u043E \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0418\u0418",
|
|
468
480
|
knowledge_base: "\u0411\u0430\u0437\u0430 \u0437\u043D\u0430\u043D\u0438\u0439 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E)",
|
|
469
481
|
knowledge_base_placeholder: "\u0412 \u0445\u043E\u0434\u0435 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u043E\u0432 \u043C\u043E\u0433\u0443\u0442 \u0431\u044B\u0442\u044C \u0440\u0430\u0441\u043A\u0440\u044B\u0442\u044B \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0438\u043B\u0438 \u0432\u0441\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B.",
|
|
470
|
-
load_file: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u0430\u0439\u043B\u044B",
|
|
471
482
|
from_drive: "\u0418\u0437 Drive",
|
|
472
483
|
from_mail: "\u0418\u0437 Mail"
|
|
473
484
|
},
|
|
@@ -496,7 +507,7 @@ var ru = {
|
|
|
496
507
|
external_warning: "\u0412\u0430\u0448\u0438 \u0434\u0430\u043D\u043D\u044B\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u0430\u0442\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u0432\u043D\u0435\u0448\u043D\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u042D\u0442\u043E\u0442 \u0440\u0435\u0436\u0438\u043C \u043D\u0435 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0443\u0441\u0438\u043B\u0435\u043D\u043D\u044B\u0445 \u043C\u0435\u0440 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438."
|
|
497
508
|
},
|
|
498
509
|
configuration: {
|
|
499
|
-
description: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u043C\u043E\u0434\u0435\u043B\u044C \u0438 \u0432\u0430\u0448 API\u2011\u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u043E\u0432\u043E\u0433\u043E \u0430\
|
|
510
|
+
description: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u043C\u043E\u0434\u0435\u043B\u044C \u0438 \u0432\u0430\u0448 API\u2011\u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u043E\u0432\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430. \u0412\u0430\u0448 \u043A\u043B\u044E\u0447 \u0431\u0443\u0434\u0435\u0442 \u043D\u0430\u0434\u0435\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D.",
|
|
500
511
|
custom_provider_description: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u0442\u0435 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u043E\u0431\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0433\u043E \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0418\u0418",
|
|
501
512
|
model: {
|
|
502
513
|
label: "\u041C\u043E\u0434\u0435\u043B\u044C",
|
|
@@ -522,25 +533,25 @@ var ru = {
|
|
|
522
533
|
next: "\u0414\u0430\u043B\u0435\u0435",
|
|
523
534
|
create: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C"
|
|
524
535
|
},
|
|
525
|
-
configure_api_key_title: "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0433\u043E \u0430\
|
|
526
|
-
configure_api_key_description: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u043C\u043E\u0434\u0435\u043B\u044C \u0438 \u0432\u0430\u0448 API\u2011\u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u043E\u0432\u043E\u0433\u043E \u0430\
|
|
536
|
+
configure_api_key_title: "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
537
|
+
configure_api_key_description: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 URL \u043F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u043C\u043E\u0434\u0435\u043B\u044C \u0438 \u0432\u0430\u0448 API\u2011\u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u043D\u043E\u0432\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430. \u0412\u0430\u0448 \u043A\u043B\u044E\u0447 \u0431\u0443\u0434\u0435\u0442 \u043D\u0430\u0434\u0435\u0436\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D.",
|
|
527
538
|
from_drive: {
|
|
528
539
|
actions: {
|
|
529
540
|
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
530
541
|
add: "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C"
|
|
531
542
|
}
|
|
532
543
|
},
|
|
533
|
-
success: "\u0410\
|
|
544
|
+
success: "\u0410\u0433\u0435\u043D\u0442 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0437\u0434\u0430\u043D"
|
|
534
545
|
},
|
|
535
546
|
assistant_edit: {
|
|
536
|
-
title: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\
|
|
547
|
+
title: "\u0420\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
537
548
|
buttons: {
|
|
538
549
|
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
539
550
|
next: "\u0414\u0430\u043B\u0435\u0435",
|
|
540
551
|
edit: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C"
|
|
541
552
|
},
|
|
542
|
-
configure_api_key_title: "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\
|
|
543
|
-
success: "\u0410\
|
|
553
|
+
configure_api_key_title: "\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
554
|
+
success: "\u0410\u0433\u0435\u043D\u0442 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0451\u043D"
|
|
544
555
|
},
|
|
545
556
|
conversation_delete: {
|
|
546
557
|
title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440",
|
|
@@ -551,8 +562,8 @@ var ru = {
|
|
|
551
562
|
}
|
|
552
563
|
},
|
|
553
564
|
assistant_delete: {
|
|
554
|
-
title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0430\
|
|
555
|
-
content: "\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C %{name}? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438 \u043E\u043D\u043E \u043D\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u0430\u043B\u0438\u0442 \u044D\u0442\u043E\u0433\u043E \u0430\
|
|
565
|
+
title: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0430\u0433\u0435\u043D\u0442\u0430",
|
|
566
|
+
content: "\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C %{name}? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043B\u044C\u0437\u044F \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438 \u043E\u043D\u043E \u043D\u0430\u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u0430\u043B\u0438\u0442 \u044D\u0442\u043E\u0433\u043E \u0430\u0433\u0435\u043D\u0442\u0430 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043E Twake.",
|
|
556
567
|
buttons: {
|
|
557
568
|
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
558
569
|
confirm: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C"
|
|
@@ -639,22 +650,35 @@ var vi = {
|
|
|
639
650
|
draft: "Nh\xE1p",
|
|
640
651
|
outbox: "H\u1ED9p th\u01B0 \u0111i",
|
|
641
652
|
spam: "Th\u01B0 r\xE1c",
|
|
642
|
-
search_in: "T\xECm ki\u1EBFm trong"
|
|
653
|
+
search_in: "T\xECm ki\u1EBFm trong",
|
|
654
|
+
drive: "Drive"
|
|
655
|
+
},
|
|
656
|
+
knowledge_base: {
|
|
657
|
+
change_folder: "Thay \u0111\u1ED5i th\u01B0 m\u1EE5c\u2026",
|
|
658
|
+
emails: "Email",
|
|
659
|
+
open_folder: "M\u1EDF trong Drive",
|
|
660
|
+
picker_error: "Kh\xF4ng th\u1EC3 m\u1EDF b\u1ED9 ch\u1ECDn th\u01B0 m\u1EE5c Drive. Vui l\xF2ng th\u1EED l\u1EA1i.",
|
|
661
|
+
remove: "G\u1EE1 th\u01B0 m\u1EE5c",
|
|
662
|
+
remove_emails: "G\u1EE1 email",
|
|
663
|
+
select_folder: "Ch\u1ECDn th\u01B0 m\u1EE5c n\xE0y",
|
|
664
|
+
unavailable: "Th\u01B0 m\u1EE5c kh\xF4ng kh\u1EA3 d\u1EE5ng"
|
|
665
|
+
},
|
|
666
|
+
websearch: {
|
|
667
|
+
label: "T\xECm ki\u1EBFm web"
|
|
643
668
|
}
|
|
644
669
|
},
|
|
645
670
|
assistant_create: {
|
|
646
|
-
title: "T\u1EA1o
|
|
671
|
+
title: "T\u1EA1o t\xE1c nh\xE2n",
|
|
647
672
|
steps: {
|
|
648
673
|
basic_info: {
|
|
649
|
-
description: "T\xF9y ch\u1EC9nh
|
|
674
|
+
description: "T\xF9y ch\u1EC9nh t\xE1c nh\xE2n c\u1EE7a b\u1EA1n. Ch\u1ECDn c\u01A1 s\u1EDF tri th\u1EE9c, sau \u0111\xF3 l\xE0 m\xF4 h\xECnh AI.",
|
|
650
675
|
avatar: "\u1EA2nh \u0111\u1EA1i di\u1EC7n (t\xF9y ch\u1ECDn)",
|
|
651
676
|
name: "T\xEAn",
|
|
652
|
-
name_placeholder: "\u0110\u1EB7t t\xEAn cho
|
|
653
|
-
|
|
654
|
-
|
|
677
|
+
name_placeholder: "\u0110\u1EB7t t\xEAn cho t\xE1c nh\xE2n c\u1EE7a b\u1EA1n",
|
|
678
|
+
description_label: "M\xF4 t\u1EA3",
|
|
679
|
+
description_placeholder: "M\xF4 t\u1EA3 t\xF9y ch\u1ECDn v\u1EC1 vai tr\xF2 c\u1EE7a t\xE1c nh\xE2n n\xE0y. M\xF4 t\u1EA3 n\xE0y s\u1EBD kh\xF4ng \u0111\u01B0\u1EE3c AI s\u1EED d\u1EE5ng",
|
|
655
680
|
knowledge_base: "C\u01A1 s\u1EDF tri th\u1EE9c (t\xF9y ch\u1ECDn)",
|
|
656
681
|
knowledge_base_placeholder: "C\xE1c cu\u1ED9c tr\xF2 chuy\u1EC7n c\xF3 th\u1EC3 l\xE0m l\u1ED9 m\u1ED9t ph\u1EA7n ho\u1EB7c to\xE0n b\u1ED9 c\xE1c t\u1EC7p \u0111\xE3 \u0111\u01B0\u1EE3c t\u1EA3i l\xEAn.",
|
|
657
|
-
load_file: "T\u1EA3i t\u1EC7p",
|
|
658
682
|
from_drive: "T\u1EEB Drive",
|
|
659
683
|
from_mail: "T\u1EEB Mail"
|
|
660
684
|
},
|
|
@@ -683,7 +707,7 @@ var vi = {
|
|
|
683
707
|
external_warning: "D\u1EEF li\u1EC7u c\u1EE7a b\u1EA1n s\u1EBD \u0111\u01B0\u1EE3c x\u1EED l\xFD tr\xEAn m\xE1y ch\u1EE7 b\xEAn ngo\xE0i. Ch\u1EBF \u0111\u1ED9 n\xE0y kh\xF4ng cung c\u1EA5p c\xE1c bi\u1EC7n ph\xE1p b\u1EA3o v\u1EC7 b\u1EA3o m\u1EADt n\xE2ng cao."
|
|
684
708
|
},
|
|
685
709
|
configuration: {
|
|
686
|
-
description: "Nh\u1EADp URL nh\xE0 cung c\u1EA5p, m\xF4 h\xECnh v\xE0 kh\xF3a API c\u1EE7a b\u1EA1n \u0111\u1EC3 \u0111\u1ECBnh c\u1EA5u h\xECnh
|
|
710
|
+
description: "Nh\u1EADp URL nh\xE0 cung c\u1EA5p, m\xF4 h\xECnh v\xE0 kh\xF3a API c\u1EE7a b\u1EA1n \u0111\u1EC3 \u0111\u1ECBnh c\u1EA5u h\xECnh t\xE1c nh\xE2n m\u1EDBi. Kh\xF3a c\u1EE7a b\u1EA1n s\u1EBD \u0111\u01B0\u1EE3c l\u01B0u tr\u1EEF an to\xE0n.",
|
|
687
711
|
custom_provider_description: "C\u1EA5u h\xECnh c\xE0i \u0111\u1EB7t nh\xE0 cung c\u1EA5p AI t\xF9y ch\u1EC9nh",
|
|
688
712
|
model: {
|
|
689
713
|
label: "M\xF4 h\xECnh",
|
|
@@ -709,25 +733,25 @@ var vi = {
|
|
|
709
733
|
next: "Ti\u1EBFp",
|
|
710
734
|
create: "T\u1EA1o"
|
|
711
735
|
},
|
|
712
|
-
configure_api_key_title: "C\u1EA5u h\xECnh
|
|
713
|
-
configure_api_key_description: "Nh\u1EADp URL nh\xE0 cung c\u1EA5p, m\xF4 h\xECnh v\xE0 kh\xF3a API c\u1EE7a b\u1EA1n \u0111\u1EC3 \u0111\u1ECBnh c\u1EA5u h\xECnh
|
|
736
|
+
configure_api_key_title: "C\u1EA5u h\xECnh t\xE1c nh\xE2n m\u1EDBi",
|
|
737
|
+
configure_api_key_description: "Nh\u1EADp URL nh\xE0 cung c\u1EA5p, m\xF4 h\xECnh v\xE0 kh\xF3a API c\u1EE7a b\u1EA1n \u0111\u1EC3 \u0111\u1ECBnh c\u1EA5u h\xECnh t\xE1c nh\xE2n m\u1EDBi. Kh\xF3a c\u1EE7a b\u1EA1n s\u1EBD \u0111\u01B0\u1EE3c l\u01B0u tr\u1EEF an to\xE0n.",
|
|
714
738
|
from_drive: {
|
|
715
739
|
actions: {
|
|
716
740
|
cancel: "H\u1EE7y",
|
|
717
741
|
add: "Th\xEAm"
|
|
718
742
|
}
|
|
719
743
|
},
|
|
720
|
-
success: "T\u1EA1o
|
|
744
|
+
success: "T\u1EA1o t\xE1c nh\xE2n th\xE0nh c\xF4ng"
|
|
721
745
|
},
|
|
722
746
|
assistant_edit: {
|
|
723
|
-
title: "Ch\u1EC9nh s\u1EEDa
|
|
747
|
+
title: "Ch\u1EC9nh s\u1EEDa t\xE1c nh\xE2n",
|
|
724
748
|
buttons: {
|
|
725
749
|
cancel: "H\u1EE7y",
|
|
726
750
|
next: "Ti\u1EBFp",
|
|
727
751
|
edit: "L\u01B0u"
|
|
728
752
|
},
|
|
729
|
-
configure_api_key_title: "C\u1EA5u h\xECnh
|
|
730
|
-
success: "Ch\u1EC9nh s\u1EEDa
|
|
753
|
+
configure_api_key_title: "C\u1EA5u h\xECnh t\xE1c nh\xE2n c\u1EE7a b\u1EA1n",
|
|
754
|
+
success: "Ch\u1EC9nh s\u1EEDa t\xE1c nh\xE2n th\xE0nh c\xF4ng"
|
|
731
755
|
},
|
|
732
756
|
conversation_delete: {
|
|
733
757
|
title: "X\xF3a cu\u1ED9c tr\xF2 chuy\u1EC7n",
|
|
@@ -738,8 +762,8 @@ var vi = {
|
|
|
738
762
|
}
|
|
739
763
|
},
|
|
740
764
|
assistant_delete: {
|
|
741
|
-
title: "X\xF3a
|
|
742
|
-
content: "B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn mu\u1ED1n x\xF3a %{name}? H\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c v\xE0 s\u1EBD x\xF3a v\u0129nh vi\u1EC5n
|
|
765
|
+
title: "X\xF3a t\xE1c nh\xE2n",
|
|
766
|
+
content: "B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn mu\u1ED1n x\xF3a %{name}? H\xE0nh \u0111\u1ED9ng n\xE0y kh\xF4ng th\u1EC3 ho\xE0n t\xE1c v\xE0 s\u1EBD x\xF3a v\u0129nh vi\u1EC5n t\xE1c nh\xE2n n\xE0y kh\u1ECFi Twake c\u1EE7a b\u1EA1n.",
|
|
743
767
|
buttons: {
|
|
744
768
|
cancel: "H\u1EE7y",
|
|
745
769
|
confirm: "X\xF3a"
|
package/dist/locales/ru.json
CHANGED
|
@@ -78,22 +78,35 @@
|
|
|
78
78
|
"draft": "Черновики",
|
|
79
79
|
"outbox": "Исходящие",
|
|
80
80
|
"spam": "Спам",
|
|
81
|
-
"search_in": "Поиск в"
|
|
81
|
+
"search_in": "Поиск в",
|
|
82
|
+
"drive": "Drive"
|
|
83
|
+
},
|
|
84
|
+
"knowledge_base": {
|
|
85
|
+
"change_folder": "Изменить папку…",
|
|
86
|
+
"emails": "Письма",
|
|
87
|
+
"open_folder": "Открыть в Drive",
|
|
88
|
+
"picker_error": "Не удалось открыть выбор папки Drive. Пожалуйста, попробуйте ещё раз.",
|
|
89
|
+
"remove": "Убрать папку",
|
|
90
|
+
"remove_emails": "Убрать письма",
|
|
91
|
+
"select_folder": "Выбрать эту папку",
|
|
92
|
+
"unavailable": "Папка недоступна"
|
|
93
|
+
},
|
|
94
|
+
"websearch": {
|
|
95
|
+
"label": "Веб-поиск"
|
|
82
96
|
}
|
|
83
97
|
},
|
|
84
98
|
"assistant_create": {
|
|
85
|
-
"title": "Создать
|
|
99
|
+
"title": "Создать агента",
|
|
86
100
|
"steps": {
|
|
87
101
|
"basic_info": {
|
|
88
|
-
"description": "Настройте
|
|
102
|
+
"description": "Настройте вашего агента. Выберите базу знаний, затем модель ИИ.",
|
|
89
103
|
"avatar": "Аватар (необязательно)",
|
|
90
104
|
"name": "Имя",
|
|
91
|
-
"name_placeholder": "Назовите вашего
|
|
92
|
-
"
|
|
93
|
-
"
|
|
105
|
+
"name_placeholder": "Назовите вашего агента",
|
|
106
|
+
"description_label": "Описание",
|
|
107
|
+
"description_placeholder": "Необязательное описание роли этого агента. Это описание не будет использоваться ИИ",
|
|
94
108
|
"knowledge_base": "База знаний (необязательно)",
|
|
95
109
|
"knowledge_base_placeholder": "В ходе разговоров могут быть раскрыты некоторые или все загруженные файлы.",
|
|
96
|
-
"load_file": "Загрузить файлы",
|
|
97
110
|
"from_drive": "Из Drive",
|
|
98
111
|
"from_mail": "Из Mail"
|
|
99
112
|
},
|
|
@@ -122,7 +135,7 @@
|
|
|
122
135
|
"external_warning": "Ваши данные будут обрабатываться на внешних серверах. Этот режим не обеспечивает усиленных мер безопасности."
|
|
123
136
|
},
|
|
124
137
|
"configuration": {
|
|
125
|
-
"description": "Введите URL провайдера, модель и ваш API‑ключ для настройки нового
|
|
138
|
+
"description": "Введите URL провайдера, модель и ваш API‑ключ для настройки нового агента. Ваш ключ будет надежно сохранен.",
|
|
126
139
|
"custom_provider_description": "Настройте параметры вашего собственного провайдера ИИ",
|
|
127
140
|
"model": {
|
|
128
141
|
"label": "Модель",
|
|
@@ -148,25 +161,25 @@
|
|
|
148
161
|
"next": "Далее",
|
|
149
162
|
"create": "Создать"
|
|
150
163
|
},
|
|
151
|
-
"configure_api_key_title": "Настроить нового
|
|
152
|
-
"configure_api_key_description": "Введите URL провайдера, модель и ваш API‑ключ для настройки нового
|
|
164
|
+
"configure_api_key_title": "Настроить нового агента",
|
|
165
|
+
"configure_api_key_description": "Введите URL провайдера, модель и ваш API‑ключ для настройки нового агента. Ваш ключ будет надежно сохранен.",
|
|
153
166
|
"from_drive": {
|
|
154
167
|
"actions": {
|
|
155
168
|
"cancel": "Отмена",
|
|
156
169
|
"add": "Добавить"
|
|
157
170
|
}
|
|
158
171
|
},
|
|
159
|
-
"success": "
|
|
172
|
+
"success": "Агент успешно создан"
|
|
160
173
|
},
|
|
161
174
|
"assistant_edit": {
|
|
162
|
-
"title": "Редактировать
|
|
175
|
+
"title": "Редактировать агента",
|
|
163
176
|
"buttons": {
|
|
164
177
|
"cancel": "Отмена",
|
|
165
178
|
"next": "Далее",
|
|
166
179
|
"edit": "Сохранить"
|
|
167
180
|
},
|
|
168
|
-
"configure_api_key_title": "Настроить
|
|
169
|
-
"success": "
|
|
181
|
+
"configure_api_key_title": "Настроить агента",
|
|
182
|
+
"success": "Агент успешно обновлён"
|
|
170
183
|
},
|
|
171
184
|
"conversation_delete": {
|
|
172
185
|
"title": "Удалить разговор",
|
|
@@ -177,8 +190,8 @@
|
|
|
177
190
|
}
|
|
178
191
|
},
|
|
179
192
|
"assistant_delete": {
|
|
180
|
-
"title": "Удалить
|
|
181
|
-
"content": "Вы уверены, что хотите удалить %{name}? Это действие нельзя отменить и оно навсегда удалит этого
|
|
193
|
+
"title": "Удалить агента",
|
|
194
|
+
"content": "Вы уверены, что хотите удалить %{name}? Это действие нельзя отменить и оно навсегда удалит этого агента из вашего Twake.",
|
|
182
195
|
"buttons": {
|
|
183
196
|
"cancel": "Отмена",
|
|
184
197
|
"confirm": "Удалить"
|
package/dist/locales/vi.json
CHANGED
|
@@ -78,22 +78,35 @@
|
|
|
78
78
|
"draft": "Nháp",
|
|
79
79
|
"outbox": "Hộp thư đi",
|
|
80
80
|
"spam": "Thư rác",
|
|
81
|
-
"search_in": "Tìm kiếm trong"
|
|
81
|
+
"search_in": "Tìm kiếm trong",
|
|
82
|
+
"drive": "Drive"
|
|
83
|
+
},
|
|
84
|
+
"knowledge_base": {
|
|
85
|
+
"change_folder": "Thay đổi thư mục…",
|
|
86
|
+
"emails": "Email",
|
|
87
|
+
"open_folder": "Mở trong Drive",
|
|
88
|
+
"picker_error": "Không thể mở bộ chọn thư mục Drive. Vui lòng thử lại.",
|
|
89
|
+
"remove": "Gỡ thư mục",
|
|
90
|
+
"remove_emails": "Gỡ email",
|
|
91
|
+
"select_folder": "Chọn thư mục này",
|
|
92
|
+
"unavailable": "Thư mục không khả dụng"
|
|
93
|
+
},
|
|
94
|
+
"websearch": {
|
|
95
|
+
"label": "Tìm kiếm web"
|
|
82
96
|
}
|
|
83
97
|
},
|
|
84
98
|
"assistant_create": {
|
|
85
|
-
"title": "Tạo
|
|
99
|
+
"title": "Tạo tác nhân",
|
|
86
100
|
"steps": {
|
|
87
101
|
"basic_info": {
|
|
88
|
-
"description": "Tùy chỉnh
|
|
102
|
+
"description": "Tùy chỉnh tác nhân của bạn. Chọn cơ sở tri thức, sau đó là mô hình AI.",
|
|
89
103
|
"avatar": "Ảnh đại diện (tùy chọn)",
|
|
90
104
|
"name": "Tên",
|
|
91
|
-
"name_placeholder": "Đặt tên cho
|
|
92
|
-
"
|
|
93
|
-
"
|
|
105
|
+
"name_placeholder": "Đặt tên cho tác nhân của bạn",
|
|
106
|
+
"description_label": "Mô tả",
|
|
107
|
+
"description_placeholder": "Mô tả tùy chọn về vai trò của tác nhân này. Mô tả này sẽ không được AI sử dụng",
|
|
94
108
|
"knowledge_base": "Cơ sở tri thức (tùy chọn)",
|
|
95
109
|
"knowledge_base_placeholder": "Các cuộc trò chuyện có thể làm lộ một phần hoặc toàn bộ các tệp đã được tải lên.",
|
|
96
|
-
"load_file": "Tải tệp",
|
|
97
110
|
"from_drive": "Từ Drive",
|
|
98
111
|
"from_mail": "Từ Mail"
|
|
99
112
|
},
|
|
@@ -122,7 +135,7 @@
|
|
|
122
135
|
"external_warning": "Dữ liệu của bạn sẽ được xử lý trên máy chủ bên ngoài. Chế độ này không cung cấp các biện pháp bảo vệ bảo mật nâng cao."
|
|
123
136
|
},
|
|
124
137
|
"configuration": {
|
|
125
|
-
"description": "Nhập URL nhà cung cấp, mô hình và khóa API của bạn để định cấu hình
|
|
138
|
+
"description": "Nhập URL nhà cung cấp, mô hình và khóa API của bạn để định cấu hình tác nhân mới. Khóa của bạn sẽ được lưu trữ an toàn.",
|
|
126
139
|
"custom_provider_description": "Cấu hình cài đặt nhà cung cấp AI tùy chỉnh",
|
|
127
140
|
"model": {
|
|
128
141
|
"label": "Mô hình",
|
|
@@ -148,25 +161,25 @@
|
|
|
148
161
|
"next": "Tiếp",
|
|
149
162
|
"create": "Tạo"
|
|
150
163
|
},
|
|
151
|
-
"configure_api_key_title": "Cấu hình
|
|
152
|
-
"configure_api_key_description": "Nhập URL nhà cung cấp, mô hình và khóa API của bạn để định cấu hình
|
|
164
|
+
"configure_api_key_title": "Cấu hình tác nhân mới",
|
|
165
|
+
"configure_api_key_description": "Nhập URL nhà cung cấp, mô hình và khóa API của bạn để định cấu hình tác nhân mới. Khóa của bạn sẽ được lưu trữ an toàn.",
|
|
153
166
|
"from_drive": {
|
|
154
167
|
"actions": {
|
|
155
168
|
"cancel": "Hủy",
|
|
156
169
|
"add": "Thêm"
|
|
157
170
|
}
|
|
158
171
|
},
|
|
159
|
-
"success": "Tạo
|
|
172
|
+
"success": "Tạo tác nhân thành công"
|
|
160
173
|
},
|
|
161
174
|
"assistant_edit": {
|
|
162
|
-
"title": "Chỉnh sửa
|
|
175
|
+
"title": "Chỉnh sửa tác nhân",
|
|
163
176
|
"buttons": {
|
|
164
177
|
"cancel": "Hủy",
|
|
165
178
|
"next": "Tiếp",
|
|
166
179
|
"edit": "Lưu"
|
|
167
180
|
},
|
|
168
|
-
"configure_api_key_title": "Cấu hình
|
|
169
|
-
"success": "Chỉnh sửa
|
|
181
|
+
"configure_api_key_title": "Cấu hình tác nhân của bạn",
|
|
182
|
+
"success": "Chỉnh sửa tác nhân thành công"
|
|
170
183
|
},
|
|
171
184
|
"conversation_delete": {
|
|
172
185
|
"title": "Xóa cuộc trò chuyện",
|
|
@@ -177,8 +190,8 @@
|
|
|
177
190
|
}
|
|
178
191
|
},
|
|
179
192
|
"assistant_delete": {
|
|
180
|
-
"title": "Xóa
|
|
181
|
-
"content": "Bạn có chắc chắn muốn xóa %{name}? Hành động này không thể hoàn tác và sẽ xóa vĩnh viễn
|
|
193
|
+
"title": "Xóa tác nhân",
|
|
194
|
+
"content": "Bạn có chắc chắn muốn xóa %{name}? Hành động này không thể hoàn tác và sẽ xóa vĩnh viễn tác nhân này khỏi Twake của bạn.",
|
|
182
195
|
"buttons": {
|
|
183
196
|
"cancel": "Hủy",
|
|
184
197
|
"confirm": "Xóa"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cozy-search",
|
|
3
3
|
"description": "UI components about search bar and IA assistant",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cozy Cloud",
|
|
7
7
|
"url": "https://github.com/cozy"
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"cozy-pouch-link": "^54.0.0",
|
|
38
38
|
"cozy-realtime": "^5.9.3",
|
|
39
39
|
"cozy-ui": "^138.4.0",
|
|
40
|
-
"cozy-ui-plus": "^12.1.
|
|
40
|
+
"cozy-ui-plus": "^12.1.4",
|
|
41
41
|
"cross-fetch": "^4.0.0",
|
|
42
42
|
"jest": "30.3.0",
|
|
43
43
|
"react": "18.2.0",
|
|
@@ -96,5 +96,5 @@
|
|
|
96
96
|
"lint": "cd .. && yarn eslint --ext js,jsx,ts packages/cozy-search"
|
|
97
97
|
},
|
|
98
98
|
"types": "dist/index.d.ts",
|
|
99
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "ba501af781312be5d4f530b8dac3c6b9604da60e"
|
|
100
100
|
}
|