plugin-ai-api 1.1.0 → 1.1.2
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/README.md +51 -12
- package/dist/client/185.c47663fefaeb0e5b.js +10 -0
- package/dist/client/562.9012cfd1fa04303d.js +10 -0
- package/dist/client/685.b5b1e0a5b825d253.js +10 -0
- package/dist/client/97.1bc5103fd9d995a8.js +10 -0
- package/dist/client/index.js +1 -1
- package/dist/client-v2/185.b552dc91ec2371ba.js +10 -0
- package/dist/client-v2/562.db2984167250b1be.js +10 -0
- package/dist/client-v2/685.cf16e5b829e06f85.js +10 -0
- package/dist/client-v2/97.96da323832251796.js +10 -0
- package/dist/client-v2/index.js +1 -1
- package/dist/externalVersion.js +8 -8
- package/dist/locale/en-US.json +38 -1
- package/dist/locale/vi-VN.json +177 -138
- package/dist/locale/zh-CN.json +177 -138
- package/dist/server/billing.js +17 -9
- package/dist/server/collections/ai-api-model-metadata.js +26 -0
- package/dist/server/collections/ai-api-model-prices.js +8 -0
- package/dist/server/collections/ai-api-response-records.js +101 -0
- package/dist/server/collections/ai-api-usage-records.js +1 -0
- package/dist/server/collections/ai-api-virtual-models.js +68 -0
- package/dist/server/middleware/response-record-resource.js +66 -0
- package/dist/server/middleware/role-permission.js +43 -18
- package/dist/server/migrations/20260827000000-add-cache-input-price.js +66 -0
- package/dist/server/migrations/20260901000000-remove-default-group-members.js +60 -0
- package/dist/server/migrations/20260902000000-seed-default-role-permissions.js +55 -0
- package/dist/server/migrations/20260903000000-seed-sample-response-records.js +170 -0
- package/dist/server/plugin.js +66 -16
- package/dist/server/routes/auth.js +16 -0
- package/dist/server/routes/chat-completions.js +38 -6
- package/dist/server/routes/completions.js +16 -4
- package/dist/server/routes/embeddings.js +34 -5
- package/dist/server/routes/models.js +29 -0
- package/dist/server/routes/responses.js +530 -0
- package/dist/server/routes/router.js +65 -10
- package/dist/server/usage.js +26 -4
- package/dist/server/utils/direct-llm-context.js +10 -9
- package/dist/server/utils/resolve-service.js +24 -0
- package/dist/server/utils/response-store.js +138 -0
- package/dist/server/utils/responses-format.js +686 -0
- package/dist/server/utils/responses-stream.js +330 -0
- package/dist/server/utils/virtual-models.js +238 -0
- package/dist/server/validation.js +45 -2
- package/dist/swagger.js +137 -0
- package/package.json +34 -32
- package/src/__tests__/locale.test.ts +43 -0
- package/src/client/__tests__/settings-registration.test.tsx +1 -0
- package/src/client/index.tsx +10 -10
- package/src/client/models/index.ts +12 -12
- package/src/client/plugin.tsx +9 -1
- package/src/client-v2/__tests__/settings-registration.test.tsx +1 -0
- package/src/client-v2/pages/ModelMetadataPage.tsx +44 -0
- package/src/client-v2/pages/ModelPricingPage.tsx +15 -0
- package/src/client-v2/pages/ModelRoutingPage.tsx +238 -0
- package/src/client-v2/pages/UsageGroupsPage.tsx +75 -38
- package/src/client-v2/plugin.tsx +8 -0
- package/src/index.ts +11 -11
- package/src/locale/en-US.json +38 -1
- package/src/locale/vi-VN.json +177 -138
- package/src/locale/zh-CN.json +177 -138
- package/src/server/__tests__/billing-quota.test.ts +8 -2
- package/src/server/__tests__/billing.test.ts +13 -0
- package/src/server/__tests__/embeddings.test.ts +184 -0
- package/src/server/__tests__/models.test.ts +21 -1
- package/src/server/__tests__/response-record-resource.test.ts +50 -0
- package/src/server/__tests__/response-store-integration.test.ts +341 -0
- package/src/server/__tests__/response-store.test.ts +195 -0
- package/src/server/__tests__/responses-contract.test.ts +469 -0
- package/src/server/__tests__/responses-format.test.ts +299 -0
- package/src/server/__tests__/responses-router.test.ts +182 -0
- package/src/server/__tests__/responses-streaming.test.ts +368 -0
- package/src/server/__tests__/responses.test.ts +462 -0
- package/src/server/__tests__/role-permission.test.ts +139 -0
- package/src/server/__tests__/seed-role-permission.test.ts +88 -0
- package/src/server/__tests__/types/responses-sdk.types.test-d.ts +23 -0
- package/src/server/__tests__/usage-groups.test.ts +96 -0
- package/src/server/__tests__/usage-route.test.ts +1 -0
- package/src/server/__tests__/usage.test.ts +15 -0
- package/src/server/__tests__/validation.test.ts +66 -7
- package/src/server/__tests__/virtual-model-routing.test.ts +589 -0
- package/src/server/billing.ts +29 -6
- package/src/server/collections/ai-api-model-metadata.ts +26 -0
- package/src/server/collections/ai-api-model-prices.ts +8 -0
- package/src/server/collections/ai-api-response-records.ts +77 -0
- package/src/server/collections/ai-api-usage-records.ts +1 -0
- package/src/server/collections/ai-api-virtual-models.ts +58 -0
- package/src/server/middleware/response-record-resource.ts +44 -0
- package/src/server/middleware/role-permission.ts +69 -35
- package/src/server/migrations/20260827000000-add-cache-input-price.ts +49 -0
- package/src/server/migrations/20260901000000-remove-default-group-members.ts +56 -0
- package/src/server/migrations/20260902000000-seed-default-role-permissions.ts +46 -0
- package/src/server/migrations/20260903000000-seed-sample-response-records.ts +162 -0
- package/src/server/plugin.ts +84 -20
- package/src/server/resource/ai-api-config.ts +2 -1
- package/src/server/routes/agent-completions.ts +3 -0
- package/src/server/routes/auth.ts +21 -1
- package/src/server/routes/chat-completions.ts +34 -10
- package/src/server/routes/completions.ts +16 -4
- package/src/server/routes/embeddings.ts +42 -6
- package/src/server/routes/models.ts +34 -0
- package/src/server/routes/responses.ts +640 -0
- package/src/server/routes/router.ts +81 -12
- package/src/server/services/__tests__/file-processor.test.ts +1 -0
- package/src/server/usage.ts +30 -2
- package/src/server/utils/app-observability.ts +1 -1
- package/src/server/utils/direct-llm-context.ts +23 -12
- package/src/server/utils/openai-format.ts +1 -0
- package/src/server/utils/resolve-service.ts +39 -1
- package/src/server/utils/response-store.ts +148 -0
- package/src/server/utils/responses-format.ts +974 -0
- package/src/server/utils/responses-stream.ts +384 -0
- package/src/server/utils/virtual-models.ts +320 -0
- package/src/server/validation.ts +50 -0
- package/src/swagger.ts +139 -0
- package/dist/client/562.44b16aad4718b4c7.js +0 -10
- package/dist/client/685.ae483e17b6b49c98.js +0 -10
- package/dist/client/97.9b6b2d2b01a4c060.js +0 -10
- package/dist/client-v2/562.45d5c504433be38b.js +0 -10
- package/dist/client-v2/685.1030370b309b7d4b.js +0 -10
- package/dist/client-v2/97.36a42eff36bb3d8a.js +0 -10
- package/dist/server/collections/ai-api-user-permissions.js +0 -67
- package/dist/server/collections/ai-api-user-quota-buckets.js +0 -54
- package/dist/server/collections/ai-api-user-quota-policies.js +0 -63
- package/dist/server/resource/ai-api-usage-groups.js +0 -168
- package/src/server/collections/ai-api-user-permissions.ts +0 -46
- package/src/server/collections/ai-api-user-quota-buckets.ts +0 -24
- package/src/server/collections/ai-api-user-quota-policies.ts +0 -33
- package/src/server/resource/ai-api-usage-groups.ts +0 -171
package/dist/locale/en-US.json
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"LLM service": "LLM service",
|
|
21
21
|
"Model": "Model",
|
|
22
22
|
"Input price / 1M": "Input price / 1M",
|
|
23
|
+
"Cache input price / 1M": "Cache input price / 1M",
|
|
23
24
|
"Output price / 1M": "Output price / 1M",
|
|
24
25
|
"Fixed request cost": "Fixed request cost",
|
|
25
26
|
"Currency": "Currency",
|
|
@@ -134,5 +135,41 @@
|
|
|
134
135
|
"All services": "All services",
|
|
135
136
|
"No models": "No models",
|
|
136
137
|
"Leave empty to allow every service enabled in the general configuration.": "Leave empty to allow every service enabled in the general configuration.",
|
|
137
|
-
"Users who do not belong to any other group automatically use this default group — no need to add members.": "Users who do not belong to any other group automatically use this default group — no need to add members."
|
|
138
|
+
"Users who do not belong to any other group automatically use this default group — no need to add members.": "Users who do not belong to any other group automatically use this default group — no need to add members.",
|
|
139
|
+
"Membership": "Membership",
|
|
140
|
+
"Model routing": "Model routing",
|
|
141
|
+
"Model routing (virtual models)": "Model routing (virtual models)",
|
|
142
|
+
"Alias": "Alias",
|
|
143
|
+
"Fallback model": "Fallback model",
|
|
144
|
+
"A fallback model is required": "A fallback model is required",
|
|
145
|
+
"Used when no capability bucket candidate is usable and the fallback is permitted for the caller.": "Used when no capability bucket candidate is usable and the fallback is permitted for the caller.",
|
|
146
|
+
"Vision models (in order)": "Vision models (in order)",
|
|
147
|
+
"Requests with an image or file block use the first permitted model here.": "Requests with an image or file block use the first permitted model here.",
|
|
148
|
+
"Tool-calling models (in order)": "Tool-calling models (in order)",
|
|
149
|
+
"Requests with tools/tool_choice use the first permitted model here.": "Requests with tools/tool_choice use the first permitted model here.",
|
|
150
|
+
"Reasoning models (in order)": "Reasoning models (in order)",
|
|
151
|
+
"Requests with an explicit reasoning or reasoning_effort parameter use the first permitted model here.": "Requests with an explicit reasoning or reasoning_effort parameter use the first permitted model here.",
|
|
152
|
+
"Cheap models (in order)": "Cheap models (in order)",
|
|
153
|
+
"Optional. When set, cheap-eligible requests use the first permitted model here.": "Optional. When set, cheap-eligible requests use the first permitted model here.",
|
|
154
|
+
"General models (in order)": "General models (in order)",
|
|
155
|
+
"Default bucket when no capability rule matched. Leave empty to derive from all enabled models ordered by Model metadata sortOrder.": "Default bucket when no capability rule matched. Leave empty to derive from all enabled models ordered by Model metadata sortOrder.",
|
|
156
|
+
"Type service/model and press Enter — earlier entries are preferred": "Type service/model and press Enter — earlier entries are preferred",
|
|
157
|
+
"An empty bucket is derived automatically from Model metadata (capability flags + sortOrder).": "An empty bucket is derived automatically from Model metadata (capability flags + sortOrder).",
|
|
158
|
+
"Save": "Save",
|
|
159
|
+
"Supports vision": "Supports vision",
|
|
160
|
+
"Used by virtual-model routing for image/file requests.": "Used by virtual-model routing for image/file requests.",
|
|
161
|
+
"Supports tool calling": "Supports tool calling",
|
|
162
|
+
"Used by virtual-model routing for requests with tools/tool_choice.": "Used by virtual-model routing for requests with tools/tool_choice.",
|
|
163
|
+
"Reasoning tier": "Reasoning tier",
|
|
164
|
+
"cheap | general | reasoning. Used by virtual-model routing buckets.": "cheap | general | reasoning. Used by virtual-model routing buckets.",
|
|
165
|
+
"Cheap": "Cheap",
|
|
166
|
+
"General": "General",
|
|
167
|
+
"Reasoning": "Reasoning",
|
|
168
|
+
"Routing priority": "Routing priority",
|
|
169
|
+
"Ascending — lower is preferred when a bucket is derived from metadata.": "Ascending — lower is preferred when a bucket is derived from metadata.",
|
|
170
|
+
"Select models — the order shown is the routing priority": "Select models — the order shown is the routing priority",
|
|
171
|
+
"Select a fallback model": "Select a fallback model",
|
|
172
|
+
"Name": "Name",
|
|
173
|
+
"Rate limit/min": "Rate limit/min",
|
|
174
|
+
"unavailable": "(unavailable)"
|
|
138
175
|
}
|
package/dist/locale/vi-VN.json
CHANGED
|
@@ -1,138 +1,177 @@
|
|
|
1
|
-
{
|
|
2
|
-
"AI API Gateway": "Cổng AI API",
|
|
3
|
-
"Configuration": "Cấu hình",
|
|
4
|
-
"Default AI Employee": "AI Employee mặc định",
|
|
5
|
-
"Enabled LLM Services": "Dịch vụ LLM được bật",
|
|
6
|
-
"Rate Limit": "Giới hạn tốc độ",
|
|
7
|
-
"Save Configuration": "Lưu cấu hình",
|
|
8
|
-
"Configuration saved": "Đã lưu cấu hình",
|
|
9
|
-
"Failed to save configuration": "Không thể lưu cấu hình",
|
|
10
|
-
"API mode": "Chế độ API",
|
|
11
|
-
"Direct LLM": "LLM trực tiếp",
|
|
12
|
-
"AI Employee agent": "AI Employee agent",
|
|
13
|
-
"Default LLM service": "Dịch vụ LLM mặc định",
|
|
14
|
-
"Enable user quotas": "Bật quota theo người dùng",
|
|
15
|
-
"Default reserved output tokens": "Số output token giữ chỗ mặc định",
|
|
16
|
-
"Refresh": "Làm mới",
|
|
17
|
-
"Model pricing": "Bảng giá model",
|
|
18
|
-
"User quotas": "Quota người dùng",
|
|
19
|
-
"Usage": "Lịch sử sử dụng",
|
|
20
|
-
"LLM service": "Dịch vụ LLM",
|
|
21
|
-
"Model": "Model",
|
|
22
|
-
"Input price / 1M": "Giá input / 1 triệu token",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"Delete
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"Effective
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"Resolved
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"Cost
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"Select
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
"
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
"Allow
|
|
107
|
-
"
|
|
108
|
-
"Select
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"Member
|
|
123
|
-
"
|
|
124
|
-
"Remove": "Xóa",
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"User
|
|
128
|
-
"
|
|
129
|
-
"
|
|
130
|
-
"
|
|
131
|
-
"
|
|
132
|
-
"
|
|
133
|
-
"
|
|
134
|
-
"All
|
|
135
|
-
"
|
|
136
|
-
"
|
|
137
|
-
"
|
|
138
|
-
|
|
1
|
+
{
|
|
2
|
+
"AI API Gateway": "Cổng AI API",
|
|
3
|
+
"Configuration": "Cấu hình",
|
|
4
|
+
"Default AI Employee": "AI Employee mặc định",
|
|
5
|
+
"Enabled LLM Services": "Dịch vụ LLM được bật",
|
|
6
|
+
"Rate Limit": "Giới hạn tốc độ",
|
|
7
|
+
"Save Configuration": "Lưu cấu hình",
|
|
8
|
+
"Configuration saved": "Đã lưu cấu hình",
|
|
9
|
+
"Failed to save configuration": "Không thể lưu cấu hình",
|
|
10
|
+
"API mode": "Chế độ API",
|
|
11
|
+
"Direct LLM": "LLM trực tiếp",
|
|
12
|
+
"AI Employee agent": "AI Employee agent",
|
|
13
|
+
"Default LLM service": "Dịch vụ LLM mặc định",
|
|
14
|
+
"Enable user quotas": "Bật quota theo người dùng",
|
|
15
|
+
"Default reserved output tokens": "Số output token giữ chỗ mặc định",
|
|
16
|
+
"Refresh": "Làm mới",
|
|
17
|
+
"Model pricing": "Bảng giá model",
|
|
18
|
+
"User quotas": "Quota người dùng",
|
|
19
|
+
"Usage": "Lịch sử sử dụng",
|
|
20
|
+
"LLM service": "Dịch vụ LLM",
|
|
21
|
+
"Model": "Model",
|
|
22
|
+
"Input price / 1M": "Giá input / 1 triệu token",
|
|
23
|
+
"Cache input price / 1M": "Giá cache input / 1 triệu token",
|
|
24
|
+
"Output price / 1M": "Giá output / 1 triệu token",
|
|
25
|
+
"Fixed request cost": "Chi phí cố định mỗi request",
|
|
26
|
+
"Currency": "Tiền tệ",
|
|
27
|
+
"Status": "Trạng thái",
|
|
28
|
+
"Enabled": "Đang bật",
|
|
29
|
+
"Disabled": "Đã tắt",
|
|
30
|
+
"Actions": "Thao tác",
|
|
31
|
+
"Edit": "Sửa",
|
|
32
|
+
"Delete": "Xóa",
|
|
33
|
+
"Delete this price?": "Xóa cấu hình giá này?",
|
|
34
|
+
"Add price": "Thêm giá",
|
|
35
|
+
"Edit price": "Sửa giá",
|
|
36
|
+
"Effective from": "Hiệu lực từ",
|
|
37
|
+
"Effective to": "Hiệu lực đến",
|
|
38
|
+
"Notes": "Ghi chú",
|
|
39
|
+
"Saved successfully": "Đã lưu thành công",
|
|
40
|
+
"Deleted successfully": "Đã xóa thành công",
|
|
41
|
+
"User": "Người dùng",
|
|
42
|
+
"Period": "Chu kỳ",
|
|
43
|
+
"Request limit": "Giới hạn request",
|
|
44
|
+
"Token limit": "Giới hạn token",
|
|
45
|
+
"Cost limit": "Giới hạn chi phí",
|
|
46
|
+
"Timezone": "Múi giờ",
|
|
47
|
+
"Unlimited": "Không giới hạn",
|
|
48
|
+
"Add quota": "Thêm quota",
|
|
49
|
+
"Edit quota": "Sửa quota",
|
|
50
|
+
"Delete this quota?": "Xóa quota này?",
|
|
51
|
+
"Daily": "Hàng ngày",
|
|
52
|
+
"Monthly": "Hàng tháng",
|
|
53
|
+
"Reject unpriced models": "Từ chối model chưa có giá",
|
|
54
|
+
"Missing usage behavior": "Xử lý khi thiếu token usage",
|
|
55
|
+
"Use reserved estimate": "Dùng số liệu giữ chỗ để ước tính",
|
|
56
|
+
"Allow without token charge": "Cho phép và không tính token",
|
|
57
|
+
"Context overflow behavior": "Xử lý khi vượt context",
|
|
58
|
+
"Reject request": "Từ chối request",
|
|
59
|
+
"Truncate oldest conversation turns": "Cắt các lượt hội thoại cũ nhất",
|
|
60
|
+
"Started at": "Bắt đầu lúc",
|
|
61
|
+
"Requested model": "Model được yêu cầu",
|
|
62
|
+
"Resolved service": "Service đã resolve",
|
|
63
|
+
"Resolved model": "Model đã resolve",
|
|
64
|
+
"Input tokens": "Input token",
|
|
65
|
+
"Output tokens": "Output token",
|
|
66
|
+
"Total tokens": "Tổng token",
|
|
67
|
+
"Prompt cache tokens": "Prompt cache token",
|
|
68
|
+
"Cost": "Chi phí",
|
|
69
|
+
"Cost status": "Trạng thái chi phí",
|
|
70
|
+
"Request ID": "Request ID",
|
|
71
|
+
"Failed to load models": "Không thể tải danh sách model",
|
|
72
|
+
"Select a model": "Chọn model",
|
|
73
|
+
"Select an AI Employee": "Chọn AI Employee",
|
|
74
|
+
"Usage guide": "Hướng dẫn sử dụng",
|
|
75
|
+
"OpenAI-compatible endpoint": "Endpoint tương thích OpenAI",
|
|
76
|
+
"Base URL": "Base URL",
|
|
77
|
+
"Use a NocoBase API key as the Bearer token.": "Sử dụng NocoBase API key làm Bearer token.",
|
|
78
|
+
"List available models": "Liệt kê model khả dụng",
|
|
79
|
+
"Send a chat completion": "Gửi yêu cầu chat completion",
|
|
80
|
+
"Usage filters": "Bộ lọc usage",
|
|
81
|
+
"Time range": "Khoảng thời gian",
|
|
82
|
+
"User ID": "User ID",
|
|
83
|
+
"Succeeded": "Thành công",
|
|
84
|
+
"Failed": "Thất bại",
|
|
85
|
+
"Started": "Đã bắt đầu",
|
|
86
|
+
"Apply filters": "Áp dụng bộ lọc",
|
|
87
|
+
"Reset": "Đặt lại",
|
|
88
|
+
"Requests": "Số request",
|
|
89
|
+
"Total cost": "Tổng chi phí",
|
|
90
|
+
"Usage records": "Chi tiết usage",
|
|
91
|
+
"Model metadata": "Metadata model",
|
|
92
|
+
"Add override": "Thêm override",
|
|
93
|
+
"Edit override": "Sửa override",
|
|
94
|
+
"Delete this override?": "Xóa override này?",
|
|
95
|
+
"Context window": "Context window",
|
|
96
|
+
"Max completion tokens": "Max completion tokens",
|
|
97
|
+
"Owned by": "Nhà cung cấp",
|
|
98
|
+
"Display name": "Tên hiển thị",
|
|
99
|
+
"Description": "Mô tả",
|
|
100
|
+
"Leave empty to not override": "Để trống nếu không override",
|
|
101
|
+
"Total input + output token capacity reported to clients.": "Tổng dung lượng token (input + output) trả về cho client.",
|
|
102
|
+
"Maximum output tokens reported to clients.": "Số token output tối đa trả về cho client.",
|
|
103
|
+
"Initial system prompt": "System prompt khởi tạo",
|
|
104
|
+
"Prepended as the first system message, before any system prompt sent by the client. If the client sends no system prompt, this becomes the system prompt sent to the provider.": "Được thêm vào làm system message đầu tiên, đứng trước mọi system prompt mà client gửi sang. Nếu client không gửi system prompt, đây sẽ là system prompt được gửi tới provider.",
|
|
105
|
+
"AI API": "AI API",
|
|
106
|
+
"Allow this role to use the AI API": "Cho phép vai trò này sử dụng AI API",
|
|
107
|
+
"Allow all AI Employees": "Cho phép tất cả AI Employee",
|
|
108
|
+
"Select which AI Employees this role may use:": "Chọn AI Employee mà vai trò này được dùng:",
|
|
109
|
+
"Select allowed AI Employees": "Chọn AI Employee được phép",
|
|
110
|
+
"Max request body size (MB)": "Giới hạn kích thước request body (MB)",
|
|
111
|
+
"Raise this to accept inline base64 images. Base64 adds about 33% to the original file size.": "Tăng giá trị này để nhận ảnh base64 gửi trực tiếp. Base64 làm tăng khoảng 33% so với kích thước tệp gốc.",
|
|
112
|
+
"Usage groups": "Nhóm usage",
|
|
113
|
+
"Add group": "Thêm nhóm",
|
|
114
|
+
"Edit group": "Sửa nhóm",
|
|
115
|
+
"Delete this group?": "Xóa nhóm này?",
|
|
116
|
+
"Mode": "Chế độ",
|
|
117
|
+
"Share": "Chia sẻ",
|
|
118
|
+
"Per user": "Theo người dùng",
|
|
119
|
+
"Rate limit per minute": "Giới hạn request/phút",
|
|
120
|
+
"Members": "Thành viên",
|
|
121
|
+
"Add member": "Thêm thành viên",
|
|
122
|
+
"Member added": "Đã thêm thành viên",
|
|
123
|
+
"Member removed": "Đã xóa thành viên",
|
|
124
|
+
"Remove member?": "Xóa thành viên?",
|
|
125
|
+
"Remove": "Xóa",
|
|
126
|
+
"Search group by user": "Tìm nhóm theo người dùng",
|
|
127
|
+
"User belongs to": "Người dùng thuộc nhóm",
|
|
128
|
+
"User not found": "Không tìm thấy người dùng",
|
|
129
|
+
"Default": "Mặc định",
|
|
130
|
+
"Allowed LLM services": "Dịch vụ LLM được phép",
|
|
131
|
+
"Allow all models": "Cho phép tất cả model",
|
|
132
|
+
"Allowed models": "Model được phép",
|
|
133
|
+
"Model access": "Quyền truy cập model",
|
|
134
|
+
"All models": "Tất cả model",
|
|
135
|
+
"All services": "Tất cả dịch vụ",
|
|
136
|
+
"No models": "Không model nào",
|
|
137
|
+
"Leave empty to allow every service enabled in the general configuration.": "Để trống để cho phép mọi dịch vụ đang được bật trong cấu hình chung.",
|
|
138
|
+
"Users who do not belong to any other group automatically use this default group — no need to add members.": "Người dùng không thuộc nhóm nào khác sẽ tự động dùng nhóm mặc định này — không cần thêm thành viên.",
|
|
139
|
+
"Membership": "Thành viên ngầm định",
|
|
140
|
+
"Model routing": "Định tuyến model",
|
|
141
|
+
"Model routing (virtual models)": "Định tuyến model (model ảo)",
|
|
142
|
+
"Alias": "Bí danh",
|
|
143
|
+
"Fallback model": "Model dự phòng",
|
|
144
|
+
"A fallback model is required": "Bắt buộc phải có model dự phòng",
|
|
145
|
+
"Used when no capability bucket candidate is usable and the fallback is permitted for the caller.": "Dùng khi không có model nào trong bucket năng lực khả dụng và caller được phép dùng fallback.",
|
|
146
|
+
"Vision models (in order)": "Model vision (theo thứ tự)",
|
|
147
|
+
"Requests with an image or file block use the first permitted model here.": "Request có block ảnh/file sẽ dùng model đầu tiên được phép ở đây.",
|
|
148
|
+
"Tool-calling models (in order)": "Model gọi tool (theo thứ tự)",
|
|
149
|
+
"Requests with tools/tool_choice use the first permitted model here.": "Request có tools/tool_choice sẽ dùng model đầu tiên được phép ở đây.",
|
|
150
|
+
"Reasoning models (in order)": "Model suy luận (theo thứ tự)",
|
|
151
|
+
"Requests with an explicit reasoning or reasoning_effort parameter use the first permitted model here.": "Request có tham số reasoning hoặc reasoning_effort tường minh sẽ dùng model đầu tiên được phép ở đây.",
|
|
152
|
+
"Cheap models (in order)": "Model rẻ (theo thứ tự)",
|
|
153
|
+
"Optional. When set, cheap-eligible requests use the first permitted model here.": "Tùy chọn. Nếu đặt, request đơn giản sẽ dùng model đầu tiên được phép ở đây.",
|
|
154
|
+
"General models (in order)": "Model chung (theo thứ tự)",
|
|
155
|
+
"Default bucket when no capability rule matched. Leave empty to derive from all enabled models ordered by Model metadata sortOrder.": "Bucket mặc định khi không rule năng lực nào khớp. Để trống để derive từ tất cả model được bật, xếp theo sortOrder trong Model metadata.",
|
|
156
|
+
"Type service/model and press Enter — earlier entries are preferred": "Nhập service/model rồi Enter — mục trên được ưu tiên",
|
|
157
|
+
"An empty bucket is derived automatically from Model metadata (capability flags + sortOrder).": "Bucket để trống sẽ tự derive từ cờ năng lực + sortOrder trong Model metadata.",
|
|
158
|
+
"Save": "Lưu",
|
|
159
|
+
"Supports vision": "Hỗ trợ hình ảnh",
|
|
160
|
+
"Used by virtual-model routing for image/file requests.": "Dùng để định tuyến model ảo cho request có hình ảnh hoặc tệp.",
|
|
161
|
+
"Supports tool calling": "Hỗ trợ gọi tool",
|
|
162
|
+
"Used by virtual-model routing for requests with tools/tool_choice.": "Dùng để định tuyến model ảo cho request có tools/tool_choice.",
|
|
163
|
+
"Reasoning tier": "Tầng suy luận",
|
|
164
|
+
"cheap | general | reasoning. Used by virtual-model routing buckets.": "cheap | general | reasoning. Dùng cho các bucket định tuyến model ảo.",
|
|
165
|
+
"Cheap": "Chi phí thấp",
|
|
166
|
+
"General": "Chung",
|
|
167
|
+
"Reasoning": "Suy luận",
|
|
168
|
+
"Routing priority": "Ưu tiên định tuyến",
|
|
169
|
+
"Ascending — lower is preferred when a bucket is derived from metadata.": "Tăng dần — giá trị nhỏ hơn được ưu tiên khi bucket được tạo từ metadata.",
|
|
170
|
+
"Select models — the order shown is the routing priority": "Chọn model — thứ tự hiển thị là thứ tự ưu tiên định tuyến",
|
|
171
|
+
"Select a fallback model": "Chọn model dự phòng",
|
|
172
|
+
"Name": "Tên",
|
|
173
|
+
"Rate limit/min": "Giới hạn/phút",
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
"unavailable": "(không khả dụng)"
|
|
177
|
+
}
|