mirror of
https://github.com/Tencent/WeKnora.git
synced 2026-06-04 13:30:32 +08:00
Phase 3 (#1440) gate flip. PR 1 (#1445) + PR 2a (#1481) + PR 2b (#1482) laid the type prep + driver skeleton + read/write paths as gated dead code; this PR wires every activation surface so opensearch becomes a registerable VectorStore engine. Activation wiring - internal/types: validEngineTypes / GetVectorStoreTypes (with HNSW bounds + knn_engine enum + Immutable hints) / retrieverEngineMapping / buildEnvStoreForDriver — every gated surface now recognises "opensearch". IndexConfig grows four omitempty HNSW fields (HNSWM / HNSWEFConstruction / HNSWEFSearch / KNNEngine), keeping other engines' serialised config byte-identical. - internal/container: createOpenSearchEngine + the switch case in createEngineServiceFromStore; the RETRIEVE_DRIVER=opensearch env path in initRetrieveEngineRegistry; NewEngineFactory now closes over the AuditLogService (the EngineFactory type itself is unchanged). - internal/application/service/vectorstore_healthcheck.go: a testOpenSearchConnection case so CreateStore's connectivity probe accepts opensearch instead of returning 400. - internal/application/repository/retriever/opensearch/transport.go: NewOpenSearchClient is exported so the factory and env path can build the TLS-hardened client; healthcheck.go reuses the unexported probeVersion / probeKNNPlugin for the service-layer probe. Service-layer validation - validateOpenSearchIndexConfig validates the HNSW caps (m 2-100, ef_construction 2-4096, ef_search 1-10000, knn_engine ∈ lucene|faiss). Shards/replicas continue to be enforced by the flat ValidateIndexConfig. Create-only: UpdateStore mutates the name only. - validateConnectionConfig requires addr for opensearch. Sync implementations (stubs.go shrinks) - CopyIndices (copy.go) mirrors the Elasticsearch / Qdrant pattern — search → BatchSave with the source_id remap for generated questions — so dim/keyword routing and the source_id contract come from BatchSave for free. embeddingMap is keyed by the *target* SourceID because OpenSearch's BatchSave looks up embeddings by SourceID (lookupEmbedding), not by chunk_id (the ES driver's convention). Pagination is from/size; copies larger than max_result_window (default 10000) need the scroll-based async path that lands later. - BatchUpdateChunkEnabledStatus / BatchUpdateChunkTagID (bulk_update.go) group the input by target value and issue one _update_by_query per group over the cross-dim <base>_* pattern. Caller values flow through bound script params only — never string-interpolated into the Painless source — closing the script-injection surface. - inspectByQueryResponse (byquery.go) mirrors inspectBulkResponse: the full failure reason goes to the debug log only; the returned error carries the bounded id + type. - UpdateByQueryParams.Refresh is *bool in opensearch-go v4.6.0 (the same shape as DeleteByQuery's quirk), so refresh=wait_for is not expressible; we use refresh=true. Driver-owned audit (DIP) - A new opensearch.AuditSink interface (with nopSink + WithAuditSink functional option) lets the driver emit opensearch.index_created and opensearch.reindex_executed events without importing any service package — the service layer implements the interface. NewRepository takes opts, so existing 4-arg test call sites keep compiling unchanged. - internal/container/audit_sink.go bridges AuditSink to AuditLogService. When the context carries no tenant (the env-path registration ctx during boot, for example) the adapter skips the emit with a warning rather than silently writing tenant_id=0, which would collide with the system-scope sentinel. Frontend + polish - FieldSchema (frontend/src/api/vector-store.ts) gains min/max/enum/ immutable. VectorStoreSettings.vue is now schema-driven: a closed `enum` renders a t-select; number inputs use the schema's `:min`/`:max` and fall back to the legacy replica-vs-shard heuristic only when the schema does not pin them; a danger-coloured warning fires when insecure_skip_verify is toggled on (the switch and warning are wrapped in a vertical stack so the warning sits on its own row below the switch). - i18n: labels for hnsw_m / hnsw_ef_construction / hnsw_ef_search / knn_engine / insecure_skip_verify plus the warning copy in en-US, ko-KR, zh-CN, ru-RU. - docker-compose.dev.yml: an opensearch profile (single-node 3.3.2 with security plugin disabled for dev only). OpenSearch Dashboards lives in a separate, opt-in opensearch-ui profile so the heavy UI container is not forced up alongside the cluster (the driver e2e is fully curl-verifiable against :9200). The new docs/dev/opensearch-integration-test.md covers the end-to-end exercise and the single-node guidance (set replicas=0 to keep the cluster Green). Gating-guard tests flipped - The "OpenSearch is NOT in validEngineTypes / mapping / types list / env builder / stubs" guard tests from PR 1 / PR 2 are replaced by their positive counterparts in this PR. The test suite was the activation checklist; the activation flip is its diff. Backward compatibility - Additive everywhere. IndexConfig's new HNSW fields are omitempty so other engines' serialised config is byte-identical. Existing Elasticsearch / Qdrant / Milvus / Weaviate / Doris / TencentVectorDB stores are untouched. No migrations. Test plan - go build ./... clean - go vet ./... clean - gofmt -l clean on touched files - go test ./... — only TestOssEnsureBucket_CreateFails (Aliyun OSS endpoint), the docreader gRPC tests, and the doris SQL-shape tests fail; all three are pre-existing on upstream/main and untouched by this PR. - New tests across internal/types, opensearch, service and container — including a full end-to-end env-path test that exercises initRetrieveEngineRegistry with RETRIEVE_DRIVER=opensearch against an httptest cluster.
5005 lines
210 KiB
TypeScript
Executable File
5005 lines
210 KiB
TypeScript
Executable File
export default {
|
||
menu: {
|
||
knowledgeBase: "知识库",
|
||
agents: "智能体",
|
||
organizations: "共享空间",
|
||
chat: "对话",
|
||
createChat: "创建对话",
|
||
tenant: "账户信息",
|
||
settings: "系统设置",
|
||
logout: "退出登录",
|
||
uploadKnowledge: "上传知识",
|
||
deleteRecord: "删除记录",
|
||
clearMessages: "清空消息",
|
||
clearMessagesSuccess: "消息已清空",
|
||
clearMessagesFailed: "清空消息失败,请稍后再试",
|
||
batchManage: "批量管理",
|
||
newSession: "新会话",
|
||
pin: "置顶",
|
||
unpin: "取消置顶",
|
||
pinned: "已置顶",
|
||
pinFailed: "置顶失败,请稍后再试",
|
||
unpinFailed: "取消置顶失败,请稍后再试",
|
||
confirmLogout: "确定要退出登录吗?",
|
||
systemInfo: "系统信息",
|
||
search: "搜索",
|
||
collapseSidebar: "收起侧边栏",
|
||
expandSidebar: "展开侧边栏",
|
||
logoutSuccess: "已退出登录",
|
||
},
|
||
batchManage: {
|
||
title: "管理对话记录",
|
||
selectAll: "全选",
|
||
cancel: "取消",
|
||
delete: "删除对话",
|
||
deleteConfirmTitle: "删除对话",
|
||
deleteConfirmBody: "确定要删除选中的 {count} 条对话吗?删除后无法恢复。",
|
||
deleteAllConfirmBody: "确定要删除所有对话吗?此操作无法恢复。",
|
||
deleteSuccess: "删除成功",
|
||
deleteFailed: "删除失败,请稍后再试",
|
||
noSelection: "请至少选择一条对话",
|
||
loadFailed: "加载会话列表失败",
|
||
},
|
||
listSpaceSidebar: {
|
||
title: "筛选",
|
||
all: "全部",
|
||
workspace: "本空间",
|
||
mine: "我的",
|
||
spaces: "共享给我",
|
||
favorites: "收藏",
|
||
recents: "最近",
|
||
},
|
||
listFilter: {
|
||
creator: "创建者",
|
||
allCreators: "全部",
|
||
createdByMe: "我创建的",
|
||
createdByOthers: "他人创建的",
|
||
},
|
||
resourceOrigin: {
|
||
mine: "我创建",
|
||
mineTooltip: "由当前用户创建",
|
||
tenant: "本空间",
|
||
tenantTooltip: "本空间其他成员创建",
|
||
tenantTooltipWithCreator: "由 {creator} 创建",
|
||
space: "共享空间",
|
||
spaceTooltip: "来自共享空间「{space}」",
|
||
spaceTooltipWithTenant: "来自共享空间「{space}」· 源空间 {tenant}",
|
||
shared: "外部共享",
|
||
sharedTooltip: "通过共享空间从其他空间访问",
|
||
},
|
||
knowledgeBase: {
|
||
title: "知识库",
|
||
list: "知识库列表",
|
||
fileContent: "文件内容",
|
||
detail: "知识库详情",
|
||
accessInfo: {
|
||
myRole: "我的身份",
|
||
roleOwner: "创建者",
|
||
permissionOwner: "可编辑、管理设置、删除知识库",
|
||
permissionAdmin: "可编辑、管理共享设置",
|
||
permissionEditor: "可编辑文档与分类",
|
||
permissionViewer: "仅查看与检索",
|
||
fromOrg: "来自空间",
|
||
sharedAt: "共享于",
|
||
lastUpdated: "最后更新",
|
||
},
|
||
infoCard: {
|
||
tooltip: "查看知识库信息",
|
||
title: "知识库信息",
|
||
basic: "基础",
|
||
access: "访问",
|
||
binding: "存储绑定",
|
||
capabilities: "能力",
|
||
stats: "统计",
|
||
type: "类型",
|
||
createdAt: "创建时间",
|
||
source: "来源",
|
||
sharedTo: "共享范围",
|
||
enabled: "已启用",
|
||
vectorStore: "向量存储",
|
||
fileStorage: "文件存储",
|
||
documentCount: "文档数",
|
||
faqCount: "问答数",
|
||
supportedFileTypes: "可上传格式",
|
||
chunking: "分块",
|
||
parentShort: "父",
|
||
childShort: "子",
|
||
},
|
||
create: "创建知识库",
|
||
edit: "编辑知识库",
|
||
delete: "删除知识库",
|
||
name: "名称",
|
||
description: "描述",
|
||
files: "文件",
|
||
settings: "设置",
|
||
documentCategoryTitle: "文档分类",
|
||
faqCategoryTitle: "问题分类",
|
||
untagged: "未分类",
|
||
tagClearAction: "取消分类",
|
||
tagUpdateSuccess: "标签更新成功",
|
||
tagSearchTooltip: "搜索标签",
|
||
category: "分类",
|
||
tagCreateAction: "新建标签",
|
||
tagSearchPlaceholder: "输入标签名称关键字",
|
||
tagNamePlaceholder: "请输入标签名称",
|
||
tagNameRequired: "请先输入标签名称",
|
||
tagCreateSuccess: "标签创建成功",
|
||
tagEditSuccess: "标签更新成功",
|
||
tagDeleteTitle: "删除标签",
|
||
tagDeleteDesc: '确定删除标签"{name}"?该标签下的所有 FAQ 条目将被一并删除',
|
||
tagDeleteDescDoc: '确定删除标签"{name}"?该标签下的所有文档将被一并删除',
|
||
tagDeleteSuccess: "标签已删除",
|
||
tagEditAction: "重命名",
|
||
tagDeleteAction: "删除",
|
||
tagEmptyResult: "未找到匹配的标签",
|
||
tagLabel: "分类",
|
||
tagPlaceholder: "请选择分类",
|
||
noTags: "暂无分类",
|
||
upload: "上传文件",
|
||
uploadSuccess: "文件上传成功!",
|
||
uploadFailed: "文件上传失败!",
|
||
fileExists: "文件已存在",
|
||
uploadingMultiple: "正在上传 {total} 个文件...",
|
||
uploadAllSuccess: "成功上传 {count} 个文件!",
|
||
uploadPartialSuccess: "上传完成:成功 {success} 个,失败 {fail} 个",
|
||
uploadAllFailed: "所有文件上传失败",
|
||
uploadingFolder: "正在上传文件夹中的 {total} 个文件...",
|
||
uploadingValidFiles: "正在上传 {valid}/{total} 个有效文件...",
|
||
noValidFiles: "没有有效的文件",
|
||
noValidFilesInFolder: "文件夹中的 {total} 个文件均不支持",
|
||
noValidFilesSelected: "选中的文件均不支持",
|
||
hiddenFilesFiltered: "已过滤 {count} 个隐藏文件",
|
||
imagesFilteredNoVLM: "已过滤 {count} 个图片文件(未启用VLM)",
|
||
videosFilteredNoVLM: "已跳过 {count} 个视频文件(暂不支持视频上传)",
|
||
audiosFilteredNoASR: "已过滤 {count} 个音频文件(未启用ASR)",
|
||
invalidFilesFiltered: "已过滤 {count} 个不支持的文件",
|
||
unsupportedFileType: "不支持的文件格式",
|
||
unsupportedTypesHint: "部分文档类型({types})暂无可用解析引擎,上传后将无法解析",
|
||
goToParserSettings: "前往配置",
|
||
failedFilesList: "失败文件列表:",
|
||
andMoreFiles: "...及其他 {count} 个文件",
|
||
duplicateFilesSkipped: "已忽略 {count} 个重复文件",
|
||
uploadFile: "上传文件",
|
||
uploadFileDesc: "支持 PDF、Word、TXT、图片、音频等",
|
||
importURL: "导入网页",
|
||
addDocument: "添加文档",
|
||
importURLDesc: "通过URL链接导入",
|
||
importURLTitle: "导入网页",
|
||
manualCreate: "手动创建",
|
||
manualCreateDesc: "直接编写文档内容",
|
||
urlRequired: "请输入URL",
|
||
invalidURL: "请输入有效的URL",
|
||
urlImportSuccess: "URL导入成功!",
|
||
urlImportFailed: "URL导入失败!",
|
||
urlExists: "该URL已存在",
|
||
urlLabel: "URL地址",
|
||
urlPlaceholder: "请输入网页URL,例如:https://example.com",
|
||
urlTip: "支持导入各类网页内容,系统会自动提取和解析网页中的文本内容",
|
||
typeURL: "网页",
|
||
typeManual: "手动创建",
|
||
typeFile: "文件",
|
||
channelLabel: "来源渠道",
|
||
channelWeb: "网页端",
|
||
channelApi: "API",
|
||
channelBrowserExtension: "浏览器插件",
|
||
channelWechat: "微信",
|
||
channelWecom: "企业微信",
|
||
channelFeishu: "飞书",
|
||
channelDingtalk: "钉钉",
|
||
channelSlack: "Slack",
|
||
channelIm: "IM 渠道",
|
||
channelNotion: "Notion",
|
||
channelYuque: "语雀",
|
||
channelUpload: "上传",
|
||
channelManual: "手动",
|
||
channelUrl: "网页",
|
||
channelUnknown: "未知",
|
||
urlSource: "来源网址",
|
||
documentTitle: "文档标题",
|
||
webContent: "网页内容",
|
||
documentContent: "文档内容",
|
||
importTime: "导入时间",
|
||
createTime: "创建时间",
|
||
createdAt: "创建",
|
||
updatedAt: "更新",
|
||
clickToViewFull: "点击卡片查看全文与分段",
|
||
characters: "字符",
|
||
segment: "片段",
|
||
chunkCount: "共 {count} 个片段",
|
||
viewOriginal: "查看原文件",
|
||
viewChunks: "查看分块",
|
||
viewMerged: "全文",
|
||
originalFileNotSupported: "该文件类型不支持原文件展示,请下载查看",
|
||
loadOriginalFailed: "加载原文件内容失败",
|
||
questions: "问题",
|
||
generatedQuestions: "生成的问题",
|
||
childChunk: "子块",
|
||
viewParentContext: "查看父块上下文",
|
||
parentContextLoadFailed: "加载父上下文失败",
|
||
confirmDeleteQuestion: "确定要删除这个问题吗?删除后将同时移除对应的向量索引。",
|
||
legacyQuestionCannotDelete: "旧格式问题无法删除,请重新生成问题",
|
||
docActionUnsupported: "当前知识库类型不支持该操作",
|
||
notInitialized:
|
||
"该知识库尚未完成初始化配置,请先前往设置页面配置模型信息后再上传文件",
|
||
missingStorageEngine:
|
||
"该知识库尚未选择存储引擎,请先前往设置页面配置存储引擎后再上传内容。",
|
||
missingStorageEngineUpload: "请先配置存储引擎后再上传内容",
|
||
goToStorageSettings: "前往配置",
|
||
getInfoFailed: "获取知识库信息失败,无法上传文件",
|
||
missingId: "缺少知识库ID",
|
||
deleteFailed: "删除失败,请稍后再试!",
|
||
quickActions: "快捷操作",
|
||
createKnowledgeBase: "创建知识库",
|
||
knowledgeBaseName: "知识库名称",
|
||
enterName: "输入知识库名称",
|
||
embeddingModel: "嵌入模型",
|
||
selectEmbeddingModel: "选择嵌入模型",
|
||
summaryModel: "摘要模型",
|
||
selectSummaryModel: "选择摘要模型",
|
||
rerankModel: "重排序模型",
|
||
selectRerankModel: "选择重排序模型(可选)",
|
||
createSuccess: "知识库创建成功",
|
||
createFailed: "知识库创建失败",
|
||
updateSuccess: "知识库更新成功",
|
||
updateFailed: "知识库更新失败",
|
||
deleteConfirm: "确定要删除此知识库吗?",
|
||
fileName: "文件名称",
|
||
fileSize: "文件大小",
|
||
uploadTime: "上传时间",
|
||
status: "状态",
|
||
actions: "操作",
|
||
processing: "处理中",
|
||
completed: "已完成",
|
||
failed: "失败",
|
||
noFiles: "暂无文件",
|
||
dragFilesHere: "拖拽文件至此或",
|
||
clickToUpload: "点击上传",
|
||
supportedFormats: "支持格式",
|
||
maxFileSize: "最大文件大小",
|
||
viewDetails: "查看详情",
|
||
downloadFile: "下载文件",
|
||
deleteFile: "删除文件",
|
||
confirmDeleteFile: "确定要删除此文件吗?",
|
||
totalFiles: "文件总数",
|
||
totalSize: "总大小",
|
||
newSession: "新会话",
|
||
editDocument: "编辑文档",
|
||
rebuildDocument: "重建知识",
|
||
rebuildConfirm: '确认重建文档"{fileName}"?该操作会清理现有分块并重新解析。',
|
||
rebuildSubmitted: "重建任务已提交",
|
||
rebuildFailed: "重建失败,请稍后再试",
|
||
rebuildInProgress: "当前文档正在解析中,请稍后重试",
|
||
cancelParse: "停止解析",
|
||
cancelParseConfirmBody: '确认停止解析"{title}"?已写入的分块会保留,可稍后通过"重建"重新触发;优化阶段(摘要 / 问答 / 知识图谱)的待执行任务会被立即丢弃。',
|
||
cancelParseSubmitted: "已停止解析",
|
||
cancelParseFailed: "停止失败,请稍后再试",
|
||
draft: "草稿",
|
||
draftTip: "暂存内容,未参与检索",
|
||
untitledDocument: "未命名文档",
|
||
deleteDocument: "删除文档",
|
||
moveDocument: "移动到...",
|
||
moveToKnowledgeBase: "移动到知识库",
|
||
moveSelectTarget: "选择目标知识库",
|
||
moveNoTargets: "没有兼容的目标知识库(需要相同类型和 Embedding 模型)",
|
||
moveMode: "移动模式",
|
||
moveModeReuseVectors: "复用向量(快速)",
|
||
moveModeReuseVectorsDesc: "直接移动分块和向量索引,适用于分片配置相同的情况",
|
||
moveModeReparse: "重新解析",
|
||
moveModeReparseDesc: "使用目标知识库的分片配置重新解析文档",
|
||
moveConfirm: "确认移动",
|
||
moveConfirmTitle: "确认移动设置",
|
||
moveStarted: "移动任务已提交",
|
||
moveFailed: "移动失败",
|
||
moveCompleted: "移动完成",
|
||
moveCompletedWithErrors: "移动完成:{success} 成功,{failed} 失败",
|
||
moveProgress: "正在移动...",
|
||
parsingFailed: "解析失败",
|
||
parsingInProgress: "解析中...",
|
||
generatingSummary: "生成摘要中...",
|
||
documentSummary: "摘要",
|
||
deleteConfirmation: "删除确认",
|
||
confirmDeleteDocument: '确认删除文档"{fileName}",删除后将无法恢复',
|
||
cancel: "取消",
|
||
confirmDelete: "确认删除",
|
||
viewModeGrid: "卡片视图",
|
||
viewModeList: "列表视图",
|
||
viewModeToggle: "切换视图",
|
||
columnName: "文件名",
|
||
columnTag: "标签",
|
||
columnSize: "大小",
|
||
columnType: "类型",
|
||
columnSource: "来源",
|
||
columnStatus: "状态",
|
||
columnUpdatedAt: "更新时间",
|
||
columnActions: "操作",
|
||
selectAll: "全选",
|
||
selectedCount: "已选 {count} 项",
|
||
clearSelection: "取消选择",
|
||
batchDelete: "批量删除",
|
||
batchDeleteConfirmation: "批量删除确认",
|
||
confirmBatchDeleteDocument: "确认删除选中的 {count} 个文档?删除后将无法恢复。",
|
||
batchDeleteSuccess: "成功删除 {count} 个文档",
|
||
batchDeleteFailed: "批量删除失败",
|
||
statusCompleted: "已完成",
|
||
statusProcessing: "解析中",
|
||
statusFinalizing: "优化中",
|
||
statusPending: "等待中",
|
||
statusFailed: "失败",
|
||
statusCancelled: "已取消",
|
||
statusDraft: "草稿",
|
||
selectKnowledgeBaseFirst: "请先选择知识库",
|
||
sessionCreationFailed: "创建会话失败",
|
||
sessionCreationError: "会话创建错误",
|
||
settingsParsingFailed: "设置解析失败",
|
||
fileUploadEventReceived:
|
||
"收到文件上传事件,上传的知识库ID:{uploadedKbId},当前知识库ID:{currentKbId}",
|
||
matchingKnowledgeBase: "知识库匹配,开始更新文件列表",
|
||
routeParamChange: "路由参数变化,重新获取知识库内容",
|
||
fileUploadEventListening: "监听文件上传事件",
|
||
apiCallKnowledgeFiles: "直接调用API获取知识库文件列表",
|
||
responseInterceptorData:
|
||
"由于响应拦截器已返回data,result是响应数据的一部分",
|
||
hookProcessing: "按照useKnowledgeBase hook方法处理",
|
||
errorHandling: "错误处理",
|
||
priorityCurrentPageKbId: "优先使用当前页面的知识库ID",
|
||
fallbackLocalStorageKbId:
|
||
"如果当前页面没有知识库ID,尝试从localStorage的设置中获取知识库ID",
|
||
createNewKnowledgeBase: "创建知识库",
|
||
uninitializedWarning:
|
||
"部分知识库未初始化,需要先在设置中配置模型信息才能添加知识文档",
|
||
initializedStatus: "已初始化",
|
||
notInitializedStatus: "未初始化",
|
||
needSettingsFirst: "需要先在设置中配置模型信息才能添加知识",
|
||
documents: "文档",
|
||
configureModelsFirst: "请先在设置中配置模型信息",
|
||
confirmDeleteKnowledgeBase: "确认删除此知识库?",
|
||
createKnowledgeBaseDialog: "创建知识库",
|
||
enterNameKb: "输入名称",
|
||
enterDescriptionKb: "输入描述",
|
||
createKb: "创建",
|
||
deleted: "已删除",
|
||
deleteFailedKb: "删除失败",
|
||
noDescription: "无描述",
|
||
emptyKnowledgeDragDrop: "知识为空,拖放上传",
|
||
pdfDocFormat: "pdf、doc 格式文件,不超过10M",
|
||
textMarkdownFormat: "text、markdown格式文件,不超过200K",
|
||
dragFileNotText: "请拖拽文件而不是文本或链接",
|
||
searchPlaceholder: "搜索知识库...",
|
||
docSearchPlaceholder: "搜索文档名称...",
|
||
fileTypeFilter: "文件类型",
|
||
allFileTypes: "全部类型",
|
||
parseStatusFilter: "解析状态",
|
||
allParseStatuses: "全部状态",
|
||
parseStatusPending: "等待中",
|
||
parseStatusProcessing: "处理中",
|
||
parseStatusCompleted: "已完成",
|
||
parseStatusFailed: "失败",
|
||
sourceFilter: "来源",
|
||
allSources: "全部来源",
|
||
sourceWeb: "网页",
|
||
sourceApi: "API",
|
||
sourceBrowserExtension: "浏览器扩展",
|
||
sourceUpload: "本地上传",
|
||
sourceUrl: "URL 导入",
|
||
sourceManual: "手动创建",
|
||
updatedTimeFilter: "更新时间",
|
||
updatedTimeFrom: "起始时间",
|
||
updatedTimeTo: "结束时间",
|
||
noMatch: "未找到匹配的知识库",
|
||
noKnowledge: "暂无可用知识库",
|
||
loadingFailed: "加载知识库失败",
|
||
operationNotSupportedForType: "当前知识库类型不支持该操作",
|
||
allFilesSkippedNoEngine: "所选文件类型暂无可用解析引擎,已全部跳过",
|
||
filesSkippedNoEngine: "{count} 个文件因无可用解析引擎被跳过",
|
||
allUploadSuccess: "所有文件上传成功({count}个)",
|
||
partialUploadSuccess: "部分文件上传成功(成功:{success},失败:{fail})",
|
||
allUploadFailed: "所有文件上传失败({count}个)",
|
||
deleteSuccess: "知识删除成功!",
|
||
chunkLoadFailed: "分块加载失败",
|
||
},
|
||
knowledgeStages: {
|
||
title: "处理流水线",
|
||
root: "知识处理",
|
||
attempt: "第 {n} 次尝试",
|
||
attemptLatest: "第 {n} 次尝试(最新)",
|
||
retry: "重新解析",
|
||
refresh: "立即刷新",
|
||
copy: "复制",
|
||
copyDetails: "复制详情",
|
||
copied: "已复制到剪贴板",
|
||
close: "关闭",
|
||
live: "LIVE",
|
||
liveTooltip: "解析进行中,每 2 秒自动刷新一次",
|
||
autoRefreshOn: "自动刷新中",
|
||
autoRefreshOff: "已停止自动刷新",
|
||
fetchFailed: "最近 {n} 次刷新都失败了,数据可能已过期,点击刷新按钮重试",
|
||
fetchFailedShort: "刷新失败",
|
||
viewTrace: "查看 Trace",
|
||
traceBtn: "Trace",
|
||
expandBranch: "展开子项",
|
||
collapseBranch: "收起子项",
|
||
rowSelectHint: "点击查看详情;左侧箭头展开或收起子项",
|
||
resizeDrawer: "拖拽调整面板宽度",
|
||
justNow: "刚刚",
|
||
secondsAgo: "{n} 秒前",
|
||
minutesAgo: "{n} 分钟前",
|
||
noActivity: "暂无解析记录",
|
||
totalDuration: "总耗时:{d}",
|
||
total: "总耗时 {d}",
|
||
head: {
|
||
duration: "总耗时",
|
||
stages: "阶段",
|
||
stagesDone: "已完成阶段",
|
||
stagesProgress: "当前阶段",
|
||
stage: "阶段",
|
||
status: "状态",
|
||
attempt: "尝试",
|
||
updated: "更新于",
|
||
},
|
||
tab: {
|
||
overview: "概览",
|
||
raw: "原始 JSON",
|
||
},
|
||
detail: {
|
||
started: "开始",
|
||
finished: "结束",
|
||
duration: "耗时",
|
||
offset: "起点偏移",
|
||
timing: "时序",
|
||
identity: "身份信息",
|
||
stageBreakdown: "阶段分解",
|
||
stageOrder: "阶段顺序",
|
||
childCount: "子 span 数",
|
||
kind: "类型",
|
||
status: "状态",
|
||
name: "名称",
|
||
input: "输入",
|
||
output: "输出",
|
||
metadata: "元数据",
|
||
traceMetadata: "Trace 级元数据",
|
||
metadataHint: "记录与 Langfuse 等可观测性系统关联的辅助字段(如 trace ID)。各阶段的业务入参/出参在「输入」「输出」标签中查看。",
|
||
metadataEmpty: "当前 span 没有元数据。阶段与子任务的入参/出参请查看「输入」「输出」;若已接入 Langfuse,trace 级字段会显示在「概览」。",
|
||
error: "错误",
|
||
empty: "暂无数据",
|
||
inProgress: "进行中",
|
||
elapsed: "已用",
|
||
placeholderHint: "此阶段未记录详细 span,仅展示推断状态。",
|
||
showJson: "展开 JSON",
|
||
hideJson: "收起 JSON",
|
||
includingChildren: "含子任务",
|
||
},
|
||
stage: {
|
||
docreader: "文档解析",
|
||
chunking: "分块",
|
||
embedding: "向量化",
|
||
multimodal: "多模态识别",
|
||
postprocess: "后处理",
|
||
},
|
||
status: {
|
||
pending: "等待中",
|
||
running: "进行中",
|
||
done: "已完成",
|
||
failed: "失败",
|
||
skipped: "已跳过",
|
||
cancelled: "已取消",
|
||
},
|
||
errorCode: {
|
||
DOCREADER_TIMEOUT: "文档解析超时",
|
||
DOCREADER_TIMEOUT_SUGGESTION: "文件可能过大或解析服务繁忙,请稍后重试或拆分文档。",
|
||
DOCREADER_UNAVAILABLE: "文档解析服务不可用",
|
||
DOCREADER_UNAVAILABLE_SUGGESTION: "解析服务离线,请联系管理员。",
|
||
DOCREADER_PARSE_FAILED: "文档解析失败",
|
||
DOCREADER_PARSE_FAILED_SUGGESTION: "无法解析该文件,请确认文件未损坏。",
|
||
CHUNKING_FAILED: "分块失败",
|
||
CHUNKING_FAILED_SUGGESTION: "请尝试调整知识库的分块配置。",
|
||
EMBEDDING_RATE_LIMIT: "向量服务被限流",
|
||
EMBEDDING_RATE_LIMIT_SUGGESTION: "向量服务触发限流,请稍后重试。",
|
||
EMBEDDING_PROVIDER_FAIL: "向量服务错误",
|
||
EMBEDDING_PROVIDER_FAIL_SUGGESTION: "向量服务返回错误,请检查供应商配置。",
|
||
VECTORSTORE_WRITE_FAILED: "向量库写入失败",
|
||
VECTORSTORE_WRITE_FAILED_SUGGESTION: "向量库拒绝写入,请检查向量库可用性。",
|
||
MULTIMODAL_VLM_FAILED: "图像理解失败",
|
||
MULTIMODAL_VLM_FAILED_SUGGESTION: "部分图像无法处理,文档可能仍可使用。",
|
||
MULTIMODAL_ALL_FAILED: "全部图像多模态处理失败",
|
||
MULTIMODAL_ALL_FAILED_SUGGESTION: "请检查多模态模型配置。",
|
||
TASK_TIMEOUT: "任务超过最大运行时间",
|
||
TASK_TIMEOUT_SUGGESTION: "任务运行时间超出限制,请重试或联系支持人员。",
|
||
UPSTREAM_FAILED: "上游阶段失败已中止",
|
||
UPSTREAM_FAILED_SUGGESTION: "前置阶段失败,导致本步骤无法执行。",
|
||
UNKNOWN: "未知错误",
|
||
UNKNOWN_SUGGESTION: "请查看应用日志获取详细信息。",
|
||
},
|
||
},
|
||
chat: {
|
||
title: "对话",
|
||
newChat: "新对话",
|
||
suggestedQuestions: "你可以这样问我",
|
||
suggestedQuestionsLoading: "正在加载推荐问题...",
|
||
inputPlaceholder: "请输入您的消息...",
|
||
send: "发送",
|
||
thinking: "思考中...",
|
||
regenerate: "重新生成",
|
||
copy: "复制",
|
||
delete: "删除",
|
||
reference: "引用",
|
||
noMessages: "暂无消息",
|
||
waitingForAnswer: "等待回答...",
|
||
cannotAnswer: "抱歉,我无法回答这个问题。",
|
||
summarizingAnswer: "总结答案中...",
|
||
loading: "加载中...",
|
||
enterDescription: "输入描述",
|
||
referencedContent: "引用了 {count} 个相关资料",
|
||
deepThinking: "深度思考完成",
|
||
knowledgeBaseQandA: "知识库问答",
|
||
askKnowledgeBase: "向知识库提问",
|
||
sourcesCount: "{count} 个来源",
|
||
pleaseEnterContent: "请输入内容!",
|
||
pleaseUploadKnowledgeBase: "请先上传知识库!",
|
||
replyingPleaseWait: "正在回复,请稍后再试!",
|
||
createSessionFailed: "创建会话失败",
|
||
createSessionError: "创建会话出错",
|
||
unableToGetKnowledgeBaseId: "无法获取知识库ID",
|
||
summaryInProgress: "正在总结答案……",
|
||
thinkingAlt: "正在思考",
|
||
deepThoughtCompleted: "已深度思考",
|
||
deepThoughtAlt: "深度思考完成",
|
||
referencesTitle: "参考了{count}个相关内容",
|
||
referencesDocCount: "引用了{count}篇文档",
|
||
referencesDocAndWebCount: "引用了{docCount}篇文档和{webCount}条网页",
|
||
referenceChunkCount: "{count}个片段",
|
||
fallbackHint: "未从知识库中检索到相关内容,以上为模型直接回答",
|
||
channelWeb: "网页",
|
||
channelApi: "API",
|
||
channelIm: "IM",
|
||
chunkLabel: "片段{index}:",
|
||
navigateToDocument: "查看文档详情",
|
||
referenceIconAlt: "参考内容图标",
|
||
chunkIdLabel: "片段ID:",
|
||
documentIdLabel: "文档ID:",
|
||
noPlanSteps: "未提供具体步骤",
|
||
chunkIndexLabel: "片段 #{index}",
|
||
chunkPositionLabel: "(位置: {position})",
|
||
noRelatedChunks: "没有找到相关片段",
|
||
noSearchResults: "没有找到搜索结果",
|
||
relevanceHigh: "高相关",
|
||
relevanceMedium: "中相关",
|
||
relevanceLow: "低相关",
|
||
relevanceWeak: "弱相关",
|
||
webSearchNoResults: "未找到搜索结果",
|
||
otherSource: "其他来源",
|
||
webGroupIntro: "以下 {count} 条内容来自",
|
||
graphConfigTitle: "图谱配置",
|
||
entityTypesLabel: "实体类型:",
|
||
relationTypesLabel: "关系类型:",
|
||
graphResultsHeader: "找到 {count} 条相关结果",
|
||
graphNoResults: "未找到相关的图谱信息",
|
||
unknownLink: "未知链接",
|
||
contentLengthLabel: "长度 {value}",
|
||
notProvided: "未提供",
|
||
promptLabel: "提示词",
|
||
errorMessageLabel: "错误信息",
|
||
summaryLabel: "总结",
|
||
rawTextLabel: "原始文本",
|
||
collapseRaw: "收起原文",
|
||
expandRaw: "展开原文",
|
||
noWebContent: "未获取到网页内容",
|
||
lengthChars: "{value} 字",
|
||
lengthThousands: "{value} 千字",
|
||
lengthTenThousands: "{value} 万字",
|
||
sqlQueryExecuted: "执行的 SQL 查询:",
|
||
sqlResultsLabel: "返回结果:",
|
||
rowsLabel: "行",
|
||
columnsLabel: "列",
|
||
noDatabaseRecords: "未找到匹配的记录",
|
||
nullValuePlaceholder: "<NULL>",
|
||
documentTitleLabel: "文档标题:",
|
||
chunkCountLabel: "片段数量:",
|
||
chunkCountValue: "{count} 个片段",
|
||
documentDescriptionLabel: "文档描述:",
|
||
documentStatusLabel: "处理状态:",
|
||
documentSourceLabel: "来源:",
|
||
documentFileLabel: "文件信息:",
|
||
documentMetadataLabel: "元数据",
|
||
documentInfoSummaryLabel: "文档信息",
|
||
documentInfoCount: "成功 {count} / 请求 {requested}",
|
||
documentInfoErrors: "错误详情",
|
||
documentInfoEmpty: "暂无文档信息",
|
||
statusDescription: "状态说明",
|
||
statusIndexed: "文档已索引并可搜索",
|
||
statusSearchable: "可使用搜索工具查找文档内容",
|
||
statusChunkDetailAvailable: "可使用 get_chunk_detail 查看片段详情",
|
||
positionLabel: "位置:",
|
||
chunkPositionValue: "第 {index} 个片段",
|
||
contentLengthLabelSimple: "内容长度:",
|
||
fullContentLabel: "完整内容",
|
||
copyContent: "复制内容",
|
||
knowledgeBaseCount: "共 {count} 个知识库",
|
||
noKnowledgeBases: "没有可用的知识库",
|
||
rawOutputLabel: "原始输出",
|
||
wikiWritePageTitle: "Wiki 页面写入",
|
||
wikiReplaceTextTitle: "Wiki 文本替换",
|
||
wikiRenamePageTitle: "Wiki 页面重命名",
|
||
wikiDeletePageTitle: "Wiki 页面删除",
|
||
wikiActionCreated: "已创建",
|
||
wikiActionUpdated: "已更新",
|
||
wikiActionRenamed: "已重命名",
|
||
wikiActionDeleted: "已删除",
|
||
wikiFieldSlug: "页面路径",
|
||
wikiFieldTitle: "标题",
|
||
wikiFieldPageType: "类型",
|
||
wikiFieldSummary: "摘要",
|
||
wikiFieldOldText: "原文本",
|
||
wikiFieldNewText: "新文本",
|
||
wikiFieldOldSlug: "原路径",
|
||
wikiFieldNewSlug: "新路径",
|
||
wikiFieldAffectedPages: "受影响页面",
|
||
wikiAffectedCount: "{count} 个页面的链接已更新",
|
||
selectKnowledgeBaseWarning: "请至少选择一个知识库",
|
||
processError: "处理出错",
|
||
sessionExcerpt: "会话摘录",
|
||
noAnswerContent: "(无回答内容)",
|
||
noMatchFound: "未找到匹配的内容",
|
||
deleteSessionFailed: "删除失败,请稍后再试!",
|
||
imageTooMany: "最多上传5张图片",
|
||
imageTypeSizeError: "仅支持 JPG/PNG/GIF/WEBP 格式,单张不超过 10MB",
|
||
imageUploadTooltip: "上传图片(支持粘贴/拖拽)",
|
||
attachmentUploadTooltip: "上传附件(文档、音频等)",
|
||
attachmentWithCount: "已上传 {count} 个附件",
|
||
attachmentTooMany: "最多上传 {max} 个附件",
|
||
attachmentTooLarge: "文件 {name} 超过 {max}MB 限制",
|
||
attachmentTypeNotSupported: "不支持的文件类型:{name}",
|
||
},
|
||
settings: {
|
||
title: "设置",
|
||
modelConfig: "模型配置",
|
||
modelManagement: "模型管理",
|
||
agentConfig: "Agent配置",
|
||
conversationConfig: "对话设置",
|
||
conversationStrategy: "对话策略",
|
||
webSearchConfig: "网络搜索",
|
||
enableMemory: "开启记忆功能",
|
||
enableMemoryDesc: "开启后,系统将记录您的对话历史,并在后续对话中自动回忆相关内容,提供更个性化的回答。",
|
||
autoCheckUpdate: '自动下载更新',
|
||
autoCheckUpdateDesc: '开启后自动检查并在后台下载最新版本安装包。',
|
||
memoryRequiresNeo4j: "记忆功能依赖 Neo4j 图数据库,请先配置并启用 Neo4j(设置环境变量 NEO4J_ENABLE=true)后再开启此功能。",
|
||
memoryHowToEnable: "查看 Neo4j 配置指南",
|
||
vectorStoreEngine: "向量数据库引擎",
|
||
parserEngine: "解析引擎",
|
||
storageEngine: "存储引擎",
|
||
mcpService: "MCP服务",
|
||
versionInfo: "版本信息",
|
||
tenantInfo: "空间信息",
|
||
apiInfo: "API信息",
|
||
navGroups: {
|
||
account: "账户",
|
||
workspace: "空间",
|
||
modelsRuntime: "模型",
|
||
dataExtensions: "数据与扩展",
|
||
platform: "平台",
|
||
},
|
||
roleDenied: {
|
||
title: "权限不足",
|
||
desc: "你当前的角色无权访问此设置项。请联系本空间的管理员获取所需角色。",
|
||
}, weknoraCloud: {
|
||
title: "WeKnora Cloud",
|
||
description: "配置 WeKnora Cloud 的 APPID 和 APPSECRET 凭证。凭证用于模型服务和文档解析引擎。",
|
||
viewDocs: "查看文档",
|
||
unconfigured: "尚未配置凭证,请填写 APPID 和 APPSECRET",
|
||
configured: "凭证已配置,状态正常",
|
||
expired: "WeKnora Cloud 凭证已失效",
|
||
expiredDefault: "服务重启后加密密钥已变更,已保存的凭证无法解密。请重新填写凭证。",
|
||
reconfigure: "重新配置",
|
||
appIdLabel: "APPID",
|
||
appIdDesc: "WeKnora Cloud 的应用 ID",
|
||
appIdPlaceholder: "请输入 APPID",
|
||
appSecretLabel: "APPSECRET",
|
||
appSecretDesc: "WeKnora Cloud 的应用密钥",
|
||
appSecretPlaceholder: "请输入 APPSECRET",
|
||
saveHint: "保存后将验证服务可达性并加密存储凭证",
|
||
saveBtn: "保存凭证",
|
||
usageTitle: "使用说明",
|
||
usageSteps: "1. 在此页面填写并保存 APPID 和 APPSECRET\n2. 模型服务:前往「模型管理」添加模型,选择 Remote API 来源,厂商选择「WeKnoraCloud」\n3. 文档解析:前往「知识库设置 → 解析引擎」,为对应文件类型选择「WeKnora Cloud」引擎",
|
||
fillRequired: "请填写 APPID 和 APPSECRET",
|
||
saveSuccess: "凭证保存成功",
|
||
saveFailed: "凭证保存失败",
|
||
credentialConfigured: "WeKnoraCloud 凭证已配置",
|
||
credentialExpired: "凭证已失效,请重新配置。",
|
||
credentialUnconfigured: "尚未配置 WeKnoraCloud 凭证,请先填写 APPID 和 APPSECRET。",
|
||
checkingStatus: "正在检查凭证状态...",
|
||
goToSettings: "前往设置中配置",
|
||
modelHintConfigured: "WeKnoraCloud 凭证已配置。支持的模型可参考",
|
||
modelHintDocsLink: "接口文档",
|
||
},
|
||
system: "系统设置",
|
||
systemConfig: "系统配置",
|
||
knowledgeBaseSettings: "知识库设置",
|
||
configureKbModels: "为此知识库配置模型和文档分割参数",
|
||
manageSystemModels: "管理和更新系统模型及服务配置",
|
||
basicInfo: "基本信息",
|
||
documentSplitting: "文档分割",
|
||
apiEndpoint: "API端点",
|
||
enterApiEndpoint: "输入API端点,例如:http://localhost",
|
||
enterApiKey: "输入API密钥",
|
||
enterKnowledgeBaseId: "输入知识库ID",
|
||
saveConfig: "保存配置",
|
||
reset: "重置",
|
||
configSaved: "配置保存成功",
|
||
enterApiEndpointRequired: "请输入API端点",
|
||
enterApiKeyRequired: "请输入API密钥",
|
||
enterKnowledgeBaseIdRequired: "请输入知识库ID",
|
||
name: "名称",
|
||
enterName: "输入名称",
|
||
description: "描述",
|
||
chunkSize: "分块大小",
|
||
chunkOverlap: "分块重叠",
|
||
save: "保存",
|
||
saving: "保存中...",
|
||
saveSuccess: "保存成功",
|
||
saveFailed: "保存失败",
|
||
model: "模型",
|
||
llmModel: "LLM模型",
|
||
embeddingModel: "嵌入模型",
|
||
rerankModel: "重排序模型",
|
||
vlmModel: "多模态模型",
|
||
modelName: "模型名称",
|
||
modelUrl: "模型地址",
|
||
apiKey: "API密钥",
|
||
cancel: "取消",
|
||
saveFailedSettings: "设置保存失败",
|
||
enterNameRequired: "请输入名称",
|
||
parser: {
|
||
title: "解析引擎",
|
||
description: "文档解析引擎状态及配置。此处设置优先于服务端环境变量,留空则使用环境变量默认值。",
|
||
loading: "加载中...",
|
||
retry: "重试",
|
||
noEngineDetected: "未检测到解析引擎,请确认 DocReader 服务正常运行。",
|
||
disconnected: "未连接",
|
||
connected: "已连接",
|
||
available: "可用",
|
||
unavailable: "不可用",
|
||
builtinDesc: "DocReader 内置解析引擎(docx/pdf/xlsx 等复杂格式)",
|
||
currentAddr: "当前",
|
||
envVarHint: "修改请设置环境变量 DOCREADER_ADDR、DOCREADER_TRANSPORT(grpc/http),重启服务生效。",
|
||
selfHostedEndpoint: "自建端点",
|
||
formulaRecognition: "公式识别",
|
||
tableRecognition: "表格识别",
|
||
language: "语言",
|
||
testConnection: "测试连接",
|
||
saveConfig: "保存配置",
|
||
docs: "文档",
|
||
loadFailed: "加载解析引擎列表失败",
|
||
ensureDocreaderConnected: "请先确保 DocReader 服务已通过环境变量配置并已连接",
|
||
checkDoneStatusUpdated: "已使用当前填写参数检测,上方状态已更新",
|
||
checkSuccess: "测试连接成功",
|
||
checkFailed: "检测失败",
|
||
saveSuccess: "保存成功",
|
||
saveFailed: "保存失败",
|
||
mineruEndpointPlaceholder: "如 https://your-mineru.example.com",
|
||
defaultPipeline: "默认 pipeline",
|
||
languagePlaceholder: "如 ch、en、ja(默认 ch)",
|
||
mineruCloudApiKeyPlaceholder: "MinerU 云服务 API Key",
|
||
vlmLabel: "vlm(视觉语言模型)",
|
||
mineruHtmlLabel: "MinerU-HTML(HTML 解析)",
|
||
serverUrl: "服务器地址",
|
||
vlmServerUrlPlaceholder: "如 http://your-vllm-server:8000",
|
||
vlmServerUrlHint: "当 Backend 选择 vlm-http-client 或 hybrid-http-client 时需要填写",
|
||
},
|
||
storage: {
|
||
title: "存储引擎",
|
||
description: "配置文档与图片的存储方式。此处设置各引擎参数,知识库中仅选择使用哪个引擎。",
|
||
loading: "加载中...",
|
||
retry: "重试",
|
||
defaultEngine: "默认引擎",
|
||
defaultEngineDesc: "新建知识库时默认选用的存储引擎",
|
||
engineLocal: "Local(本地)",
|
||
engineCos: "腾讯云 COS",
|
||
engineTos: "火山引擎 TOS",
|
||
engineOss: "阿里云 OSS",
|
||
engineS3: "AWS S3",
|
||
localTitle: "Local(本地存储)",
|
||
localDesc: "使用服务器本地文件系统存储文件,仅适合单机部署。",
|
||
available: "可用",
|
||
needsConfig: "需要配置",
|
||
configurable: "可配置",
|
||
pathPrefix: "路径前缀(可选)",
|
||
pathPrefixPlaceholder: "如 weknora/images",
|
||
prefixPlaceholder: "如 weknora",
|
||
bucketName: "Bucket 名称",
|
||
bucketSelectPlaceholder: "选择或输入 Bucket",
|
||
bucketPlaceholder: "存储桶名称",
|
||
minioDesc: "S3 兼容的自托管对象存储,适合内网和私有云部署。",
|
||
minioDocker: "Docker 部署",
|
||
minioRemote: "远程 MinIO",
|
||
detected: "已检测",
|
||
notDetected: "未检测到",
|
||
minioDockerDetected: "已检测到 Docker 部署的 MinIO 环境变量,连接信息由环境变量提供,无需手动填写。",
|
||
minioDockerNotDetected: "未检测到 MinIO 环境变量(MINIO_ENDPOINT 等),请确认 Docker Compose 配置正确。",
|
||
minioRemoteHint: "连接到远程 MinIO 服务,需要手动填写连接信息。",
|
||
cosTitle: "腾讯云 COS",
|
||
cosDesc: "腾讯云对象存储服务,适合公有云部署,支持 CDN 加速。",
|
||
cosSecretIdPlaceholder: "腾讯云 API 密钥 SecretId",
|
||
cosSecretKeyPlaceholder: "腾讯云 API 密钥 SecretKey",
|
||
cosAppIdPlaceholder: "腾讯云账号 AppID",
|
||
tosTitle: "火山引擎 TOS",
|
||
tosDesc: "火山引擎对象存储服务(TOS),适合公有云部署。",
|
||
tosAccessKeyPlaceholder: "火山引擎 Access Key",
|
||
tosSecretKeyPlaceholder: "火山引擎 Secret Key",
|
||
s3Title: "AWS S3",
|
||
s3Desc: "AWS S3 及兼容的对象存储服务,适合公有云部署。",
|
||
s3AccessKeyPlaceholder: "AWS Access Key",
|
||
s3SecretKeyPlaceholder: "AWS Secret Key",
|
||
ks3Title: "金山云 KS3",
|
||
ks3Desc: "金山云对象存储服务(KS3),适合公有云部署。",
|
||
ks3AccessKeyPlaceholder: "金山云 Access Key",
|
||
ks3SecretKeyPlaceholder: "金山云 Secret Key",
|
||
ks3EndpointPlaceholder: "e.g. ks3-cn-beijing.ksyuncs.com",
|
||
ks3RegionPlaceholder: "e.g. BEIJING",
|
||
engineKs3: "金山云 KS3",
|
||
obsTitle: "华为云 OBS",
|
||
obsDesc: "华为云对象存储服务(OBS),适合公有云部署。",
|
||
obsAccessKeyPlaceholder: "华为云 Access Key",
|
||
obsSecretKeyPlaceholder: "华为云 Secret Key",
|
||
obsEndpointPlaceholder: "e.g. obs.cn-north-4.myhuaweicloud.com",
|
||
obsRegionPlaceholder: "e.g. cn-north-4",
|
||
engineObs: "华为云 OBS",
|
||
ossTitle: "阿里云 OSS",
|
||
ossDesc: "阿里云对象存储服务(OSS),适合公有云部署。",
|
||
ossAccessKeyPlaceholder: "阿里云 Access Key",
|
||
ossSecretKeyPlaceholder: "阿里云 Secret Key",
|
||
console: "控制台",
|
||
docs: "文档",
|
||
testConnection: "测试连接",
|
||
saveConfig: "保存配置",
|
||
loadFailed: "加载失败",
|
||
saveSuccess: "保存成功",
|
||
saveFailed: "保存失败",
|
||
unknownError: "未知错误",
|
||
requestFailed: "请求失败",
|
||
cos: "腾讯云 COS",
|
||
tos: "火山引擎 TOS",
|
||
oss: "阿里云 OSS",
|
||
ks3: "金山云 KS3",
|
||
obs: "华为云 OBS",
|
||
},
|
||
},
|
||
webSearchSettings: {
|
||
title: "网络搜索配置",
|
||
description:
|
||
"配置网络搜索功能,在回答问题时可以从互联网获取实时信息补充知识库内容",
|
||
// Provider entity management
|
||
providersTitle: "搜索引擎配置",
|
||
addProvider: "添加搜索引擎",
|
||
editProvider: "编辑搜索引擎",
|
||
noProviders: "暂无搜索引擎配置,点击「添加搜索引擎」开始配置。",
|
||
deleteConfirm: "确定要删除此搜索引擎配置吗?",
|
||
default: "默认",
|
||
providerNameLabel: "名称",
|
||
providerNamePlaceholder: "例如:生产环境 Bing 搜索",
|
||
providerTypeLabel: "引擎类型",
|
||
providerDescLabel: "备注",
|
||
providerDescPlaceholder: "可选,如:测试环境用",
|
||
engineIdLabel: "搜索引擎 ID",
|
||
setAsDefault: "设为默认",
|
||
testConnection: "测试连接",
|
||
testing: "测试中...",
|
||
free: "免费",
|
||
viewDocs: "查看文档获取密钥",
|
||
apiKeyUnchanged: "留空保持当前密钥不变",
|
||
noDescription: "暂无描述",
|
||
noProvidersDesc: "添加一个网络搜索引擎,为您的智能体提供实时的互联网信息检索能力。",
|
||
basicInfo: "基础信息",
|
||
credentials: "凭证信息",
|
||
setAsDefaultDesc: "当智能体没有指定特定的搜索引擎时,将默认使用此配置",
|
||
// Search behavior
|
||
searchBehaviorTitle: "搜索行为配置",
|
||
defaultProviderLabel: "默认搜索引擎",
|
||
defaultProviderDescription: "为未指定搜索引擎的智能体选择默认使用的搜索引擎",
|
||
providerLabel: "搜索引擎提供商",
|
||
providerDescription: "选择用于网络搜索的搜索引擎服务",
|
||
providerPlaceholder: "选择搜索引擎...",
|
||
proxyUrlLabel: "HTTP 代理",
|
||
proxyUrlPlaceholder: "例如 http://proxy.example.com:3128(可选,仅支持 http/https)",
|
||
proxyUrlHelp: "若环境访问搜索 API 需代理,在此填写;留空则使用系统环境变量 HTTP(S)_PROXY。",
|
||
apiKeyLabel: "API 密钥",
|
||
baseUrlLabel: "实例地址",
|
||
baseUrlPlaceholder: "https://searxng.example.com",
|
||
apiKeyDescription: "输入所选搜索引擎的 API 密钥",
|
||
apiKeyPlaceholder: "请输入 API 密钥",
|
||
maxResultsLabel: "最大结果数",
|
||
maxResultsDescription: "每次搜索返回的最大结果数量(1-50)",
|
||
includeDateLabel: "包含发布日期",
|
||
includeDateDescription: "在搜索结果中包含内容的发布日期信息",
|
||
compressionLabel: "压缩方法",
|
||
compressionDescription: "对搜索结果内容的压缩处理方法",
|
||
compressionNone: "无压缩",
|
||
compressionSummary: "LLM 摘要",
|
||
blacklistLabel: "URL 黑名单",
|
||
blacklistDescription:
|
||
"排除特定域名或 URL 的搜索结果,每行一个。支持通配符(*)和正则表达式(以/开头和结尾)",
|
||
blacklistPlaceholder: "例如:\n*://*.example.com/*\n/example\\.(net|org)/",
|
||
errors: {
|
||
unknown: "未知错误",
|
||
},
|
||
toasts: {
|
||
loadProvidersFailed: "加载搜索引擎列表失败: {message}",
|
||
saveSuccess: "网络搜索配置已保存",
|
||
saveFailed: "保存配置失败: {message}",
|
||
providerCreated: "搜索引擎配置已创建",
|
||
providerUpdated: "搜索引擎配置已更新",
|
||
providerDeleted: "搜索引擎配置已删除",
|
||
testSuccess: "连接测试成功",
|
||
testFailed: "连接测试失败",
|
||
},
|
||
},
|
||
vectorStoreSettings: {
|
||
title: "向量数据库引擎",
|
||
description: "注册和管理用于知识库搜索的向量数据库实例。",
|
||
storesTitle: "向量数据库",
|
||
addStore: "添加数据库",
|
||
editStore: "编辑数据库",
|
||
deleteConfirm: "确定要删除此向量数据库吗?",
|
||
emptyDesc: '尚未配置向量数据库。点击"添加数据库"开始设置。',
|
||
engineTypeLabel: "引擎类型",
|
||
nameLabel: "名称",
|
||
namePlaceholder: "例如:my-vector-store",
|
||
connectionInfo: "连接信息",
|
||
advancedIndexConfig: "高级设置",
|
||
fields: {
|
||
addr: "URL",
|
||
host: "主机",
|
||
port: "端口",
|
||
username: "用户名",
|
||
password: "密码",
|
||
api_key: "API 密钥",
|
||
use_tls: "使用 TLS",
|
||
scheme: "协议",
|
||
grpc_address: "gRPC 地址",
|
||
use_default_connection: "使用默认连接",
|
||
index_name: "索引名称",
|
||
number_of_shards: "分片数",
|
||
number_of_replicas: "副本数",
|
||
collection_prefix: "集合前缀",
|
||
collection_name: "集合名称",
|
||
shard_number: "分片数",
|
||
replication_factor: "副本因子",
|
||
shards_num: "分片数",
|
||
replica_number: "内存副本数",
|
||
desired_shard_count: "分片数",
|
||
insecure_skip_verify: "跳过 TLS 证书校验",
|
||
hnsw_m: "HNSW M(图度数)",
|
||
hnsw_ef_construction: "HNSW ef_construction",
|
||
hnsw_ef_search: "HNSW ef_search",
|
||
knn_engine: "k-NN 引擎",
|
||
},
|
||
envTag: "DEFAULT",
|
||
testConnection: "测试连接",
|
||
testing: "测试中...",
|
||
immutableNotice: "创建后无法更改引擎类型、连接和索引设置。\n如需更改,请删除后重新创建。",
|
||
insecureSkipVerifyWarning: "关闭 TLS 证书校验会使连接面临中间人攻击风险。仅可用于自签名证书的开发集群,切勿在生产环境使用。",
|
||
validation: {
|
||
nameRequired: "名称为必填项",
|
||
engineTypeRequired: "引擎类型为必填项",
|
||
fieldRequired: "{field}为必填项",
|
||
indexNamePattern: "必须以字母开头,仅允许字母、数字、下划线和连字符(最多128个字符)",
|
||
},
|
||
toasts: {
|
||
storeCreated: "向量数据库已创建",
|
||
storeUpdated: "向量数据库已更新",
|
||
storeDeleted: "向量数据库已删除",
|
||
testSuccess: "连接测试成功",
|
||
testFailed: "连接测试失败",
|
||
duplicateName: "同名向量数据库已存在",
|
||
errorGeneric: "发生错误,请重试。",
|
||
},
|
||
},
|
||
chatHistorySettings: {
|
||
title: "消息管理",
|
||
description: "配置聊天历史知识库,将对话消息自动向量化索引,实现语义搜索",
|
||
enableLabel: "启用消息索引",
|
||
enableDescription: "开启后,新的对话消息将自动索引到知识库,支持向量搜索",
|
||
embeddingModelLabel: "Embedding 模型",
|
||
embeddingModelDescription: "选择用于消息向量化的 Embedding 模型",
|
||
embeddingModelLocked: "已有消息被索引,Embedding 模型不可修改(修改需清空索引数据)",
|
||
statsTitle: "索引统计",
|
||
statsIndexedMessages: "已索引消息",
|
||
statsNotConfigured: "消息索引未配置",
|
||
statsNotConfiguredDesc: "启用并选择 Embedding 模型后,对话消息将自动向量化索引",
|
||
toasts: {
|
||
saveSuccess: "消息管理配置已保存",
|
||
saveFailed: "保存配置失败: {message}",
|
||
loadFailed: "加载配置失败: {message}",
|
||
},
|
||
},
|
||
retrievalSettings: {
|
||
title: "搜索设置",
|
||
description: "配置知识库搜索和消息搜索的全局检索参数",
|
||
embeddingTopKLabel: "向量检索数量 (Top K)",
|
||
embeddingTopKDescription: "向量搜索返回的最大结果数量",
|
||
vectorThresholdLabel: "向量相似度阈值",
|
||
vectorThresholdDescription: "向量搜索的最低相似度分数(0-1,越高越精确)",
|
||
keywordThresholdLabel: "关键词匹配阈值",
|
||
keywordThresholdDescription: "关键词搜索的最低匹配分数(0-1)",
|
||
rerankTopKLabel: "Rerank 数量 (Top K)",
|
||
rerankTopKDescription: "重排序后保留的最大结果数量",
|
||
rerankThresholdLabel: "Rerank 阈值",
|
||
rerankThresholdDescription: "重排序的最低分数阈值(-10 到 10)",
|
||
rerankModelLabel: "Rerank 模型",
|
||
rerankModelDescription: "选择用于搜索结果重排序的模型",
|
||
rerankModelRequired: "请选择 Rerank 模型,搜索功能需要此模型对结果进行重排序",
|
||
toasts: {
|
||
saveSuccess: "检索配置已保存",
|
||
saveFailed: "保存配置失败: {message}",
|
||
},
|
||
},
|
||
graphSettings: {
|
||
title: "知识图谱配置",
|
||
description: "配置实体-关系提取功能,自动从文本中抽取实体和关系构建知识图谱(注意:这与 Wiki 知识库中的「页面链接图谱」是两回事——前者是基于 LLM 的实体-关系图,后者是 Wiki 页面之间的引用关系图)",
|
||
enableLabel: "启用实体关系提取",
|
||
enableDescription: "开启后将自动从文本中提取实体和关系",
|
||
tagsLabel: "关系类型",
|
||
tagsDescription: "定义要提取的关系类型标签,多个标签用逗号分隔",
|
||
tagsPlaceholder: "输入关系类型,如:工作于、同事、朋友等",
|
||
generateRandomTags: "生成随机标签",
|
||
sampleTextLabel: "示例文本",
|
||
sampleTextDescription: "用于测试实体关系提取的示例文本",
|
||
sampleTextPlaceholder: "输入一段包含实体和关系的文本...",
|
||
generateRandomText: "生成随机文本",
|
||
entityListLabel: "实体列表",
|
||
entityListDescription: "从文本中提取的实体及其属性",
|
||
nodeNamePlaceholder: "输入实体名称",
|
||
attributePlaceholder: "输入属性值",
|
||
addAttribute: "添加属性",
|
||
manageEntitiesLabel: "管理实体",
|
||
manageEntitiesDescription: "添加或删除实体节点",
|
||
addEntity: "添加实体",
|
||
relationListLabel: "关系列表",
|
||
relationListDescription: "定义实体之间的关系连接",
|
||
selectEntity: "选择实体",
|
||
selectRelationType: "选择关系类型",
|
||
manageRelationsLabel: "管理关系",
|
||
manageRelationsDescription: "添加或删除实体间的关系",
|
||
addRelation: "添加关系",
|
||
extractActionsLabel: "提取操作",
|
||
extractActionsDescription: "执行实体关系提取或管理示例数据",
|
||
startExtraction: "开始提取",
|
||
extracting: "提取中...",
|
||
defaultExample: "默认示例",
|
||
clearExample: "清除示例",
|
||
completeModelConfig: "请先完成模型配置",
|
||
tagsGenerated: "标签生成成功",
|
||
tagsGenerateFailed: "标签生成失败",
|
||
textGenerated: "文本生成成功",
|
||
textGenerateFailed: "文本生成失败",
|
||
pleaseInputText: "请先输入示例文本",
|
||
extractSuccess: "实体关系提取成功",
|
||
extractFailed: "实体关系提取失败",
|
||
exampleLoaded: "示例已加载",
|
||
exampleCleared: "示例已清除",
|
||
disabledWarning: "知识图谱数据库未启用,实体关系提取功能将无法使用",
|
||
howToEnable: "如何启用知识图谱?",
|
||
saveSuccess: "图谱配置已保存",
|
||
saveFailed: "保存配置失败: {message}",
|
||
errors: {
|
||
unknown: "未知错误",
|
||
},
|
||
},
|
||
initialization: {
|
||
title: "初始化",
|
||
welcome: "欢迎使用WeKnora",
|
||
description: "请先配置系统以开始使用",
|
||
step1: "步骤1:配置LLM模型",
|
||
step2: "步骤2:配置嵌入模型",
|
||
step3: "步骤3:配置其他模型",
|
||
complete: "完成初始化",
|
||
skip: "跳过",
|
||
next: "下一步",
|
||
previous: "上一步",
|
||
ollamaServiceStatus: "Ollama服务状态",
|
||
refreshStatus: "刷新状态",
|
||
ollamaServiceAddress: "Ollama服务地址",
|
||
notConfigured: "未配置",
|
||
notRunning: "未运行",
|
||
normal: "正常",
|
||
installedModels: "已安装模型",
|
||
none: "暂无",
|
||
knowledgeBaseInfo: "知识库信息",
|
||
knowledgeBaseName: "知识库名称",
|
||
knowledgeBaseNamePlaceholder: "输入知识库名称",
|
||
knowledgeBaseDescription: "知识库描述",
|
||
knowledgeBaseDescriptionPlaceholder: "输入知识库描述",
|
||
llmModelConfig: "LLM大语言模型配置",
|
||
modelSource: "模型来源",
|
||
local: "Ollama(本地)",
|
||
remote: "Remote API(远程)",
|
||
modelName: "模型名称",
|
||
modelNamePlaceholder: "例如:qwen3:0.6b",
|
||
baseUrl: "Base URL",
|
||
baseUrlPlaceholder:
|
||
"例如:https://api.openai.com/v1,去掉URL末尾的/chat/completions部分",
|
||
apiKey: "API Key(可选)",
|
||
apiKeyPlaceholder: "输入API Key(可选)",
|
||
downloadModel: "下载模型",
|
||
installed: "已安装",
|
||
notInstalled: "未安装",
|
||
notChecked: "未检查",
|
||
checkConnection: "检查连接",
|
||
connectionNormal: "连接正常",
|
||
connectionFailed: "连接失败",
|
||
checkingConnection: "正在检查连接",
|
||
embeddingModelConfig: "嵌入模型配置",
|
||
embeddingWarning: "知识库已有文件,无法更改嵌入模型配置",
|
||
dimension: "维度",
|
||
dimensionPlaceholder: "输入向量维度",
|
||
detectDimension: "检测维度",
|
||
rerankModelConfig: "重排序模型配置",
|
||
enableRerank: "启用重排序模型",
|
||
multimodalConfig: "多模态配置",
|
||
enableMultimodal: "启用图像信息提取",
|
||
visualLanguageModelConfig: "视觉语言模型配置",
|
||
interfaceType: "接口类型",
|
||
openaiCompatible: "OpenAI兼容接口",
|
||
storageServiceConfig: "存储服务配置",
|
||
storageType: "存储类型",
|
||
bucketName: "Bucket名称",
|
||
bucketNamePlaceholder: "输入Bucket名称",
|
||
pathPrefix: "路径前缀",
|
||
pathPrefixPlaceholder: "例如:images",
|
||
secretId: "Secret ID",
|
||
secretIdPlaceholder: "输入COS Secret ID",
|
||
secretKey: "Secret Key",
|
||
secretKeyPlaceholder: "输入COS Secret Key",
|
||
region: "Region",
|
||
regionPlaceholder: "例如:ap-beijing",
|
||
appId: "App ID",
|
||
appIdPlaceholder: "输入App ID",
|
||
functionTest: "功能测试",
|
||
testDescription: "上传图片测试VLM模型的图像描述和文字识别功能",
|
||
selectImage: "选择图片",
|
||
startTest: "开始测试",
|
||
testResult: "测试结果",
|
||
imageDescription: "图像描述:",
|
||
textRecognition: "文字识别:",
|
||
processingTime: "处理时间:",
|
||
testFailed: "测试失败",
|
||
multimodalProcessingFailed: "多模态处理失败",
|
||
documentSplittingConfig: "文档分割配置",
|
||
splittingStrategy: "分割策略",
|
||
balancedMode: "平衡模式",
|
||
balancedModeDesc: "分块大小:1000 / 重叠:200",
|
||
precisionMode: "精确模式",
|
||
precisionModeDesc: "分块大小:512 / 重叠:100",
|
||
contextMode: "上下文模式",
|
||
contextModeDesc: "分块大小:2048 / 重叠:400",
|
||
custom: "自定义",
|
||
customDesc: "手动配置参数",
|
||
chunkSize: "分块大小",
|
||
chunkOverlap: "分块重叠",
|
||
separatorSettings: "分隔符设置",
|
||
selectOrCustomSeparators: "选择或自定义分隔符",
|
||
characters: "个字符",
|
||
separatorParagraph: "段落分隔符 (\\n\\n)",
|
||
separatorNewline: "换行符 (\\n)",
|
||
separatorPeriod: "句号 (。)",
|
||
separatorExclamation: "感叹号 (!)",
|
||
separatorQuestion: "问号 (?)",
|
||
separatorSemicolon: "分号 (;)",
|
||
separatorChineseSemicolon: "中文分号 (;)",
|
||
separatorComma: "逗号 (,)",
|
||
separatorChineseComma: "中文逗号 (,)",
|
||
entityRelationExtraction: "实体和关系提取",
|
||
enableEntityRelationExtraction: "启用实体和关系提取",
|
||
relationTypeConfig: "关系类型配置",
|
||
relationType: "关系类型",
|
||
generateRandomTags: "生成随机标签",
|
||
completeModelConfig: "请完成模型配置",
|
||
systemWillExtract: "系统将根据所选关系类型从文本中提取相应的实体和关系",
|
||
extractionExample: "提取示例",
|
||
sampleText: "示例文本",
|
||
sampleTextPlaceholder:
|
||
'输入用于分析的文本,例如:"红楼梦",又名"石头记",是中国四大名著之一,清代曹雪芹所著...',
|
||
generateRandomText: "生成随机文本",
|
||
entityList: "实体列表",
|
||
nodeName: "节点名称",
|
||
nodeNamePlaceholder: "节点名称",
|
||
addAttribute: "添加属性",
|
||
attributeValue: "属性值",
|
||
attributeValuePlaceholder: "属性值",
|
||
addEntity: "添加实体",
|
||
completeEntityInfo: "请完成实体信息",
|
||
relationConnection: "关系连接",
|
||
selectEntity: "选择实体",
|
||
addRelation: "添加关系",
|
||
completeRelationInfo: "请完成关系信息",
|
||
startExtraction: "开始提取",
|
||
extracting: "提取中...",
|
||
defaultExample: "默认示例",
|
||
clearExample: "清除示例",
|
||
updateKnowledgeBaseSettings: "更新知识库设置",
|
||
updateConfigInfo: "更新配置信息",
|
||
completeConfig: "完成配置",
|
||
waitForDownloads: "请等待所有Ollama模型下载完成后再更新配置",
|
||
completeModelConfigInfo: "请完成模型配置信息",
|
||
knowledgeBaseIdMissing: "知识库ID缺失",
|
||
knowledgeBaseSettingsUpdateSuccess: "知识库设置更新成功",
|
||
configUpdateSuccess: "配置更新成功",
|
||
systemInitComplete: "系统初始化完成",
|
||
operationFailed: "操作失败",
|
||
updateKnowledgeBaseInfoFailed: "更新知识库基本信息失败",
|
||
knowledgeBaseIdMissingCannotSave: "知识库ID缺失,无法保存配置",
|
||
operationFailedCheckNetwork: "操作失败,请检查网络连接",
|
||
imageUploadSuccess: "图片上传成功,可以开始测试",
|
||
multimodalConfigIncomplete:
|
||
"多模态配置不完整,请先完成多模态配置后再上传图片",
|
||
pleaseSelectImage: "请选择图片",
|
||
multimodalTestSuccess: "多模态测试成功",
|
||
multimodalTestFailed: "多模态测试失败",
|
||
pleaseEnterSampleText: "请输入示例文本",
|
||
pleaseEnterRelationType: "请输入关系类型",
|
||
pleaseEnterLLMModelConfig: "请输入LLM大语言模型配置",
|
||
noValidNodesExtracted: "未提取到有效节点",
|
||
noValidRelationsExtracted: "未提取到有效关系",
|
||
extractionFailedCheckNetwork: "提取失败,请检查网络或文本格式",
|
||
generateFailedRetry: "生成失败,请重试",
|
||
pleaseCheckForm: "请检查表单填写是否正确",
|
||
detectionSuccessful: "检测成功,维度自动填充为",
|
||
detectionFailed: "检测失败",
|
||
detectionFailedCheckConfig: "检测失败,请检查配置",
|
||
modelDownloadSuccess: "模型下载成功",
|
||
modelDownloadFailed: "模型下载失败",
|
||
downloadStartFailed: "下载启动失败",
|
||
queryProgressFailed: "进度查询失败",
|
||
checkOllamaStatusFailed: "Ollama状态检查失败",
|
||
getKnowledgeBaseInfoFailed: "获取知识库信息失败",
|
||
textRelationExtractionFailed: "文本关系提取失败",
|
||
pleaseEnterKnowledgeBaseName: "请输入知识库名称",
|
||
knowledgeBaseNameLength: "知识库名称长度必须为1-50个字符",
|
||
knowledgeBaseDescriptionLength: "知识库描述不能超过200个字符",
|
||
pleaseEnterLLMModelName: "请输入LLM模型名称",
|
||
pleaseEnterBaseURL: "请输入BaseURL",
|
||
pleaseEnterEmbeddingModelName: "请输入嵌入模型名称",
|
||
pleaseEnterEmbeddingDimension: "请输入嵌入维度",
|
||
dimensionMustBeInteger: "维度必须是有效整数,通常为768、1024、1536、3584等",
|
||
pleaseEnterTextContent: "请输入文本内容",
|
||
textContentMinLength: "文本内容必须包含至少10个字符",
|
||
pleaseEnterValidTag: "请输入有效标签",
|
||
tagAlreadyExists: "此标签已存在",
|
||
checkFailed: "检查失败",
|
||
startingDownload: "正在启动下载...",
|
||
downloadStarted: "下载已开始",
|
||
model: "模型",
|
||
startModelDownloadFailed: "启动模型下载失败",
|
||
downloadCompleted: "下载完成",
|
||
downloadFailed: "下载失败",
|
||
knowledgeBaseSettingsModeMissingId: "知识库设置模式缺少知识库ID",
|
||
completeEmbeddingConfig: "请先完成嵌入配置",
|
||
detectionSuccess: "检测成功,",
|
||
dimensionAutoFilled: "维度已自动填充:",
|
||
checkFormCorrectness: "请检查表单填写是否正确",
|
||
systemInitializationCompleted: "系统初始化完成",
|
||
generationFailedRetry: "生成失败,请重试",
|
||
chunkSizeDesc:
|
||
"每个文本块的大小。较大的块保留更多上下文,但可能降低搜索准确性。",
|
||
chunkOverlapDesc: "相邻块之间重叠的字符数。有助于保持块边界处的上下文。",
|
||
selectRelationType: "选择关系类型",
|
||
},
|
||
inviteRegister: {
|
||
bannerTitle: "您被邀请加入「{tenant}」",
|
||
bannerHint: "填写下方信息完成注册,注册成功后将自动加入该团队。",
|
||
loading: "正在校验邀请链接…",
|
||
invalidTitle: "邀请链接无效或已撤销",
|
||
invalidBody: "请联系邀请人重新发送链接,或前往登录使用现有账号。",
|
||
backToLogin: "返回登录",
|
||
title: "完成注册",
|
||
subtitle: "您被邀请加入「{tenant}」",
|
||
email: "邮箱",
|
||
emailPlaceholder: "your@example.com",
|
||
emailHint: "用您自己的邮箱注册即可。",
|
||
emailInvalid: "请输入有效的邮箱地址",
|
||
username: "姓名",
|
||
usernamePlaceholder: "请输入您的姓名",
|
||
password: "设置密码",
|
||
passwordPlaceholder: "至少 6 位",
|
||
confirmPassword: "确认密码",
|
||
submit: "完成注册",
|
||
submitting: "提交中…",
|
||
success: "注册成功,正在进入工作空间…",
|
||
failed: "注册失败,请稍后重试",
|
||
usernameRequired: "请输入姓名",
|
||
passwordTooShort: "密码至少 6 位",
|
||
passwordMismatch: "两次输入的密码不一致",
|
||
},
|
||
auth: {
|
||
login: "登录",
|
||
logout: "退出",
|
||
username: "用户名",
|
||
email: "邮箱",
|
||
password: "密码",
|
||
confirmPassword: "确认密码",
|
||
rememberMe: "记住我",
|
||
forgotPassword: "忘记密码?",
|
||
loginSuccess: "登录成功!",
|
||
loginSuccessTitle: "登录成功",
|
||
loginSuccessContent: "欢迎,你已进入 {name}",
|
||
loginSuccessContentWithRole: "欢迎,你已进入 {name} · 身份 {role}",
|
||
loginFailed: "登录失败",
|
||
loggingIn: "登录中...",
|
||
oidcLogin: "使用 OIDC 登录",
|
||
oidcLoginWithProvider: "使用 {provider} 登录",
|
||
redirectingToOIDC: "正在跳转到身份提供商...",
|
||
orContinueWith: "或使用以下方式继续",
|
||
oidcLoginFailed: "OIDC 登录失败",
|
||
oidcStateMismatch: "OIDC 状态校验失败,请重试",
|
||
register: "注册",
|
||
registering: "注册中...",
|
||
createAccount: "创建账户",
|
||
haveAccount: "已有账户?",
|
||
noAccount: "还没有账户?",
|
||
backToLogin: "返回登录",
|
||
registerNow: "立即注册",
|
||
registerSuccess: "注册成功!系统已为您创建专属空间,请登录",
|
||
registerFailed: "注册失败",
|
||
subtitle: "基于大模型的文档理解和语义搜索框架",
|
||
registerSubtitle: "注册后系统将为您创建专属空间",
|
||
emailPlaceholder: "输入邮箱地址",
|
||
passwordPlaceholder: "输入密码(8-32个字符,包含字母和数字)",
|
||
confirmPasswordPlaceholder: "再次输入密码",
|
||
usernamePlaceholder: "输入用户名",
|
||
emailRequired: "请输入邮箱地址",
|
||
emailInvalid: "请输入正确的邮箱格式",
|
||
passwordRequired: "请输入密码",
|
||
passwordMinLength: "密码至少8个字符",
|
||
passwordMaxLength: "密码不能超过32个字符",
|
||
passwordMustContainLetter: "密码必须包含字母",
|
||
passwordMustContainNumber: "密码必须包含数字",
|
||
usernameRequired: "请输入用户名",
|
||
usernameMinLength: "用户名至少2个字符",
|
||
usernameMaxLength: "用户名不能超过20个字符",
|
||
usernameInvalid: "用户名只能包含字母、数字、下划线和中文字符",
|
||
confirmPasswordRequired: "请确认密码",
|
||
passwordMismatch: "两次输入的密码不一致",
|
||
loginError: "登录错误,请检查邮箱或密码",
|
||
loginErrorRetry: "登录错误,请稍后重试",
|
||
registerError: "注册错误,请稍后重试",
|
||
forgotPasswordNotAvailable: "密码找回功能暂不可用,请联系管理员",
|
||
},
|
||
authStore: {
|
||
errors: {
|
||
parseUserFailed: "解析用户信息失败",
|
||
parseTenantFailed: "解析空间信息失败",
|
||
parseKnowledgeBasesFailed: "解析知识库列表失败",
|
||
parseCurrentKnowledgeBaseFailed: "解析当前知识库失败",
|
||
},
|
||
},
|
||
common: {
|
||
me: "我",
|
||
confirm: "确认",
|
||
cancel: "取消",
|
||
save: "保存",
|
||
delete: "删除",
|
||
edit: "编辑",
|
||
copy: "复制",
|
||
copied: "已复制",
|
||
default: "默认",
|
||
create: "创建",
|
||
search: "搜索",
|
||
filter: "筛选",
|
||
export: "导出",
|
||
import: "导入",
|
||
upload: "上传",
|
||
download: "下载",
|
||
refresh: "刷新",
|
||
loading: "加载中...",
|
||
noData: "暂无数据",
|
||
noMoreData: "已加载全部内容",
|
||
error: "错误",
|
||
success: "成功",
|
||
failed: "失败",
|
||
warning: "警告",
|
||
info: "信息",
|
||
selectAll: "全选",
|
||
yes: "是",
|
||
no: "否",
|
||
ok: "确定",
|
||
close: "关闭",
|
||
back: "返回",
|
||
next: "下一步",
|
||
finish: "完成",
|
||
all: "全部",
|
||
reset: "重置",
|
||
clear: "清空",
|
||
website: "官方网站",
|
||
chromeExtension: "Chrome 插件",
|
||
clawhubSkill: "Claw Skill",
|
||
newBadge: "New",
|
||
github: 'GitHub',
|
||
githubStarTip: '在 GitHub 打开仓库,若觉得有用欢迎点个 Star',
|
||
on: "开启",
|
||
off: "关闭",
|
||
resetToDefault: "恢复默认",
|
||
confirmDelete: "确认删除",
|
||
deleteSuccess: "删除成功",
|
||
deleteFailed: "删除失败",
|
||
saveSuccess: "保存成功",
|
||
saveFailed: "保存失败",
|
||
file: "文件",
|
||
knowledgeBase: "知识库",
|
||
noResult: "无结果",
|
||
remove: "移除",
|
||
defaultUser: "用户",
|
||
copyFailed: "复制失败",
|
||
retry: "重试",
|
||
expand: "展开",
|
||
collapse: "收起",
|
||
},
|
||
mentionDetail: {
|
||
faqCount: "共 {count} 条问答",
|
||
kbCount: "共 {count} 个文档",
|
||
belongsToKb: "所属知识库:",
|
||
belongsToOrg: "所属空间:",
|
||
readOnlyFromAgent: "仅在此对话中只读,不显示在知识库列表中",
|
||
noCompatibleKbForAgent: "当前智能体的工具与作用域内知识库的能力不匹配,暂无可引用的知识库。",
|
||
},
|
||
agent: {
|
||
taskLabel: "任务:",
|
||
think: "思考",
|
||
copy: "复制",
|
||
addToKnowledgeBase: "添加到知识库",
|
||
updatePlan: "更新计划",
|
||
webSearchFound: "找到 <strong>{count}</strong> 个网络搜索结果",
|
||
argumentsLabel: "参数",
|
||
toolFallback: "工具",
|
||
stepsCompleted: "已完成 <strong>{steps}</strong> 个步骤",
|
||
stepsCompletedWithDuration: "已完成 <strong>{steps}</strong> 个步骤,耗时 <strong>{duration}</strong>",
|
||
title: "智能体",
|
||
subtitle: "配置和管理您的智能体,自定义对话行为和能力",
|
||
createAgent: "创建智能体",
|
||
createAgentShort: "新建",
|
||
builtin: "内置",
|
||
disabled: "已停用",
|
||
disable: "停用",
|
||
enable: "启用",
|
||
noDescription: "暂无描述",
|
||
selectAgent: "选择智能体",
|
||
noAgents: "暂无智能体",
|
||
manageAgents: "管理",
|
||
builtinAgents: "内置智能体",
|
||
customAgents: "自定义智能体",
|
||
capabilities: {
|
||
normal: "快速响应,直接回答问题",
|
||
agent: "多步思考,深度分析复杂问题",
|
||
modelSpecified: "指定模型",
|
||
kbCount: "指定 {count} 个知识库",
|
||
kbAll: "可访问全部知识库",
|
||
kbDisabled: "禁用知识库",
|
||
rerankSpecified: "指定 ReRank 模型",
|
||
webSearchOn: "启用网络搜索",
|
||
webSearchOff: "禁用网络搜索",
|
||
hasPrompt: "自定义提示词",
|
||
default: "默认配置",
|
||
mcpEnabled: "启用 MCP 服务",
|
||
multiTurn: "多轮对话",
|
||
},
|
||
type: {
|
||
normal: "快速问答",
|
||
agent: "智能推理",
|
||
custom: "自定义",
|
||
},
|
||
mode: {
|
||
normal: "快速问答",
|
||
agent: "智能推理",
|
||
},
|
||
features: {
|
||
webSearch: "支持网络搜索",
|
||
knowledgeBase: "关联知识库",
|
||
mcp: "支持MCP服务",
|
||
multiTurn: "多轮对话",
|
||
},
|
||
tabs: {
|
||
all: "全部",
|
||
mine: "我的智能体",
|
||
sharedToMe: "共享给我",
|
||
},
|
||
sections: {
|
||
builtin: "内置",
|
||
mine: "我创建的",
|
||
tenantReadonly: "本空间 · 仅查看",
|
||
tenantOthers: "本空间 · 其他成员",
|
||
sharedByMe: "我共享的",
|
||
sharedEditable: "共享给我 · 可编辑",
|
||
sharedReadonly: "共享给我 · 仅查看",
|
||
},
|
||
empty: {
|
||
title: "暂无自定义智能体",
|
||
description: "点击右上角按钮创建您的第一个智能体",
|
||
sharedTitle: "暂无共享智能体",
|
||
sharedDescription: "您可以加入空间或请求他人将智能体共享给您",
|
||
favoritesTitle: "暂无收藏",
|
||
favoritesDescription: "在智能体卡片右上角点击星标即可收藏",
|
||
recentsTitle: "暂无最近访问",
|
||
recentsDescription: "最近使用过的智能体会出现在这里",
|
||
},
|
||
detail: {
|
||
title: "智能体详情",
|
||
useInChat: "在对话中使用",
|
||
},
|
||
shareScope: {
|
||
title: "共享范围说明",
|
||
desc: "空间成员以只读方式使用该智能体,将遵循您当前配置的能力与资源;您对智能体的修改会同步给已共享的空间。如需允许空间成员编辑知识库内容,请将知识库共享到空间。",
|
||
knowledgeBase: "知识库",
|
||
chatModel: "对话模型",
|
||
rerankModel: "重排模型",
|
||
webSearch: "网络搜索",
|
||
mcp: "MCP 服务",
|
||
kbAll: "全部知识库",
|
||
kbSelected: "指定 {count} 个知识库",
|
||
kbNone: "不使用",
|
||
modelConfigured: "已配置",
|
||
modelNotSet: "未配置",
|
||
enabled: "开启",
|
||
disabled: "关闭",
|
||
mcpAll: "全部服务",
|
||
mcpSelected: "指定 {count} 个服务",
|
||
mcpNone: "不使用",
|
||
},
|
||
delete: {
|
||
confirmTitle: "删除智能体",
|
||
confirmMessage: "确定要删除智能体「{name}」吗?此操作不可恢复。",
|
||
confirmButton: "确认删除",
|
||
},
|
||
messages: {
|
||
created: "智能体创建成功",
|
||
updated: "智能体更新成功",
|
||
deleted: "智能体已删除",
|
||
deleteFailed: "删除失败",
|
||
saveFailed: "保存失败",
|
||
builtinReadonly: "内置智能体不可编辑",
|
||
copied: "智能体复制成功",
|
||
copyFailed: "复制失败",
|
||
disabled: "已停用",
|
||
enabled: "已启用",
|
||
},
|
||
editor: {
|
||
createTitle: "创建智能体",
|
||
editTitle: "编辑智能体",
|
||
basicInfo: "基本信息",
|
||
basicInfoDesc: "配置智能体的基本信息",
|
||
modelConfig: "模型配置",
|
||
modelConfigDesc: "配置智能体的模型参数",
|
||
capabilities: "能力与工具",
|
||
capabilitiesDesc: "配置智能体的能力和工具",
|
||
toolsConfig: "工具配置",
|
||
toolsConfigDesc: "配置 Agent 可以使用的工具",
|
||
knowledgeConfig: "知识库",
|
||
knowledgeConfigDesc: "配置智能体可访问的知识库",
|
||
webSearchConfig: "网络搜索",
|
||
webSearchConfigDesc: "配置智能体的网络搜索能力",
|
||
configuration: "配置项",
|
||
agentId: "智能体 ID",
|
||
agentIdDesc: "API 集成时可使用此 ID 指定智能体",
|
||
name: "名称",
|
||
namePlaceholder: "请输入智能体名称",
|
||
nameRequired: "请输入智能体名称",
|
||
disabled: "停用",
|
||
disabledDesc: "停用后该智能体将不会在对话窗口的智能体下拉列表中显示",
|
||
systemPromptRequired: "请输入系统提示词",
|
||
modelRequired: "请选择模型",
|
||
rerankModelRequired: "使用知识库时请选择 ReRank 模型",
|
||
contextsMissing: "开启知识库时,上下文模板必须包含 {'{{'}contexts{'}}'} 占位符",
|
||
queryMissingInContext: "上下文模板必须包含 {'{{'}query{'}}'} 占位符",
|
||
knowledgeBasesMissing: "建议在系统提示词中包含 {'{{'}knowledge_bases{'}}'} 占位符,以便模型了解可用的知识库",
|
||
queryMissingInRewrite: "改写用户提示词必须包含 {'{{'}query{'}}'} 占位符",
|
||
conversationMissing: "改写用户提示词必须包含 {'{{'}conversation{'}}'} 占位符",
|
||
queryMissingInFallback: "兜底提示词必须包含 {'{{'}query{'}}'} 占位符",
|
||
avatar: "图标",
|
||
avatarPlaceholder: "输入 Emoji 或点击选择",
|
||
description: "描述",
|
||
descriptionPlaceholder: "请输入智能体描述",
|
||
baseType: "基础类型",
|
||
normalDesc: "快速响应,直接回答问题",
|
||
agentDesc: "多步思考,深度分析复杂问题",
|
||
model: "模型",
|
||
modelPlaceholder: "请选择模型",
|
||
systemPrompt: "系统提示词",
|
||
systemPromptPlaceholder: "自定义系统提示词,定义智能体的行为和角色(使用 {'{{'}web_search_status{'}}'} 占位符动态控制网络搜索行为)",
|
||
defaultPromptHint: "留空将使用以下系统默认提示词:",
|
||
defaultContextTemplateHint: "留空将使用以下系统默认上下文模板:",
|
||
contextTemplateRequired: "请输入上下文模板",
|
||
availablePlaceholders: "可用占位符",
|
||
placeholderHint: "输入 {'{{'} 触发自动补全",
|
||
temperature: "温度",
|
||
thinking: "思考模式",
|
||
welcomeMessage: "欢迎消息",
|
||
welcomeMessagePlaceholder: "选择该智能体时显示的欢迎消息",
|
||
suggestedPrompts: "推荐问题",
|
||
mode: "运行模式",
|
||
webSearch: "网络搜索",
|
||
webSearchProvider: "搜索引擎",
|
||
webSearchProviderPlaceholder: "使用默认搜索引擎",
|
||
webSearchMaxResults: "最大搜索结果数",
|
||
webFetchEnabled: "自动抓取页面内容",
|
||
webFetchTopN: "抓取页面数",
|
||
knowledgeBases: "关联知识库",
|
||
allKnowledgeBases: "全部知识库",
|
||
allKnowledgeBasesDesc: "智能体可访问所有知识库",
|
||
selectedKnowledgeBases: "指定知识库",
|
||
selectedKnowledgeBasesDesc: "仅访问选定的知识库",
|
||
noKnowledgeBase: "不使用知识库",
|
||
noKnowledgeBaseDesc: "纯模型对话,不检索知识库",
|
||
selectKnowledgeBases: "选择知识库",
|
||
selectKnowledgeBasesDesc: "选择要关联的知识库(包括协作知识库)",
|
||
myKnowledgeBases: "我的知识库",
|
||
sharedKnowledgeBases: "协作知识库",
|
||
retrieveKBOnlyWhenMentioned: "仅在 {'@'} 提及时检索",
|
||
retrieveKBOnlyWhenMentionedDesc: "关闭:自动检索已配置的知识库,开启:仅当用户 {'@'} 提及时才检索",
|
||
retrievalSectionTitle: "检索策略",
|
||
rerankModel: "ReRank 模型",
|
||
rerankModelDesc: "用于对知识库检索结果进行重排序,提高回答准确性",
|
||
rerankModelPlaceholder: "请选择 ReRank 模型",
|
||
rerankModelOptionalHint: "当前作用域内暂无 RAG 类型知识库,可不填;后续若加入 RAG 知识库,将自动使用租户默认重排模型,仍建议显式配置。",
|
||
maxIterations: "最大迭代次数",
|
||
allowedTools: "允许的工具",
|
||
multiTurn: "多轮对话",
|
||
historyTurns: "保留轮数",
|
||
// 检索策略
|
||
retrievalStrategy: "检索策略",
|
||
embeddingTopK: "向量召回数量",
|
||
keywordThreshold: "关键词阈值",
|
||
vectorThreshold: "向量阈值",
|
||
rerankTopK: "重排数量",
|
||
rerankThreshold: "重排阈值",
|
||
// 多轮对话
|
||
conversationSettings: "多轮对话",
|
||
// 高级设置
|
||
advancedSettings: "高级设置",
|
||
contextTemplate: "上下文模板",
|
||
contextTemplatePlaceholder: "自定义上下文模板...",
|
||
availableContextPlaceholders: "可用占位符",
|
||
placeholderQuery: "用户的问题",
|
||
placeholderContexts: "检索到的内容列表",
|
||
placeholderCurrentTime: "当前时间(格式:2006-01-02 15:04:05)",
|
||
placeholderCurrentWeek: "当前星期(如:星期一)",
|
||
enableQueryExpansion: "查询扩展",
|
||
enableRewrite: "问题改写",
|
||
queryUnderstandModel: "问题理解模型",
|
||
queryUnderstandModelPlaceholder: "留空则复用主对话模型",
|
||
rewritePromptSystem: "改写系统提示词",
|
||
rewritePromptSystemPlaceholder: "留空使用系统默认提示词",
|
||
rewritePromptUser: "改写用户提示词",
|
||
rewritePromptUserPlaceholder: "留空使用系统默认提示词",
|
||
maxCompletionTokens: "最大生成Token数",
|
||
fallbackStrategy: "兜底策略",
|
||
fallbackResponse: "固定回复内容",
|
||
fallbackResponsePlaceholder: "抱歉,我无法回答这个问题。",
|
||
fallbackPrompt: "兜底提示词",
|
||
fallbackPromptPlaceholder: "留空使用系统默认提示词",
|
||
// Skills 配置
|
||
skillsConfig: "技能 Skills",
|
||
skillsConfigDesc: "配置 Agent 可以使用的预装 Skills,提供专业领域知识和工作流程",
|
||
skillsSelection: "Skills 选择",
|
||
skillsSelectionDesc: "选择 Agent 可以使用的 Skills 范围",
|
||
skillsAll: "全部",
|
||
skillsSelected: "指定",
|
||
skillsNone: "禁用",
|
||
selectSkills: "选择 Skills",
|
||
selectSkillsDesc: "选择要启用的 Skills",
|
||
noSkillsAvailable: "暂无预装 Skills",
|
||
skillsInfoTitle: "什么是 Skills?",
|
||
skillsInfoContent: "Skills 是预装的专业知识模块,可以为 Agent 提供特定领域的指令、工作流程和工具支持。启用 Skills 后,Agent 会在需要时自动加载相关知识。",
|
||
},
|
||
selector: {
|
||
title: "选择智能体",
|
||
builtinSection: "内置智能体",
|
||
customSection: "我的智能体",
|
||
addNew: "添加新智能体",
|
||
current: "当前",
|
||
goToSettings: "设置",
|
||
sharedLabel: "共享",
|
||
},
|
||
// 内置智能体信息
|
||
builtinInfo: {
|
||
quickAnswer: {
|
||
name: "快速问答",
|
||
description: "基于知识库的 RAG 问答,快速准确地回答问题",
|
||
},
|
||
smartReasoning: {
|
||
name: "智能推理",
|
||
description: "ReAct 推理框架,支持多步思考和工具调用",
|
||
},
|
||
deepResearcher: {
|
||
name: "深度研究员",
|
||
description: "专注于深度研究和综合分析,能够制定研究计划、多维度检索信息、深入思考并给出全面的分析报告",
|
||
},
|
||
dataAnalyst: {
|
||
name: "数据分析师",
|
||
description: "专注于数据库查询和数据分析,能够理解业务需求、构建SQL查询、分析数据并提供洞察",
|
||
},
|
||
knowledgeGraphExpert: {
|
||
name: "知识图谱专家",
|
||
description: "专注于知识图谱查询和关系分析,能够探索实体关系、发现隐藏联系并构建知识网络",
|
||
},
|
||
documentAssistant: {
|
||
name: "文档助手",
|
||
description: "专注于文档检索和内容整理,能够快速定位文档、提取关键信息并生成摘要",
|
||
},
|
||
},
|
||
},
|
||
file: {
|
||
upload: "上传文件",
|
||
uploadSuccess: "文件上传成功",
|
||
uploadFailed: "文件上传失败",
|
||
delete: "删除文件",
|
||
deleteSuccess: "文件删除成功",
|
||
deleteFailed: "文件删除失败",
|
||
download: "下载文件",
|
||
preview: "预览",
|
||
unsupportedFormat: "不支持的文件格式",
|
||
maxSizeExceeded: "文件大小超过限制",
|
||
selectFile: "选择文件",
|
||
},
|
||
tenant: {
|
||
title: "空间信息",
|
||
currentTenant: "当前空间",
|
||
switchTenant: "切换空间",
|
||
switcher: {
|
||
menuLabel: "切换空间",
|
||
currentBadge: "当前",
|
||
homeBadge: "我的",
|
||
homeTooltip: "我的空间",
|
||
empty: "你目前只属于这一个空间",
|
||
},
|
||
currentChip: {
|
||
home: "我的空间",
|
||
},
|
||
sectionDescription: "查看空间的详细配置信息",
|
||
apiDocument: "API文档",
|
||
name: "空间名称",
|
||
id: "空间 ID",
|
||
createdAt: "创建时间",
|
||
updatedAt: "更新时间",
|
||
status: "状态",
|
||
active: "活跃",
|
||
inactive: "未活跃",
|
||
systemInfo: "系统信息",
|
||
viewSystemInfo: "查看系统版本和用户账户配置信息",
|
||
version: "版本",
|
||
buildTime: "构建时间",
|
||
goVersion: "Go版本",
|
||
userInfo: "用户信息",
|
||
userId: "用户ID",
|
||
username: "用户名",
|
||
email: "邮箱",
|
||
tenantInfo: "空间信息",
|
||
tenantId: "空间 ID",
|
||
tenantName: "空间名称",
|
||
description: "描述",
|
||
business: "业务",
|
||
noDescription: "无描述",
|
||
noBusiness: "无",
|
||
statusActive: "活跃",
|
||
statusInactive: "未激活",
|
||
statusSuspended: "已暂停",
|
||
statusUnknown: "未知",
|
||
apiKey: "API密钥",
|
||
keepApiKeySafe: "请妥善保管您的API密钥,不要在公共场所或代码仓库中泄露",
|
||
storageInfo: "存储信息",
|
||
storageQuota: "存储配额",
|
||
used: "已使用",
|
||
usage: "使用率",
|
||
apiDevDocs: "API开发文档",
|
||
useApiKey: "使用您的API密钥开始开发,查看完整的API文档和代码示例。",
|
||
viewApiDoc: "查看API文档",
|
||
loadingAccountInfo: "加载账户信息中...",
|
||
loadingInfo: "正在加载信息...",
|
||
loadFailed: "加载失败",
|
||
retry: "重试",
|
||
apiKeyCopied: "API密钥已复制到剪贴板",
|
||
unknown: "未知",
|
||
formatError: "格式错误",
|
||
searchPlaceholder: "搜索空间名称或输入空间 ID...",
|
||
searchHint: "支持按名称搜索或直接输入空间 ID",
|
||
noMatch: "未找到匹配的空间",
|
||
switchSuccessTitle: "已切换空间",
|
||
switchSuccessContent: "你已进入 {name}",
|
||
switchSuccessContentWithRole: "你已进入 {name} · 身份 {role}",
|
||
loadTenantsFailed: "加载空间列表失败",
|
||
loading: "加载中...",
|
||
loadMore: "加载更多",
|
||
create: {
|
||
action: "创建新空间",
|
||
dialogTitle: "创建新空间",
|
||
dialogSubtitle: "空间拥有独立的知识库与成员,你将自动成为新空间的所有者。",
|
||
nameLabel: "空间名称",
|
||
namePlaceholder: "例如:我的新项目",
|
||
nameRequired: "请输入空间名称",
|
||
descriptionLabel: "描述(可选)",
|
||
descriptionPlaceholder: "简单描述一下这个空间的用途",
|
||
submit: "创建",
|
||
cancel: "取消",
|
||
success: "空间创建成功",
|
||
failed: "空间创建失败",
|
||
},
|
||
details: {
|
||
idLabel: "空间 ID",
|
||
idDescription: "您所属空间的唯一标识",
|
||
nameLabel: "空间名称",
|
||
nameDescription: "您所属的空间名称",
|
||
descriptionLabel: "空间描述",
|
||
descriptionDescription: "空间的详细描述信息",
|
||
businessLabel: "空间业务",
|
||
businessDescription: "空间所属的业务类型",
|
||
statusLabel: "空间状态",
|
||
statusDescription: "空间当前的运行状态",
|
||
createdAtLabel: "空间创建时间",
|
||
createdAtDescription: "空间创建的时间",
|
||
editName: "修改名称",
|
||
editNamePlaceholder: "请输入新的空间名称",
|
||
editNameConfirm: "保存",
|
||
editNameCancel: "取消",
|
||
editNameRequired: "空间名称不能为空",
|
||
editNameSuccess: "空间名称已更新",
|
||
editNameFailed: "更新空间名称失败",
|
||
editDescription: "修改描述",
|
||
editDescriptionPlaceholder: "请输入新的空间描述",
|
||
editDescriptionSuccess: "空间描述已更新",
|
||
editDescriptionFailed: "更新空间描述失败",
|
||
descriptionEmptyPlaceholder: "未填写",
|
||
},
|
||
storage: {
|
||
quotaLabel: "存储配额",
|
||
quotaDescription: "空间的总存储空间配额",
|
||
usedLabel: "已使用存储",
|
||
usedDescription: "已经使用的存储空间",
|
||
usageLabel: "存储使用率",
|
||
usageDescription: "存储空间的使用百分比",
|
||
},
|
||
leaveDangerZone: {
|
||
title: "退出当前空间",
|
||
desc: "终止您在本空间的成员身份。退出后将无法访问本空间的知识库与智能体,之后可被再次邀请加入。",
|
||
button: "退出空间",
|
||
},
|
||
messages: {
|
||
fetchFailed: "获取空间信息失败",
|
||
networkError: "网络错误,请稍后重试",
|
||
},
|
||
api: {
|
||
title: "API 信息",
|
||
description: "查看和管理您的 API 密钥",
|
||
keyLabel: "API Key",
|
||
keyDescription: "用于 API 调用的密钥,请妥善保管",
|
||
urlLabel: "API 地址",
|
||
urlDescription: "REST API 的基础路径,请求时在末尾拼接具体接口路径",
|
||
copyUrlTitle: "复制 API 地址",
|
||
urlCopySuccess: "API 地址已复制到剪贴板",
|
||
copyTitle: "复制 API Key",
|
||
resetTitle: "重置 API Key",
|
||
resetConfirmTitle: "确认重置 API Key?",
|
||
resetConfirmBody: "重置后,旧的 API Key 会立即失效,所有使用旧 Key 的应用、SDK 与脚本必须更换为新 Key 才能继续访问。此操作不可撤销。",
|
||
resetConfirmOk: "确认重置",
|
||
resetConfirmCancel: "取消",
|
||
resetSuccess: "API Key 已重置,新 Key 已显示在输入框中",
|
||
resetFailed: "重置 API Key 失败",
|
||
docLabel: "API 文档",
|
||
docDescription: "查看完整的 API 调用文档和示例,",
|
||
openDoc: "打开文档",
|
||
userSectionTitle: "用户信息",
|
||
userIdLabel: "用户 ID",
|
||
userIdDescription: "您的唯一用户标识",
|
||
usernameLabel: "用户名",
|
||
usernameDescription: "您的登录用户名",
|
||
emailLabel: "邮箱",
|
||
emailDescription: "您的注册邮箱地址",
|
||
createdAtLabel: "注册时间",
|
||
createdAtDescription: "账户创建的时间",
|
||
noKey: "暂无 API Key",
|
||
copySuccess: "API Key 已复制到剪贴板",
|
||
copyFailed: "复制失败,请手动复制",
|
||
desktopPortLabel: "本地 API 端口(桌面版)",
|
||
desktopPortDescription:
|
||
"填写固定端口(如 37841)后,Chrome 扩展等工具可长期使用同一 API 地址;0 表示每次启动随机端口。保存后请重启应用生效。",
|
||
desktopPortSave: "保存",
|
||
desktopPortSaved: "已保存,请重启应用后生效",
|
||
desktopPortSaveFailed: "保存失败",
|
||
desktopPortInvalid: "请输入 0–65535 之间的端口",
|
||
desktopBindPublicLabel: "允许局域网访问 API",
|
||
desktopBindPublicDescription:
|
||
"开启后内嵌服务监听 0.0.0.0,同一局域网内其他设备可通过下方地址调用 API。存在数据暴露风险,请在防火墙与路由侧自行做好访问控制;修改后需重启应用。",
|
||
desktopBindPublicSaved: "已保存,请重启应用后生效",
|
||
desktopBindPublicSaveFailed: "保存失败",
|
||
lanUrlLabel: "局域网 API 地址",
|
||
lanUrlDescription:
|
||
"在已开启「允许局域网访问」且应用已重启后显示;若 IP 不准确,请在本机网络设置中查看实际 IPv4 后替换主机部分。",
|
||
lanUrlCopyTitle: "复制局域网 API 地址",
|
||
lanUrlCopySuccess: "局域网 API 地址已复制",
|
||
lanUrlUnavailable:
|
||
"当前已监听所有网卡,但未能自动识别本机 IPv4。请在本机网络设置中查看局域网地址,并手动拼接为 http://你的IP:端口/api/v1。",
|
||
},
|
||
},
|
||
system: {
|
||
title: "系统信息",
|
||
sectionDescription: "查看系统版本信息和用户账户配置",
|
||
loadingInfo: "正在加载信息...",
|
||
retry: "重试",
|
||
versionLabel: "应用版本",
|
||
versionDescription: "当前应用服务(weknora-app)的版本号",
|
||
frontendVersionLabel: "UI 版本",
|
||
frontendVersionDescription: "当前 UI 界面(weknora-ui)的构建版本号",
|
||
versionMismatch: "与应用版本不一致",
|
||
buildTimeLabel: "构建时间",
|
||
buildTimeDescription: "系统构建的时间",
|
||
goVersionLabel: "Go 版本",
|
||
goVersionDescription: "后端使用的 Go 语言版本",
|
||
dbVersionLabel: "数据库版本",
|
||
dbVersionDescription: "当前数据库迁移版本号",
|
||
dbMigrationFailedTag: "迁移失败",
|
||
dbMigrationFailedTitle: "数据库迁移失败",
|
||
dbMigrationFailedDesc: "启动时数据库迁移未成功完成,部分表或索引可能未创建,会导致 Wiki、知识图谱等功能异常。建议先查看排查文档自助修复;如仍无法解决,请通过下方链接反馈。",
|
||
dbMigrationViewDocs: "查看排查文档",
|
||
dbMigrationReportIssue: "无法修复?提交 Issue",
|
||
keywordIndexEngineLabel: "关键词索引引擎",
|
||
keywordIndexEngineDescription: "当前使用的关键词索引引擎",
|
||
vectorStoreEngineLabel: "向量存储引擎",
|
||
vectorStoreEngineDescription: "当前使用的向量存储引擎",
|
||
graphDatabaseEngineLabel: "图数据库引擎",
|
||
graphDatabaseEngineDescription: "当前使用的图数据库引擎",
|
||
unknown: "未知",
|
||
messages: {
|
||
fetchFailed: "获取系统信息失败",
|
||
networkError: "网络错误,请稍后重试",
|
||
},
|
||
globalSettings: {
|
||
title: "系统设置",
|
||
description: "平台级运行时配置,保存后立即对所有租户生效。仅系统管理员可见可改。",
|
||
loading: "加载中...",
|
||
empty: "暂无可配置的系统设置",
|
||
badgeRequiresRestart: "需重启",
|
||
badgeSecret: "敏感",
|
||
badgeOverride: "已覆盖",
|
||
badgeOverrideTooltip: "该值已由管理员保存到数据库,覆盖了环境变量与默认值",
|
||
modifiedAt: "上次修改:{value}",
|
||
tagInputPlaceholder: "回车添加条目,例:example.com / *.foo.com / 10.0.0.0/8",
|
||
priorityHint: {
|
||
title: "关于优先级",
|
||
tier1: "在此页面保存过的项(带「已覆盖」徽章)— 始终以这里的值为准,环境变量会被忽略。",
|
||
tier2: "未在此处保存过的项 — 如果环境变量里有就用环境变量,否则用程序内置默认值。",
|
||
tier3: "若想让某项重新由环境变量控制,点击该行的「重置」按钮即可清除当前 UI 设置。",
|
||
},
|
||
keyLabels: {
|
||
auth: {
|
||
registration_mode: "自助注册模式",
|
||
},
|
||
ssrf: {
|
||
whitelist: "SSRF 防护白名单",
|
||
},
|
||
tenant: {
|
||
max_owned_per_user: "每用户最大租户数",
|
||
default_storage_quota_gb: "新租户默认存储配额 (GB)",
|
||
},
|
||
},
|
||
enumLabels: {
|
||
auth: {
|
||
registration_mode: {
|
||
self_serve: "自助注册(任何人可注册)",
|
||
invite_only: "仅邀请(关闭公网注册)",
|
||
},
|
||
},
|
||
},
|
||
confirm: {
|
||
header: "高危操作确认",
|
||
confirmBtn: "确认保存",
|
||
cancelBtn: "取消",
|
||
emptyValue: "(空)",
|
||
defaultBody: "即将把「{label}」改为:{value}",
|
||
bodyAuthRegistrationMode: "即将把「{label}」改为:{value}\n\n如果切到 self_serve,公网任何人都可以注册账号 — 务必确认是预期行为。",
|
||
},
|
||
listConfirm: {
|
||
ssrf: {
|
||
whitelist: {
|
||
add: {
|
||
header: "添加 SSRF 白名单条目",
|
||
body: "确认把 {entry} 加入 SSRF 白名单?该条目匹配到的主机 / IP / 网段会绕过 SSRF 防护,可能让 Agent 访问内网服务,请仅在确知用途时添加。",
|
||
confirmBtn: "确认添加",
|
||
},
|
||
remove: {
|
||
header: "移除 SSRF 白名单条目",
|
||
body: "确认从 SSRF 白名单中移除 {entry}?移除后该条目将重新受 SSRF 防护拦截。",
|
||
confirmBtn: "确认移除",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
messages: {
|
||
loadFailed: "加载系统设置失败",
|
||
saveSuccess: "已保存",
|
||
saveFailed: "保存失败",
|
||
},
|
||
reset: {
|
||
label: "重置",
|
||
tooltip: "清除当前 UI 覆盖,恢复使用环境变量或内置默认值",
|
||
confirmBtn: "确认重置",
|
||
confirmBody: "确定要重置「{label}」吗?该操作会删除数据库中的覆盖值,回退到环境变量或内置默认值。",
|
||
success: "已重置为默认值",
|
||
failed: "重置失败",
|
||
},
|
||
admins: {
|
||
label: "系统管理员",
|
||
description: "拥有平台级权限的用户。在右侧输入邮箱并回车即可提升用户为管理员;点击 × 即为撤销其权限。当前你(自己)已是管理员,不在列表中显示,也无法被自己撤销。",
|
||
placeholder: "输入用户邮箱并回车",
|
||
loadFailed: "加载系统管理员失败",
|
||
saveSuccess: "已更新系统管理员",
|
||
saveFailed: "更新系统管理员失败",
|
||
confirm: {
|
||
promote: {
|
||
header: "提升为系统管理员",
|
||
body: "确认将 {email} 提升为系统管理员?该用户将获得平台级权限,可访问所有租户、修改系统设置、管理其他管理员。",
|
||
confirmBtn: "确认提升",
|
||
},
|
||
revoke: {
|
||
header: "撤销系统管理员",
|
||
body: "确认撤销 {email} 的系统管理员权限?撤销后该用户将无法再访问任何系统级功能。",
|
||
confirmBtn: "确认撤销",
|
||
},
|
||
},
|
||
},
|
||
bulkApply: {
|
||
label: "应用到所有现有租户",
|
||
tooltip: "保存的值默认只对之后新建的租户生效;点击此按钮将当前值同步写入所有现有租户。",
|
||
confirmBtn: "确认应用",
|
||
confirmBody: "将把所有现有租户的存储配额覆盖为 {value} GB。如有租户被运维单独调整过的配额,也会一并被覆盖。是否继续?",
|
||
success: "已将 {count} 个租户的存储配额更新为 {gb} GB",
|
||
failed: "应用到所有租户失败",
|
||
},
|
||
audit: {
|
||
tabLabel: "审计日志",
|
||
description:
|
||
"记录平台级操作:系统设置变更、系统管理员授予/回收、配额批量同步等。按时间倒序展示。",
|
||
refresh: "刷新",
|
||
retry: "重试",
|
||
loading: "加载中...",
|
||
end: "已经到底了。",
|
||
empty: "暂无平台级审计事件。",
|
||
forbidden: "无权查看平台审计日志。",
|
||
systemActor: "系统",
|
||
errors: {
|
||
generic: "加载审计日志失败",
|
||
},
|
||
actorRole: {
|
||
system_admin: "系统管理员",
|
||
},
|
||
columns: {
|
||
time: "时间",
|
||
actor: "操作人",
|
||
action: "事件",
|
||
target: "目标",
|
||
path: "请求",
|
||
outcome: "结果",
|
||
},
|
||
action: {
|
||
"system.setting_changed": "系统设置变更",
|
||
"system.admin_promoted": "授予系统管理员",
|
||
"system.admin_revoked": "回收系统管理员",
|
||
},
|
||
outcome: {
|
||
success: "成功",
|
||
denied: "拒绝",
|
||
},
|
||
target: {
|
||
bulkQuota: "批量同步:默认存储配额",
|
||
bulkQuotaDiff: "应用到 {count} 个租户({gb} GB)",
|
||
promoteIdempotent: "目标已是系统管理员(幂等)",
|
||
revokeNoop: "目标本就不是系统管理员(幂等)",
|
||
requiredRole: "需要角色:{role}",
|
||
valueNull: "(空)",
|
||
},
|
||
expanded: {
|
||
actorId: "操作人 ID",
|
||
targetUserId: "目标用户 ID",
|
||
targetType: "目标类型",
|
||
targetId: "目标 ID",
|
||
details: "原始详情",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
mcp: {
|
||
testResult: {
|
||
title: "测试结果: {name}",
|
||
connectionSuccess: "连接成功",
|
||
connectionFailed: "连接失败",
|
||
toolsTitle: "可用工具",
|
||
resourcesTitle: "可用资源",
|
||
descriptionLabel: "描述",
|
||
schemaLabel: "参数结构",
|
||
emptyDescription: "该服务未提供工具或资源",
|
||
requireApproval: "需人工审核",
|
||
requireApprovalTip: "开启后,Agent 调用该工具前会暂停并等待确认,适用于可能改库/删文件等高危操作",
|
||
approvalSaveFailed: "保存审核设置失败",
|
||
},
|
||
},
|
||
error: {
|
||
invalidImageLink: "无效的图片链接",
|
||
network: "网络错误",
|
||
server: "服务器错误",
|
||
notFound: "未找到",
|
||
unauthorized: "未授权",
|
||
forbidden: "禁止访问",
|
||
unknown: "未知错误",
|
||
tryAgain: "请重试",
|
||
networkError: "网络错误,请检查您的网络连接",
|
||
invalidCredentials: "用户名或密码错误",
|
||
tokenRefreshFailed: "Token刷新失败",
|
||
pleaseRelogin: "请重新登录",
|
||
fileSizeExceeded: "文件大小不能超过 {size}M!",
|
||
unsupportedFileType: "不支持的文件类型!",
|
||
invalidFileType: "文件类型错误!",
|
||
missingKbId: "缺少知识库ID",
|
||
tokenNotFound: "未找到登录令牌,请重新登录",
|
||
streamFailed: "流式连接失败",
|
||
auth: {
|
||
loginFailed: "登录失败",
|
||
registerFailed: "注册失败",
|
||
getUserFailed: "获取用户信息失败",
|
||
getTenantFailed: "获取空间信息失败",
|
||
updatePreferencesFailed: "更新个性化设置失败",
|
||
refreshTokenFailed: "刷新Token失败",
|
||
logoutFailed: "登出失败",
|
||
validateTokenFailed: "Token验证失败",
|
||
},
|
||
model: {
|
||
createFailed: "创建模型失败",
|
||
getFailed: "获取模型失败",
|
||
updateFailed: "更新模型失败",
|
||
deleteFailed: "删除模型失败",
|
||
},
|
||
tenant: {
|
||
listFailed: "获取空间列表失败",
|
||
searchFailed: "搜索空间失败",
|
||
resetApiKeyFailed: "重置 API Key 失败",
|
||
updateFailed: "更新空间信息失败",
|
||
},
|
||
initialization: {
|
||
checkFailed: "检查失败",
|
||
testFailed: "测试失败",
|
||
},
|
||
},
|
||
model: {
|
||
llmModel: "LLM模型",
|
||
embeddingModel: "嵌入模型",
|
||
rerankModel: "重排序模型",
|
||
vlmModel: "多模态模型",
|
||
modelName: "模型名称",
|
||
modelProvider: "模型提供商",
|
||
modelUrl: "模型地址",
|
||
apiKey: "API密钥",
|
||
testConnection: "测试连接",
|
||
connectionSuccess: "连接成功",
|
||
connectionFailed: "连接失败",
|
||
dimension: "维度",
|
||
maxTokens: "最大令牌数",
|
||
temperature: "温度",
|
||
topP: "Top P",
|
||
selectModel: "选择模型",
|
||
customModel: "自定义模型",
|
||
builtinModel: "内置模型",
|
||
defaultTag: "默认",
|
||
addModelInSettings: "前往全局设置添加模型",
|
||
loadFailed: "加载模型列表失败",
|
||
selectModelPlaceholder: "请选择模型",
|
||
searchPlaceholder: "搜索模型...",
|
||
editor: {
|
||
addTitle: "添加模型",
|
||
editTitle: "编辑模型",
|
||
sourceLabel: "模型来源",
|
||
sourceLocal: "Ollama(本地)",
|
||
sourceRemote: "Remote API(远程)",
|
||
description: {
|
||
chat: "配置用于对话的大语言模型",
|
||
embedding: "配置用于文本向量化的嵌入模型",
|
||
rerank: "配置用于结果重排序的模型",
|
||
vllm: "配置用于视觉理解和多模态的视觉语言模型",
|
||
asr: "配置用于语音识别和音频转录的语音转文本模型",
|
||
default: "配置模型信息",
|
||
},
|
||
modelNamePlaceholder: {
|
||
local: "例如:llama2:latest",
|
||
remote: "例如:gpt-4, claude-3-opus",
|
||
localVllm: "例如:llava:latest",
|
||
remoteVllm: "例如:gpt-4-vision-preview",
|
||
remoteAsr: "例如:whisper-1",
|
||
},
|
||
baseUrlLabel: "Base URL",
|
||
displayNameLabel: "显示名称(可选)",
|
||
displayNamePlaceholder: "例如:客服问答模型",
|
||
displayNameDesc: "仅用于界面展示,实际调用仍使用上面的模型名称。",
|
||
baseUrlPlaceholder: "例如:https://api.openai.com/v1",
|
||
baseUrlPlaceholderVllm: "例如:http://localhost:11434/v1",
|
||
baseUrlPlaceholderAsr: "例如:https://api.openai.com/v1",
|
||
apiKeyOptional: "API Key(可选)",
|
||
apiKeyPlaceholder: "输入 API Key",
|
||
customHeadersLabel: "自定义请求头(可选)",
|
||
customHeadersDesc: "调用远程模型 API 时附加的 HTTP 请求头,常用于企业网关鉴权、链路追踪等场景;Authorization、Content-Type 等保留头会被自动忽略。",
|
||
customHeadersAdd: "添加请求头",
|
||
customHeadersKeyPlaceholder: "Header 名称",
|
||
customHeadersValuePlaceholder: "Header 值",
|
||
connectionTest: "连接测试",
|
||
testing: "测试中...",
|
||
testConnection: "测试连接",
|
||
searchPlaceholder: "搜索模型...",
|
||
downloadLabel: "下载: {keyword}",
|
||
refreshList: "刷新列表",
|
||
dimensionLabel: "向量维度",
|
||
dimensionPlaceholder: "例如:1536",
|
||
checkDimension: "检测维度",
|
||
dimensionDetected: "检测成功,向量维度:{value}",
|
||
dimensionFailed: "检测失败,请手动输入维度",
|
||
remoteDimensionDetected: "检测到向量维度:{value}",
|
||
supportsVisionLabel: "支持视觉/多模态",
|
||
supportsVisionDesc: "模型是否支持图片等多模态输入",
|
||
dimensionHint: '模型已选择,点击"检测维度"按钮自动获取向量维度',
|
||
loadModelListFailed: "加载模型列表失败",
|
||
listRefreshed: "列表已刷新",
|
||
fillModelAndUrl: "请先填写模型标识和 Base URL",
|
||
remoteBaseUrlRequired: "Remote API 类型必须填写 Base URL",
|
||
unsupportedModelType: "不支持的模型类型",
|
||
connectionSuccess: "连接成功",
|
||
connectionFailed: "连接失败",
|
||
connectionConfigError: "连接失败,请检查配置",
|
||
downloadStarted: "开始下载 {name}",
|
||
downloadCompleted: "{name} 下载完成",
|
||
downloadFailed: "{name} 下载失败",
|
||
downloadStartFailed: "启动下载失败",
|
||
ollamaUnavailable: "Ollama服务不可用,无法选择本地模型",
|
||
ollamaNotSupportRerank: "Ollama 不支持 ReRank 模型,请使用远程接口配置",
|
||
goToOllamaSettings: "查看设置",
|
||
validation: {
|
||
modelNameRequired: "请输入模型名称",
|
||
modelNameEmpty: "模型名称不能为空",
|
||
modelNameMax: "模型名称不能超过100个字符",
|
||
baseUrlRequired: "请输入 Base URL",
|
||
baseUrlEmpty: "Base URL 不能为空",
|
||
baseUrlInvalid: "Base URL 格式不正确,请输入有效的 URL",
|
||
},
|
||
// Provider (厂商) 相关翻译
|
||
providerLabel: "服务商",
|
||
providerPlaceholder: "选择模型服务商",
|
||
providers: {
|
||
openai: {
|
||
label: "OpenAI",
|
||
description: "gpt-5.2, gpt-5-mini, etc.",
|
||
},
|
||
anthropic: {
|
||
label: "Anthropic",
|
||
description: "Claude models via native Anthropic Messages API",
|
||
},
|
||
azure_openai: {
|
||
label: 'Azure OpenAI',
|
||
description: 'Microsoft Azure 上的 OpenAI 服务',
|
||
},
|
||
aliyun: {
|
||
label: "阿里云 DashScope",
|
||
description: "qwen-plus, tongyi-embedding-vision-plus, qwen3-rerank, etc.",
|
||
},
|
||
zhipu: {
|
||
label: "智谱 BigModel",
|
||
description: "glm-4.7, embedding-3, rerank, etc.",
|
||
},
|
||
openrouter: {
|
||
label: "OpenRouter",
|
||
description: "openai/gpt-5.2-chat, google/gemini-3-flash-preview, etc.",
|
||
},
|
||
generic: {
|
||
label: "自定义 (OpenAI兼容接口)",
|
||
description: "Generic API endpoint (OpenAI-compatible)",
|
||
},
|
||
siliconflow: {
|
||
label: "硅基流动 SiliconFlow",
|
||
description: "deepseek-ai/DeepSeek-V3.1, etc.",
|
||
},
|
||
jina: {
|
||
label: "Jina",
|
||
description: "jina-clip-v1, jina-embeddings-v2-base-zh, etc.",
|
||
},
|
||
volcengine: {
|
||
label: "火山引擎 Volcengine",
|
||
description: "doubao-1-5-pro-32k-250115, doubao-embedding-vision-250615, etc.",
|
||
},
|
||
deepseek: {
|
||
label: "DeepSeek",
|
||
description: "deepseek-chat, deepseek-reasoner 等",
|
||
},
|
||
hunyuan: {
|
||
label: "腾讯混元 Hunyuan",
|
||
description: "hunyuan-pro, hunyuan-standard, hunyuan-embedding, etc.",
|
||
},
|
||
minimax: {
|
||
label: "MiniMax",
|
||
description: "MiniMax-M2.7, MiniMax-M2.7-highspeed, MiniMax-M2.5 等",
|
||
},
|
||
mimo: {
|
||
label: "小米 MiMo",
|
||
description: "mimo-v2-flash",
|
||
},
|
||
gemini: {
|
||
label: "Google Gemini",
|
||
description: "gemini-3-flash-preview, gemini-2.5-pro 等",
|
||
},
|
||
gpustack: {
|
||
label: "GPUStack",
|
||
description: "Choose your deployed model on GPUStack",
|
||
},
|
||
modelscope: {
|
||
label: "魔搭 ModelScope",
|
||
description: "Qwen/Qwen3-8B, Qwen/Qwen3-Embedding-8B, etc.",
|
||
},
|
||
qiniu: {
|
||
label: "七牛云 Qiniu",
|
||
description: "deepseek/deepseek-v3.2-251201, z-ai/glm-4.7, etc.",
|
||
},
|
||
moonshot: {
|
||
label: "月之暗面 Moonshot",
|
||
description: "kimi-k2-turbo-preview, moonshot-v1-8k-vision-preview, etc.",
|
||
},
|
||
qianfan: {
|
||
label: "百度千帆 Baidu Cloud",
|
||
description: "ernie-5.0-thinking-preview, embedding-v1, bce-reranker-base, etc.",
|
||
},
|
||
longcat: {
|
||
label: "LongCat AI",
|
||
description: "LongCat-Flash-Chat, LongCat-Flash-Thinking, etc.",
|
||
},
|
||
lkeap: {
|
||
label: "腾讯云 LKEAP",
|
||
description: "DeepSeek-R1, DeepSeek-V3 系列模型,支持思维链",
|
||
},
|
||
nvidia: {
|
||
label: "NVIDIA",
|
||
description: "deepseek-ai-deepseek-v3_1, nv-embed-v1, rerank-qa-mistral-4b, etc.",
|
||
},
|
||
novita: {
|
||
label: "Novita AI",
|
||
description: "moonshotai/kimi-k2.5, zai-org/glm-5, minimax/minimax-m2.7, qwen/qwen3-embedding-0.6b 等",
|
||
},
|
||
},
|
||
},
|
||
builtinTag: "内置",
|
||
},
|
||
language: {
|
||
zhCN: "简体中文",
|
||
enUS: "English",
|
||
ruRU: "Русский",
|
||
koKR: "한국어",
|
||
selectLanguage: "选择语言",
|
||
language: "语言",
|
||
languageDescription: "选择界面显示语言",
|
||
languageSaved: "语言设置已保存",
|
||
},
|
||
general: {
|
||
title: "常规设置",
|
||
allSettings: "全部设置",
|
||
description: "配置语言、外观等基础选项",
|
||
settings: "设置",
|
||
close: "关闭设置",
|
||
},
|
||
theme: {
|
||
theme: "主题模式",
|
||
themeDescription: "选择界面的显示主题,支持跟随系统自动切换",
|
||
light: "浅色",
|
||
dark: "深色",
|
||
system: "跟随系统",
|
||
selectTheme: "选择主题",
|
||
},
|
||
font: {
|
||
uiFont: "界面字体",
|
||
uiFontDescription: "用于菜单、正文、按钮等界面大部分文字的字体",
|
||
monoFont: "代码字体",
|
||
monoFontDescription: "用于代码块、终端命令、API 密钥、文件路径等技术内容,每个字符等宽显示,避免 0/O、1/l 混淆",
|
||
selectFont: "选择字体",
|
||
sansPreview: "示例 Sample 字体 Font — Aa Gg Oo 0123",
|
||
monoPreview: "const msg = 'Hello'; // 0O1l",
|
||
sans: {
|
||
system: "系统默认",
|
||
// macOS
|
||
pingfang: "苹方 PingFang SC",
|
||
georgia: "Georgia 衬线",
|
||
// Windows
|
||
yahei: "微软雅黑 Microsoft YaHei",
|
||
times: "Times New Roman 衬线",
|
||
// Linux
|
||
"noto-cjk": "Noto Sans CJK",
|
||
"dejavu-serif": "DejaVu Serif 衬线",
|
||
// 跨平台
|
||
"sans-serif": "通用无衬线",
|
||
},
|
||
mono: {
|
||
system: "系统默认",
|
||
// macOS
|
||
menlo: "Menlo",
|
||
monaco: "Monaco",
|
||
// Windows
|
||
consolas: "Consolas",
|
||
cascadia: "Cascadia Code",
|
||
// Linux
|
||
"dejavu-mono": "DejaVu Sans Mono",
|
||
"liberation-mono": "Liberation Mono",
|
||
// 跨平台
|
||
monospace: "通用等宽",
|
||
},
|
||
fontSize: "字体大小",
|
||
fontSizeDescription: "整体缩放界面(文字、图标、间距等),切换后立即生效",
|
||
size: {
|
||
small: "小",
|
||
normal: "正常",
|
||
large: "大",
|
||
},
|
||
},
|
||
platform: {
|
||
subtitle: "企业级智能文档检索框架",
|
||
description: "让复杂文档理解与精准检索变得简单",
|
||
rag: "RAG 增强生成",
|
||
hybridSearch: "混合检索",
|
||
localDeploy: "本地部署",
|
||
multimodalParsing: "多模态文档解析",
|
||
hybridSearchEngine: "混合检索引擎",
|
||
ragQandA: "RAG 智能问答",
|
||
independentTenant: "独立租户空间",
|
||
fullApiAccess: "完整 API 访问",
|
||
knowledgeBaseManagement: "知识库管理",
|
||
carousel: {
|
||
agenticRagTitle: "Agentic RAG",
|
||
agenticRagDesc: "问题改写 + 智能召回 + 重排序",
|
||
hybridSearchTitle: "混合检索策略",
|
||
hybridSearchDesc: "BM25 + 向量 + 知识图谱",
|
||
smartDocRetrievalTitle: "智能文档检索",
|
||
smartDocRetrievalDesc: "PDF/Word/图片多格式解析",
|
||
},
|
||
},
|
||
time: {
|
||
today: "今天",
|
||
yesterday: "昨天",
|
||
last7Days: "近7天",
|
||
last30Days: "近30天",
|
||
lastYear: "近1年",
|
||
earlier: "更早",
|
||
pinned: "已置顶",
|
||
},
|
||
upload: {
|
||
uploadDocument: "上传文档",
|
||
uploadFolder: "上传文件夹",
|
||
onlineEdit: "在线编辑",
|
||
deleteRecord: "删除记录",
|
||
},
|
||
manualEditor: {
|
||
placeholders: {
|
||
heading: "标题{level}",
|
||
listItem: "列表项",
|
||
taskItem: "任务项",
|
||
quote: "引用内容",
|
||
code: "代码内容",
|
||
linkText: "链接文本",
|
||
imageAlt: "描述",
|
||
bold: "加粗文本",
|
||
italic: "斜体文本",
|
||
strike: "删除线",
|
||
inlineCode: "code",
|
||
},
|
||
table: {
|
||
column1: "列1",
|
||
column2: "列2",
|
||
cell: "内容",
|
||
},
|
||
toolbar: {
|
||
bold: "加粗",
|
||
italic: "斜体",
|
||
strike: "删除线",
|
||
inlineCode: "行内代码",
|
||
heading1: "一级标题",
|
||
heading2: "二级标题",
|
||
heading3: "三级标题",
|
||
bulletList: "无序列表",
|
||
orderedList: "有序列表",
|
||
taskList: "任务列表",
|
||
blockquote: "引用",
|
||
codeBlock: "代码块",
|
||
link: "插入链接",
|
||
image: "插入图片",
|
||
table: "插入表格",
|
||
horizontalRule: "分割线",
|
||
},
|
||
view: {
|
||
toggleToEdit: "切换到编辑视图",
|
||
toggleToPreview: "切换到预览视图",
|
||
editLabel: "返回编辑",
|
||
previewLabel: "预览内容",
|
||
},
|
||
preview: {
|
||
empty: "暂无内容",
|
||
},
|
||
title: {
|
||
edit: "编辑 Markdown 知识",
|
||
create: "在线编辑 Markdown 知识",
|
||
},
|
||
labels: {
|
||
currentKnowledgeBase: "当前知识库",
|
||
},
|
||
defaultTitlePrefix: "新建文档",
|
||
error: {
|
||
fetchDetailFailed: "获取知识详情失败",
|
||
saveFailed: "保存失败,请稍后重试",
|
||
},
|
||
warning: {
|
||
selectKnowledgeBase: "请选择目标知识库",
|
||
enterTitle: "请输入知识标题",
|
||
enterContent: "请输入知识内容",
|
||
contentTooShort: "内容过短,建议补充更多信息后再发布",
|
||
},
|
||
success: {
|
||
draftSaved: "草稿已保存",
|
||
published: "知识已发布并开始索引",
|
||
},
|
||
form: {
|
||
knowledgeBaseLabel: "目标知识库",
|
||
knowledgeBasePlaceholder: "请选择知识库",
|
||
titleLabel: "知识标题",
|
||
titlePlaceholder: "请输入标题",
|
||
contentPlaceholder: "支持 Markdown 语法,可使用 # 标题、列表、代码块等",
|
||
},
|
||
noDocumentKnowledgeBases: "暂无可用的文档型知识库,请先创建一个文档型知识库",
|
||
status: {
|
||
draftTag: "当前状态:草稿",
|
||
publishedTag: "当前状态:已发布",
|
||
lastUpdated: "最近更新:{time}",
|
||
},
|
||
loading: {
|
||
content: "正在加载内容",
|
||
preparing: "正在准备编辑器",
|
||
},
|
||
actions: {
|
||
cancel: "取消",
|
||
saveDraft: "暂存草稿",
|
||
publish: "发布入库",
|
||
},
|
||
},
|
||
createChat: {
|
||
title: "Hi,我是 WeKnora,让你的知识触手可及",
|
||
newSessionTitle: "新会话",
|
||
messages: {
|
||
selectKnowledgeBase: "请先选择知识库",
|
||
createFailed: "创建会话失败",
|
||
createError: "创建会话失败,请稍后重试",
|
||
},
|
||
},
|
||
knowledgeList: {
|
||
create: "新建知识库",
|
||
createShort: "新建",
|
||
createFAQ: "新建 FAQ 知识库",
|
||
subtitle: "管理和组织您的知识库,支持文档型和问答型知识库",
|
||
myKnowledgeBases: "我的知识库",
|
||
sharedKnowledgeBases: "共享的知识库",
|
||
sharedToOrgs: "已共享给 {count} 个空间",
|
||
sharedLabel: "共享",
|
||
myLabel: "我的",
|
||
fromAgent: "来自智能体 {name}",
|
||
fromAgentShort: "智能体: {name}",
|
||
tabs: {
|
||
all: "全部",
|
||
myKnowledgeBases: "我的知识库",
|
||
sharedToMe: "共享给我",
|
||
},
|
||
uninitializedBanner:
|
||
"部分知识库尚未初始化,需要先在设置中配置模型信息才能添加知识文档",
|
||
emptyShared: "暂无协作知识库,可以加入共享空间获取他人共享的知识库",
|
||
empty: {
|
||
title: "暂无知识库",
|
||
description: '点击左侧快捷操作"新建知识库"按钮创建第一个知识库',
|
||
sharedTitle: "暂无共享知识库",
|
||
sharedDescription: "您可以加入共享空间或请求他人共享知识库给您",
|
||
favoritesTitle: "暂无收藏",
|
||
favoritesDescription: "在知识库卡片右上角点击星标即可收藏",
|
||
recentsTitle: "暂无最近访问",
|
||
recentsDescription: "最近打开过的知识库会出现在这里",
|
||
},
|
||
delete: {
|
||
confirmTitle: "删除确认",
|
||
confirmMessage: '确认要删除知识库"{name}"?删除后不可恢复',
|
||
confirmButton: "确认删除",
|
||
},
|
||
menu: {
|
||
viewDetails: "查看详情",
|
||
},
|
||
pin: {
|
||
pin: "置顶",
|
||
unpin: "取消置顶",
|
||
pinSuccess: "已置顶",
|
||
unpinSuccess: "已取消置顶",
|
||
failed: "操作失败",
|
||
},
|
||
sections: {
|
||
pinned: "置顶",
|
||
mine: "我创建的",
|
||
tenantReadonly: "本空间 · 仅查看",
|
||
tenantOthers: "本空间 · 其他成员",
|
||
sharedByMe: "我共享的",
|
||
sharedEditable: "共享给我 · 可编辑",
|
||
sharedReadonly: "共享给我 · 仅查看",
|
||
},
|
||
detail: {
|
||
title: "共享知识库",
|
||
overview: "概览",
|
||
overviewDesc: "查看知识库基本信息和来源",
|
||
permission: "权限",
|
||
permissionDesc: "查看您在此知识库的操作权限",
|
||
sourceType: "来源方式",
|
||
sourceTypeKbShare: "知识库直接共享到本空间",
|
||
sourceTypeAgent: "智能体可访问(通过共享智能体可见)",
|
||
sourceOrg: "来源空间",
|
||
sourceFromAgent: "智能体",
|
||
agentKbStrategy: "智能体知识库策略",
|
||
agentKbStrategyAll: "全部知识库",
|
||
agentKbStrategySelected: "指定知识库",
|
||
agentKbStrategyNone: "不使用知识库",
|
||
sharedAt: "共享时间",
|
||
myPermission: "我的权限",
|
||
canEdit: "可以编辑知识库内容",
|
||
canView: "可以查看知识库内容",
|
||
canSearch: "可以搜索和使用知识库",
|
||
goToKb: "进入知识库",
|
||
enabled: "已启用",
|
||
disabled: "未启用",
|
||
},
|
||
features: {
|
||
knowledgeGraph: "知识图谱",
|
||
multimodal: "多模态",
|
||
questionGeneration: "问题生成",
|
||
},
|
||
messages: {
|
||
deleted: "已删除",
|
||
deleteFailed: "删除失败",
|
||
file: "文件",
|
||
knowledgeBase: "知识库",
|
||
noResult: "无结果",
|
||
},
|
||
processing: "正在处理导入任务",
|
||
processingDocuments: "正在处理 {count} 个文档",
|
||
stats: {
|
||
documents: "文档数量",
|
||
faqEntries: "问答条目",
|
||
chunks: "分块数量",
|
||
},
|
||
uploadProgress: {
|
||
uploadingTitle: "正在向「{name}」上传文件夹中的文档",
|
||
detail: "已完成 {completed}/{total} 个文件",
|
||
keepPageOpen: "请保持页面打开,上传完成后会自动刷新解析状态。",
|
||
completedTitle: "「{name}」的上传已完成",
|
||
completedDetail: "共上传 {total} 个文件,正在刷新列表查看解析状态...",
|
||
refreshing: "正在刷新列表并获取最新解析状态...",
|
||
errorTip: "部分文件上传失败,请查看右上角通知详情。",
|
||
unknownKb: "知识库 {id}",
|
||
},
|
||
},
|
||
knowledgeEditor: {
|
||
titleCreate: "新建知识库",
|
||
titleEdit: "知识库设置",
|
||
sidebar: {
|
||
basic: "基本信息",
|
||
models: "模型配置",
|
||
vectorStore: "向量存储",
|
||
chunking: "分块设置",
|
||
storage: "存储引擎",
|
||
advanced: "高级设置",
|
||
faq: "FAQ 设置",
|
||
wiki: "Wiki 设置",
|
||
graph: "知识图谱",
|
||
multimodal: "图像处理",
|
||
asr: "音频处理",
|
||
datasource: "数据源",
|
||
share: "共享管理",
|
||
indexing: "索引策略",
|
||
},
|
||
errors: {
|
||
vectorStoreBindingInvalid:
|
||
"无法使用所选向量存储。请选择其他存储或使用系统默认值。",
|
||
vectorStoreUnavailable:
|
||
"所选向量存储当前不可用。请在设置 → 向量存储中检查其连接配置。",
|
||
},
|
||
basic: {
|
||
title: "基本信息",
|
||
description: "设置知识库的名称和描述信息",
|
||
kbId: "知识库 ID",
|
||
kbIdDesc: "API 集成时可使用此 ID 指定知识库",
|
||
typeLabel: "知识库类型",
|
||
typeDocument: "文档",
|
||
typeFAQ: "问答",
|
||
typeDescription: "FAQ 类型适合结构化问答数据;文档型支持文件解析与分块;Wiki 类型由 LLM 自动构建互链知识页面。",
|
||
nameLabel: "知识库名称",
|
||
namePlaceholder: "请输入知识库名称",
|
||
descriptionLabel: "知识库描述",
|
||
descriptionPlaceholder: "请输入知识库描述(可选)",
|
||
},
|
||
wiki: {
|
||
title: "Wiki 设置",
|
||
description: "配置 Wiki 知识库的自动生成偏好",
|
||
synthesisModelLabel: "Wiki 合成模型",
|
||
synthesisModelPlaceholder: "选择用于 Wiki 生成的 LLM 模型",
|
||
synthesisModelTip: "不设置时将回退使用摘要模型",
|
||
languageLabel: "Wiki 语言",
|
||
maxPagesLabel: "单次最大页面数",
|
||
maxPagesTip: "每次 Ingest 最多创建/更新的页面数(0 表示不限制)",
|
||
extractionGranularityLabel: "提取粒度",
|
||
extractionGranularityTip: "控制每篇文档抽取的 Wiki 实体/概念数量。粒度越细,索引越聚焦;粒度越粗,索引越详尽",
|
||
granularityFocused: "聚焦",
|
||
granularityStandard: "标准",
|
||
granularityExhaustive: "详尽",
|
||
granularityFocusedHint: "只抽取文档的主角(如简历 → 人物和项目)。最干净,但可能漏掉次要实体。",
|
||
granularityStandardHint: "抽取主角 + 被详细描述的次要实体/概念。跳过一带而过的通用名词。适合大多数场景。",
|
||
granularityExhaustiveHint: "抽取所有可识别的命名实体与概念,包括一带而过的技术栈。适合将知识库当作术语表使用。",
|
||
},
|
||
indexing: {
|
||
title: "索引策略",
|
||
description: "配置文档上传后的处理管道,可以独立开启或关闭每种索引方式",
|
||
searchTitle: "RAG 检索",
|
||
searchDesc: "对文档进行分块、向量化和关键词索引,支持混合检索",
|
||
wikiTitle: "Wiki 知识库",
|
||
wikiDesc: "自动生成互相关联的 Wiki 知识页面,构建结构化知识体系",
|
||
graphTitle: "知识图谱",
|
||
graphDesc: "提取实体和关系,构建知识图谱支持图谱检索",
|
||
atLeastOne: "至少需要开启一种索引策略",
|
||
embeddingRequired: "RAG 检索需要配置 Embedding 模型",
|
||
wikiModelRequired: "Wiki 知识库需要配置合成模型",
|
||
lockedTip: "知识库已有内容,索引策略暂不支持调整。如需变更,请先清空知识库。",
|
||
rebuildConfirmTitle: "重建索引",
|
||
rebuildConfirmBody: "索引策略已变更,是否对已有的 {count} 篇文档重新处理?这可能需要一些时间。",
|
||
rebuildSuccess: "已提交重建任务,共 {count} 篇文档",
|
||
rebuildSkip: "稍后可在数据源中手动触发重建",
|
||
},
|
||
wikiBrowser: {
|
||
viewInGraph: '在图谱中查看',
|
||
tabDocuments: "文档",
|
||
tabWiki: "Wiki",
|
||
tabGraph: "图谱",
|
||
tabGraphTip: "Wiki 页面之间的引用关系图(即页面链接图谱),与「知识库设置 → 知识图谱」中基于 LLM 抽取的实体-关系图谱不是同一个概念",
|
||
searchPlaceholder: "搜索 Wiki 页面...",
|
||
searchNoResults: "没有找到匹配的页面",
|
||
loadMore: "加载更多(还剩 {remaining} 条)",
|
||
filterAll: "全部类型",
|
||
filterSummary: "摘要",
|
||
filterEntity: "实体",
|
||
filterConcept: "概念",
|
||
filterSynthesis: "综合",
|
||
filterComparison: "对比",
|
||
viewReader: "阅读器",
|
||
viewGraph: "图谱",
|
||
stats: "{pages} 个页面 · {links} 个链接",
|
||
emptyTitle: "暂无 Wiki 页面",
|
||
emptyDesc: "上传文档并启用 Wiki 后将自动生成知识页面",
|
||
selectPageHint: "从左侧选择一个页面查看内容",
|
||
version: "v{ver}",
|
||
aliases: "别名",
|
||
linksTo: "链接到",
|
||
linkedFrom: "被链接",
|
||
sources: "来源文档",
|
||
recentActivity: "最近活动",
|
||
graphEmpty: "加载图谱中...",
|
||
fitView: "适应屏幕",
|
||
logTitle: '日志',
|
||
indexTitle: '索引',
|
||
logFeedTag: '事件流',
|
||
logEmpty: '暂无日志记录',
|
||
logLoading: '加载中…',
|
||
logLoadMore: '加载更多',
|
||
indexOverviewTag: '分类目录',
|
||
indexEmpty: '暂无 Wiki 页面,请先上传文档',
|
||
graphNoData: '暂无图谱数据,请先上传文档(这里展示的是 Wiki 页面之间的链接关系,与「知识库设置 → 知识图谱」中的实体-关系图谱不同)',
|
||
showArrows: '显示箭头',
|
||
hideArrows: '隐藏箭头',
|
||
expandNeighbors: '展开邻居',
|
||
bloomNeighbors: '叠加邻居',
|
||
growFrontier: '扩张边缘 ({count})',
|
||
growFrontierTitle: '一键展开当前所有 {count} 个带虚线环的节点',
|
||
cardEgoTitle: '当前焦点',
|
||
cardOverviewTitle: '全库概览',
|
||
cardOverviewPrimary: '{returned} / {total} 个节点',
|
||
cardOverviewHintTruncated: '双击任意节点聚焦到该节点的子图',
|
||
cardOverviewHintFull: '已展示知识库全部节点',
|
||
cardRelatedNodes: '{count} 个相关节点',
|
||
helpButtonTitle: '操作帮助',
|
||
helpTitle: '画布操作',
|
||
helpClickAction: '单击',
|
||
helpClickDesc: '打开节点详情',
|
||
helpDblClickAction: '双击',
|
||
helpDblClickDesc: '以该节点为中心聚焦',
|
||
helpShiftClickAction: 'Shift + 单击',
|
||
helpShiftClickDesc: '叠加该节点邻居到画布',
|
||
helpHoverPlusAction: '悬浮 → ⊕',
|
||
helpHoverPlusDesc: '同 Shift + 单击',
|
||
helpDragAction: '拖拽节点',
|
||
helpDragDesc: '手动调整节点位置',
|
||
helpPanAction: '拖拽空白',
|
||
helpPanDesc: '平移画布',
|
||
helpZoomAction: '滚轮',
|
||
helpZoomDesc: '缩放画布',
|
||
neighborsProgress: '已显示邻居 {visible}/{total}(还有 {hidden} 个未加载)',
|
||
neighborsAllShown: '全部 {total} 个邻居已在图中(可点"展开邻居"聚焦到该节点子图)',
|
||
neighborsNone: '该节点没有链接邻居',
|
||
neighborsCenterUnreachable: '已显示邻居 {visible}/{total}(还有 {hidden} 个无法连通:可能是死链、被过滤或已删除)',
|
||
neighborsOverviewHidden: '已显示邻居 {visible}/{total}({hidden} 个不在概览范围,点"展开邻居"以此为中心查看)',
|
||
backToOverview: '返回概览',
|
||
healthCheck: "健康检查",
|
||
queueStatus: "Wiki 队列中 {count} 个待处理任务",
|
||
issueTitle: "此页面存在 {count} 个待处理的知识冲突或错误",
|
||
issueFixBtn: "AI 一键修复",
|
||
issueMixed: "信息混杂",
|
||
issueConflict: "事实冲突",
|
||
issueOutdated: "信息过时",
|
||
issueAttention: "需要关注",
|
||
issueReportedBy: "由 {reporter} 报告",
|
||
issueAiLinter: "AI 巡检",
|
||
issueIgnore: "忽略误报",
|
||
globalIssuesTitle: "全库待修复内容问题",
|
||
globalIssuesCount: "待修复内容问题: {count} 项",
|
||
globalIssuesEmpty: "暂无待处理的内容问题",
|
||
issuePagePrefix: "页面: ",
|
||
issueGoFix: "去处理",
|
||
fixAssistantTitle: "Wiki 智能修复助手",
|
||
issueFixSuggestions: "内容优化建议 ({count})",
|
||
issueFixSingle: "修复",
|
||
fixStartError: "启动修复助手失败",
|
||
issueFixPromptSingle: "请修复页面 [[{slug}]] 上的问题 (ID: {id})。",
|
||
issueFixPromptAutoStart: "请修复页面 [[{slug}]] 上的以下问题:",
|
||
issueFixPromptAutoEnd: "",
|
||
},
|
||
buttons: {
|
||
create: "创建知识库",
|
||
save: "保存配置",
|
||
},
|
||
share: {
|
||
description: "将知识库共享给空间,让空间成员可以访问和使用",
|
||
addShare: "共享",
|
||
unshareConfirm: "确定要取消对「{name}」的共享吗?",
|
||
tip1: "共享后,空间成员将根据设定的权限访问此知识库",
|
||
tip2: "可编辑权限允许成员修改知识库内容,只读权限仅允许检索和问答",
|
||
},
|
||
messages: {
|
||
loadModelsFailed: "加载模型列表失败",
|
||
loadDataFailed: "加载知识库数据失败",
|
||
notFound: "知识库不存在",
|
||
nameRequired: "请输入知识库名称",
|
||
embeddingRequired: "请选择 Embedding 模型",
|
||
summaryRequired: "请选择 Summary 模型",
|
||
multimodalInvalid: "多模态配置验证失败",
|
||
createSuccess: "知识库创建成功",
|
||
createFailed: "创建知识库失败",
|
||
missingId: "缺少知识库 ID",
|
||
buildDataFailed: "数据构建失败",
|
||
updateSuccess: "配置保存成功",
|
||
indexModeRequired: "请选择 FAQ 的索引方式",
|
||
storageChangeConfirm: "知识库中已有文件,更改存储引擎后旧文件可能无法正常访问。是否确认更改?",
|
||
},
|
||
document: {
|
||
title: "文档",
|
||
subtitle: "支持点击或拖拽上传,多格式文档自动解析并智能分块,快速构建可检索的知识库",
|
||
},
|
||
faq: {
|
||
title: "问答",
|
||
subtitle: "结构化问答管理,支持标准问、相似问和反例,精准匹配用户查询,提升问答准确率",
|
||
description: "设置 FAQ 知识库的索引策略和问答组织方式",
|
||
indexModeLabel: "索引方式",
|
||
indexModeDescription: "仅索引问题可提升精度,索引问答可提高召回率",
|
||
questionIndexModeLabel: "问题索引方式",
|
||
questionIndexModeDescription: "合并索引:标准问和相似问合并索引;分别索引:标准问和每个相似问独立索引,检索更精确但需要更多存储",
|
||
entryGuide: "FAQ 条目由标准问、相似问、反例和多个答案组成,可在知识库详情中批量导入、编辑。",
|
||
tagDesc: "为 FAQ 条目选择分类",
|
||
tagPlaceholder: "请选择分类",
|
||
modes: {
|
||
questionOnly: "仅标准问/相似问",
|
||
questionAnswer: "标准问 + 答案",
|
||
combined: "合并索引",
|
||
separate: "分别索引",
|
||
},
|
||
standardQuestion: "标准问",
|
||
standardQuestionDesc: "设置问题的标准表述,这是用户最常问的问题形式。",
|
||
answers: "答案",
|
||
answersDesc: "提供完整准确的答案内容,可添加多个答案以覆盖不同场景。",
|
||
similarQuestions: "相似问",
|
||
similarQuestionsDesc: "添加与标准问意思相同但表述不同的问题,帮助系统更好地匹配用户查询。",
|
||
negativeQuestions: "反例",
|
||
negativeQuestionsDesc: "添加不应匹配此答案的问题,用于排除误匹配的情况。",
|
||
categoryLabel: "FAQ 分类",
|
||
categoryButton: "切换分类",
|
||
editorCreate: "新增 FAQ 条目",
|
||
editorEdit: "编辑 FAQ 条目",
|
||
addAnswer: "添加答案",
|
||
answerPlaceholder: "请输入答案内容,支持多行文本,按 Ctrl+Enter 或点击按钮添加",
|
||
similarPlaceholder: "输入相似问题后点击加号添加",
|
||
negativePlaceholder: "输入反例后点击加号添加",
|
||
answerRequired: "请至少填写一个答案",
|
||
noAnswer: "暂无答案",
|
||
noSimilar: "暂无相似问",
|
||
noNegative: "暂无反例",
|
||
emptyTitle: "暂无 FAQ 条目",
|
||
emptyDesc: '点击上方"新增 FAQ 条目"按钮开始创建',
|
||
searchPlaceholder: "搜索问题和答案...",
|
||
searchTest: "检索测试",
|
||
addFaq: "添加FAQ",
|
||
manageFaq: "FAQ操作",
|
||
createGroup: "新建",
|
||
searchTestTitle: "FAQ 检索测试",
|
||
queryLabel: "查询内容",
|
||
queryPlaceholder: "请输入要检索的问题",
|
||
vectorThresholdLabel: "向量相似度阈值",
|
||
vectorThresholdDesc: "范围 0-1,默认 0.7",
|
||
keywordThresholdLabel: "关键词匹配阈值",
|
||
keywordThresholdDesc: "范围 0-1,默认 0.5",
|
||
matchCountLabel: "结果数量",
|
||
matchCountDesc: "范围 1-50,默认 10",
|
||
searchButton: "开始检索",
|
||
searching: "检索中...",
|
||
searchResults: "检索结果",
|
||
noResults: "未找到匹配的 FAQ 条目",
|
||
score: "相似度",
|
||
matchType: "匹配类型",
|
||
matchedQuestion: "命中问题",
|
||
matchTypeEmbedding: "向量匹配",
|
||
matchTypeKeywords: "关键词匹配",
|
||
similarityThresholdLabel: "相似度阈值",
|
||
statusEnabled: "已启用",
|
||
statusDisabled: "已禁用",
|
||
statusEnableSuccess: "FAQ 条目已启用",
|
||
statusDisableSuccess: "FAQ 条目已禁用",
|
||
statusUpdateFailed: "更新状态失败",
|
||
recommended: "推荐",
|
||
recommendedEnabled: "已开启推荐",
|
||
recommendedDisabled: "已关闭推荐",
|
||
recommendedEnableSuccess: "FAQ 条目已开启推荐",
|
||
recommendedDisableSuccess: "FAQ 条目已关闭推荐",
|
||
recommendedUpdateFailed: "更新推荐状态失败",
|
||
batchOperations: "批量操作",
|
||
batchUpdateTag: "批量分类",
|
||
batchUpdateTagTip: "将为 {count} 个选中的条目设置分类",
|
||
batchEnable: "批量启用",
|
||
batchDisable: "批量禁用",
|
||
batchEnableRecommended: "批量开启推荐",
|
||
batchDisableRecommended: "批量关闭推荐",
|
||
},
|
||
faqImport: {
|
||
title: "批量导入 FAQ",
|
||
modeLabel: "导入模式",
|
||
appendMode: "追加导入",
|
||
replaceMode: "替换现有条目",
|
||
fileLabel: "选择文件",
|
||
fileTip: "支持 JSON / CSV / Excel。CSV/Excel 表头:分类(必填)、问题(必填)、相似问题(选填-多个用##分隔)、反例问题(选填-多个用##分隔)、机器人回答(必填-多个用##分隔)、是否全部回复(选填-默认FALSE)、是否停用(选填-默认FALSE)、是否禁止被推荐(选填-默认False 可被推荐)。也支持旧格式:standard_question、answers、similar_questions、negative_questions",
|
||
clickToUpload: "点击上传文件",
|
||
dragDropTip: "或拖拽文件到此处",
|
||
importButton: "导入 FAQ",
|
||
deleteSelected: "批量删除",
|
||
deleteSuccess: "选中条目已删除",
|
||
previewCount: "共解析 {count} 条记录",
|
||
previewMore: "还有 {count} 条未展示",
|
||
importSuccess: "导入成功",
|
||
parseFailed: "解析文件失败",
|
||
invalidJSON: "JSON 文件格式不正确",
|
||
unsupportedFormat: "暂不支持该文件格式",
|
||
selectFile: "请先选择需要导入的文件",
|
||
downloadExample: "下载示例文件",
|
||
downloadExampleJSON: "下载 JSON 示例",
|
||
downloadExampleCSV: "下载 CSV 示例",
|
||
downloadExampleExcel: "下载 Excel 示例",
|
||
},
|
||
faqExport: {
|
||
exportButton: "导出 CSV",
|
||
exportSuccess: "导出成功",
|
||
exportFailed: "导出失败",
|
||
},
|
||
models: {
|
||
title: "模型配置",
|
||
description: "为知识库选择合适的 AI 模型",
|
||
llmLabel: "LLM 大语言模型",
|
||
llmDesc: "用于总结和摘要的大语言模型",
|
||
llmPlaceholder: "请选择 LLM 模型(可选)",
|
||
embeddingLabel: "Embedding 嵌入模型",
|
||
embeddingDesc: "用于文本向量化的嵌入模型",
|
||
embeddingPlaceholder: "请选择 Embedding 模型",
|
||
embeddingLocked: "知识库中已有文件,无法修改 Embedding 模型",
|
||
rerankLabel: "ReRank 重排序模型",
|
||
rerankDesc: "用于搜索结果重排序的模型(可选)",
|
||
rerankPlaceholder: "请选择 ReRank 模型(可选)",
|
||
},
|
||
chunking: {
|
||
title: "分块设置",
|
||
description: "控制上传文档在嵌入前的切分方式。默认值适用于大多数场景,仅在检索质量异常时调整。",
|
||
sizeLabel: "分块大小",
|
||
sizeDescription: "每个分块的最大字符数(100-4000)。默认 512 ≈ 中文 300 tokens / 英文 100-130 tokens。FAQ 用 200-400,叙述性长文档用 1000-2000。",
|
||
characters: "字符",
|
||
overlapLabel: "分块重叠",
|
||
overlapDescription: "相邻分块之间共享的字符数(0-500)。默认 80 ≈ 分块大小的 15%,符合当前研究推荐。FAQ/结构化数据用 0,长篇叙述用 150-200。",
|
||
separatorsLabel: "分隔符",
|
||
separatorsDescription: "切分时优先使用的字符或字符串。优先级高的分隔符先尝试;默认顺序优先段落 → 句子 → 标点。",
|
||
separatorsPlaceholder: "选择或自定义分隔符",
|
||
separators: {
|
||
doubleNewline: "双换行 (\\n\\n)",
|
||
singleNewline: "单换行 (\\n)",
|
||
periodCn: "中文句号 (。)",
|
||
exclamationCn: "感叹号 (!)",
|
||
questionCn: "问号 (?)",
|
||
semicolonCn: "中文分号 (;)",
|
||
semicolonEn: "英文分号 (;)",
|
||
space: "空格 ( )",
|
||
},
|
||
parentChildLabel: "父子分块",
|
||
parentChildDescription: "两级分块:小的子块用于向量匹配(精准命中),大的父块返回给 LLM(更丰富上下文)。建议用于长文档(>10 页);短 FAQ 可关闭以节省存储。",
|
||
parentChunkSizeLabel: "父块大小",
|
||
parentChunkSizeDescription: "返回给 LLM 的上下文块大小(512-8192)。默认 4096 ≈ 1000 英文 tokens,适合所有现代 LLM 上下文窗口。",
|
||
childChunkSizeLabel: "子块大小",
|
||
childChunkSizeDescription: "用于向量匹配的嵌入块大小(64-2048)。默认 384 ≈ 80 tokens,是 sentence-transformer / BGE 类嵌入模型的最佳点。",
|
||
strategyLabel: "分块策略",
|
||
strategyDescription: "选择文档的分块方式。自动模式会分析每个文档的结构并选择最佳策略。",
|
||
strategyPlaceholder: "选择分块策略(不填则按长度切分)",
|
||
strategies: {
|
||
auto: {
|
||
label: "自动",
|
||
tooltip: "文档分析器根据内容结构自动在「按标题切分」「结构感知」「按长度切分」之间选择。"
|
||
},
|
||
heading: {
|
||
label: "按标题切分",
|
||
tooltip: "在 Markdown 标题(#、##、###)边界处切分,每块自动带上所在标题路径。适合结构清晰的 Markdown 文档。"
|
||
},
|
||
heuristic: {
|
||
label: "结构感知",
|
||
tooltip: "识别分页符、编号章节、多语言章节标记(DE/EN/ZH)、全大写标题等结构信号进行切分。适合没有 Markdown 标题的 PDF / 扫描件。"
|
||
},
|
||
legacy: {
|
||
label: "按长度切分",
|
||
tooltip: "忽略结构,仅按字符数和分隔符递归切分——原始行为。当上述策略对你的内容效果不佳时使用。"
|
||
}
|
||
},
|
||
overlapWarning: "重叠相对于分块大小较大——分块之间会共享大部分内容。",
|
||
advancedLabel: "高级选项",
|
||
tokenLimitLabel: "每块 Token 上限",
|
||
tokenLimitDescription: "每个分块的硬性 Token 上限(0-8192)。0 = 关闭(仅按字符数)。当嵌入模型 Token 上限较小时启用:MiniLM (256 tok) 用 200,BGE/Cohere (512 tok) 用 400。现代嵌入器(OpenAI、Voyage、Jina-v3)支持 >2000 tokens,保持 0 即可。",
|
||
languagesLabel: "语言提示",
|
||
languagesDescription: "限制启发式模式只识别选定的语言(DE/EN/ZH)。留空 = 自动检测。同质化语料库可显式设置以避免跨语言误匹配。",
|
||
languagesPlaceholder: "自动检测",
|
||
languageOptions: {
|
||
de: "德语",
|
||
en: "英语",
|
||
zh: "中文"
|
||
},
|
||
debug: {
|
||
toggle: "测试分块效果",
|
||
toggleHint: "无需重新上传即可对示例文本运行分块器",
|
||
sampleLabel: "示例文本",
|
||
samplePlaceholder: "粘贴 Markdown / 纯文本片段以查看当前配置的分块结果…",
|
||
presetLabel: "载入示例:",
|
||
samples: {
|
||
markdown: "Markdown 文档",
|
||
faq: "FAQ 列表",
|
||
chapter: "PDF 章节",
|
||
plain: "纯文本"
|
||
},
|
||
runButton: "运行预览",
|
||
loading: "正在对示例运行分块器…",
|
||
errorPrefix: "预览失败",
|
||
selectedTier: "选定策略",
|
||
rejected: "被拒绝的层级",
|
||
contextHeader: "上下文标题",
|
||
fallbackWarning: "策略链已穷尽 — 当前设置无法智能分块此内容",
|
||
profile: {
|
||
lines: "行",
|
||
chars: "字符",
|
||
headings: "Markdown 标题",
|
||
pageBreaks: "分页符",
|
||
chapterMarkers: "章节标记",
|
||
languages: "语言"
|
||
},
|
||
stats: {
|
||
chunks: "块",
|
||
truncated: "已截断;总数 {total}"
|
||
}
|
||
}
|
||
},
|
||
multimodal: {
|
||
title: "图像处理配置",
|
||
description: "配置图像内容理解能力,启用后支持图片等非文本内容的解析和检索",
|
||
},
|
||
asr: {
|
||
title: "音频语音识别",
|
||
description: "配置语音识别(ASR),启用后可上传音频文件并整段转写为文本(常见格式:mp3、wav、m4a、flac、ogg 等)。暂不支持视频上传。",
|
||
label: "启用音频语音识别",
|
||
desc: "启用后可上传音频到知识库,系统自动将语音转写为文本并参与解析与检索",
|
||
modelLabel: "ASR 模型",
|
||
modelDescription: "用于音频中语音转文本的识别模型(如 OpenAI Whisper)",
|
||
modelPlaceholder: "请选择 ASR 模型",
|
||
},
|
||
advanced: {
|
||
title: "高级设置",
|
||
description: "配置问题生成等高级功能",
|
||
questionGeneration: {
|
||
label: "AI 问题生成",
|
||
description: "解析文档时调用大模型为每个分块生成相关问题,提高检索召回率。启用后会增加文档解析耗时。",
|
||
countLabel: "生成问题数量",
|
||
countDescription: "每个文档分块生成的问题数量(1-10)",
|
||
},
|
||
multimodal: {
|
||
label: "多模态功能",
|
||
description: "启用图片等多模态内容的理解能力",
|
||
vllmLabel: "VLLM 视觉模型",
|
||
vllmDescription: "用于多模态理解的视觉语言模型(必选)",
|
||
vllmPlaceholder: "请选择 VLLM 模型(必选)",
|
||
storageTitle: "存储配置",
|
||
storageTypeLabel: "存储类型",
|
||
storageTypeDescription:
|
||
"选择多模态文件的存储方式(MinIO 或腾讯云 COS 二选一)",
|
||
storageTypeOptions: {
|
||
minio: "MinIO",
|
||
cos: "腾讯云 COS",
|
||
},
|
||
minioDisabledWarning: "MinIO 未启用,已自动切换到腾讯云 COS。如需使用 MinIO,请先在系统配置中启用 MinIO。",
|
||
minio: {
|
||
bucketLabel: "Bucket 名称",
|
||
bucketDescription: "MinIO 存储桶名称(必填)",
|
||
bucketPlaceholder: "选择或输入 Bucket 名称",
|
||
bucketHint: "选择已存在的公有读权限 Bucket,或输入新名称将自动创建",
|
||
policyLabels: {
|
||
public: "公有读",
|
||
private: "私有",
|
||
custom: "自定义"
|
||
},
|
||
useSslLabel: "使用 SSL",
|
||
useSslDescription: "是否使用 SSL 连接",
|
||
pathPrefixLabel: "路径前缀",
|
||
pathPrefixDescription: "文件存储路径前缀(可选)",
|
||
pathPrefixPlaceholder: "请输入路径前缀",
|
||
},
|
||
cos: {
|
||
secretIdLabel: "SecretId",
|
||
secretIdDescription: "腾讯云 API 密钥 ID(必填)",
|
||
secretIdPlaceholder: "请输入 SecretId(必填)",
|
||
secretKeyLabel: "SecretKey",
|
||
secretKeyDescription: "腾讯云 API 密钥 Key(必填)",
|
||
secretKeyPlaceholder: "请输入 SecretKey(必填)",
|
||
regionLabel: "地域",
|
||
regionDescription: "COS 存储桶所在地域(必填)",
|
||
regionPlaceholder: "如:ap-guangzhou(必填)",
|
||
bucketLabel: "Bucket 名称",
|
||
bucketDescription: "COS 存储桶名称(必填)",
|
||
bucketPlaceholder: "请输入 Bucket 名称(必填)",
|
||
appIdLabel: "AppId",
|
||
appIdDescription: "腾讯云应用 ID(必填)",
|
||
appIdPlaceholder: "请输入 AppId(必填)",
|
||
pathPrefixLabel: "路径前缀",
|
||
pathPrefixDescription: "文件存储路径前缀(可选)",
|
||
pathPrefixPlaceholder: "请输入路径前缀",
|
||
},
|
||
},
|
||
},
|
||
},
|
||
input: {
|
||
addModel: "添加模型",
|
||
placeholder: "直接向模型提问",
|
||
placeholderWithContext: "输入问题,将基于上方选中的知识库/文件回答",
|
||
placeholderWebOnly: "输入问题,将结合网络搜索回答",
|
||
placeholderKbAndWeb: "输入问题,将基于知识库和网络搜索回答",
|
||
placeholderAgent: "向 {name} 提问",
|
||
agentMode: "智能推理",
|
||
normalMode: "快速问答",
|
||
normalModeDesc: "基于知识库的 RAG 问答",
|
||
agentModeDesc: "多步思考,深度分析",
|
||
agentNotReadyTooltip: "Agent 未就绪,请先在设置中完成配置",
|
||
agentMissingAllowedTools: "允许的工具",
|
||
agentMissingSummaryModel: "对话模型(Summary Model)",
|
||
agentMissingRerankModel: "重排模型(Rerank Model)",
|
||
goToSettings: "前往设置 →",
|
||
customAgentNotReadyTooltip: "智能体未就绪,请先完成配置",
|
||
customAgentNotReadyDetail: "智能体未就绪,需要配置以下内容:{reasons}",
|
||
customAgentMissingSummaryModel: "对话模型(Summary Model)",
|
||
customAgentMissingRerankModel: "重排模型(Rerank Model)",
|
||
goToAgentEditor: "前往配置 →",
|
||
agentNotReadyDetail: "智能体「{agentName}」未就绪,需要配置以下内容:{reasons}",
|
||
builtinAgentNotReadyDetail: "内置智能体「{agentName}」未就绪,需要配置以下内容:{reasons}",
|
||
builtinAgentSettingName: "智能推理",
|
||
builtinNormalSettingName: "快速问答",
|
||
webSearch: {
|
||
toggleOn: "开启网络搜索",
|
||
toggleOff: "关闭网络搜索",
|
||
notConfigured: "未配置网络搜索引擎",
|
||
},
|
||
knowledgeBase: "知识库",
|
||
knowledgeBaseWithCount: "知识库({count})",
|
||
notConfigured: "未配置",
|
||
sharedAgentModelLabel: "共享智能体配置的模型",
|
||
model: "模型",
|
||
remote: "远程",
|
||
noModel: "暂无可用模型",
|
||
stopGeneration: "停止生成",
|
||
send: "发送",
|
||
thinkingLabel: "Thinking:",
|
||
messages: {
|
||
enterContent: "请先输入内容!",
|
||
selectKnowledge: "请先选择知识库!",
|
||
replying: "正在回复中,请稍后再试!",
|
||
agentSwitchedOn: "已切换到智能推理",
|
||
agentSwitchedOff: "已切换到快速问答",
|
||
agentSelected: "已选择智能体「{name}」",
|
||
agentEnabled: "Agent 模式已启用",
|
||
agentDisabled: "Agent 模式已禁用",
|
||
agentNotReadyDetail:
|
||
"Agent 未就绪,需要配置以下内容:{reasons}",
|
||
webSearchNotConfigured:
|
||
"未配置网络搜索引擎,请先在设置中完成搜索引擎选择与接口配置。",
|
||
webSearchEnabled: "网络搜索已开启",
|
||
webSearchDisabled: "网络搜索已关闭",
|
||
sessionMissing: "会话 ID 不存在",
|
||
messageMissing: "无法获取消息 ID,请刷新页面后重试",
|
||
stopSuccess: "已停止生成",
|
||
stopFailed: "停止失败,请重试",
|
||
},
|
||
webSearchDisabledByAgent: "当前智能体已禁用网络搜索",
|
||
webSearchForcedByAgent: "当前智能体已启用网络搜索,无法关闭",
|
||
kbLockedByAgent: "当前智能体已锁定知识库配置",
|
||
kbDisabledByAgent: "当前智能体已禁用知识库功能",
|
||
cannotRemoveAgentKb: "智能体配置的知识库无法移除",
|
||
agentConfiguredKb: "由智能体配置,不可删除",
|
||
modelLockedByAgent: "当前智能体已锁定模型配置",
|
||
imageUploadDisabledByAgent: "当前智能体未启用图片上传",
|
||
goToAgentSettings: "去设置智能体",
|
||
},
|
||
agentSettings: {
|
||
title: "Agent 配置",
|
||
description:
|
||
"配置 AI Agent 的默认行为和参数,这些设置将应用于所有启用 Agent 模式的对话",
|
||
modelRecommendation: {
|
||
title: "模型推荐",
|
||
content: "为获得更好的 Agent 体验,建议使用支持 FunctionCalling 的长上下文大语言模型,如 deepseek-v3.1-terminus 等",
|
||
},
|
||
status: {
|
||
label: "Agent 状态",
|
||
ready: "可用",
|
||
notReady: "未就绪",
|
||
hint: '配置完成后,Agent 状态将自动变为"可用",此时可在对话界面开启 Agent 模式',
|
||
missingThinkingModel: "思考模型",
|
||
missingSummaryModel: "对话模型(Summary Model)",
|
||
missingRerankModel: "Rerank 模型",
|
||
missingAllowedTools: "允许的工具",
|
||
pleaseConfigure: "请配置{items}",
|
||
goToConfig: "前往配置对话模型",
|
||
goConfigureModels: "前往配置模型 →",
|
||
},
|
||
maxIterations: {
|
||
label: "最大迭代次数",
|
||
desc: "Agent 执行任务时的最大推理步骤数",
|
||
},
|
||
thinkingModel: {
|
||
label: "思考模型",
|
||
desc: "用于 Agent 推理和规划的 LLM 模型",
|
||
hint: "需要支持 Function call 的大尺寸模型,如 deepseek 等",
|
||
},
|
||
rerankModel: {
|
||
label: "Rerank 模型",
|
||
desc: "搜索结果重排序,统一不同来源的相关度分数",
|
||
},
|
||
model: {
|
||
placeholder: "搜索模型...",
|
||
addChat: "添加新的对话模型",
|
||
addRerank: "添加新的 Rerank 模型",
|
||
},
|
||
temperature: {
|
||
label: "温度参数",
|
||
desc: "控制模型输出的随机性,0 最确定,1 最随机",
|
||
},
|
||
allowedTools: {
|
||
label: "允许的工具",
|
||
desc: "当前 Agent 可使用的工具列表",
|
||
placeholder: "请选择工具...",
|
||
empty: "尚未配置任何工具",
|
||
},
|
||
systemPrompt: {
|
||
label: "系统 Prompt",
|
||
desc: "配置 Agent 的系统提示词,支持占位符模板。占位符会在运行时自动替换为实际内容。",
|
||
availablePlaceholders: "可用占位符:",
|
||
hintPrefix: "提示:输入",
|
||
hintSuffix: "时会自动显示可用占位符",
|
||
custom: "自定义 Prompt",
|
||
disabledHint: "当前使用系统默认 Prompt,开启自定义后才会应用下方内容。",
|
||
placeholder: "请输入系统 Prompt,或留空使用默认 Prompt...",
|
||
tabHint: "统一的系统提示词,使用 {'{{'}web_search_status{'}}'} 占位符动态控制网络搜索行为",
|
||
tabHintDetail: "统一的系统提示词,使用 {'{{'}web_search_status{'}}'} 占位符动态控制网络搜索行为(留空则使用系统默认,使用 {'{{'}web_search_status{'}}'} 占位符动态控制网络搜索行为)",
|
||
},
|
||
reset: {
|
||
header: "恢复默认 Prompt",
|
||
body: "确定要恢复为默认 Prompt 吗?当前的自定义 Prompt 将被覆盖。",
|
||
},
|
||
globalConfigNotice: "这些是全局默认配置,新建智能体时会继承这些设置。您也可以在智能体列表中单独配置每个智能体。",
|
||
loadConfigFailed: "加载Agent配置失败",
|
||
loadModelsFailed: "加载模型列表失败",
|
||
errors: {
|
||
selectThinkingModel: "启用Agent模式前,请先选择思考模型",
|
||
selectAtLeastOneTool: "至少需要选择一个允许的工具",
|
||
iterationsRange: "最大迭代次数必须在1-20之间",
|
||
temperatureRange: "温度参数必须在0-2之间",
|
||
validationFailed: "配置验证失败",
|
||
},
|
||
toasts: {
|
||
iterationsSaved: "最大迭代次数已保存",
|
||
thinkingModelSaved: "思考模型已保存",
|
||
rerankModelSaved: "Rerank 模型已保存",
|
||
temperatureSaved: "温度参数已保存",
|
||
toolsUpdated: "工具配置已更新",
|
||
customPromptEnabled: "已启用自定义 Prompt",
|
||
defaultPromptEnabled: "已切换为默认 Prompt",
|
||
resetToDefault: "已恢复为默认 Prompt",
|
||
systemPromptSaved: "系统 Prompt 已保存",
|
||
autoDisabled: "Agent 配置不完整,已自动关闭 Agent 模式",
|
||
},
|
||
},
|
||
conversationSettings: {
|
||
description: "配置对话模式的默认行为和参数,包括Agent模式和普通模式的Prompt设置",
|
||
agentMode: "Agent模式",
|
||
normalMode: "普通模式",
|
||
menus: {
|
||
modes: "模式设置",
|
||
models: "模型配置",
|
||
thresholds: "检索阈值",
|
||
advanced: "高级设置",
|
||
},
|
||
models: {
|
||
description: "统一管理 Agent 和普通模式使用的对话/总结模型与 ReRank 模型",
|
||
chatGroupLabel: "思考 / 对话模型",
|
||
chatGroupDesc: "包含 Agent 推理与规划模型,以及普通模式默认的对话/总结模型",
|
||
chatModel: {
|
||
label: "普通模式默认对话模型",
|
||
desc: "普通模式默认使用的对话/总结模型,当会话未指定模型时生效",
|
||
placeholder: "请选择默认对话模型",
|
||
},
|
||
rerankModel: {
|
||
label: "普通模式默认 ReRank 模型",
|
||
desc: "普通模式默认使用的重排序模型",
|
||
placeholder: "请选择默认 ReRank 模型",
|
||
},
|
||
rerankGroupLabel: "ReRank 模型",
|
||
rerankGroupDesc: "包含 Agent 使用的重排序模型,以及普通模式默认 ReRank 模型",
|
||
},
|
||
thresholds: {
|
||
description: "调整召回与重排序的阈值与 TopK,平衡准确率与性能",
|
||
},
|
||
maxRounds: {
|
||
label: "历史保留轮数",
|
||
desc: "用于多轮上下文和问题改写的历史轮数",
|
||
},
|
||
embeddingTopK: {
|
||
label: "Embedding TopK",
|
||
desc: "向量召回阶段保留的文档数量",
|
||
},
|
||
keywordThreshold: {
|
||
label: "关键词阈值",
|
||
desc: "关键词检索的最低得分阈值",
|
||
},
|
||
vectorThreshold: {
|
||
label: "向量阈值",
|
||
desc: "向量召回的最低相似度阈值",
|
||
},
|
||
rerankTopK: {
|
||
label: "ReRank TopK",
|
||
desc: "重排序后进入答案生成的文档数量",
|
||
},
|
||
rerankThreshold: {
|
||
label: "ReRank 阈值",
|
||
desc: "重排序阶段的最低得分阈值",
|
||
},
|
||
enableRewrite: {
|
||
label: "开启问题改写",
|
||
desc: "多轮对话自动改写问题以获得更优召回",
|
||
},
|
||
enableQueryExpansion: {
|
||
label: "启用查询扩展",
|
||
desc: "召回不足时调用大模型生成扩展查询(增加时延与成本)",
|
||
},
|
||
fallbackStrategy: {
|
||
label: "兜底策略",
|
||
desc: "检索无结果时采用的处理方式",
|
||
fixed: "固定回复",
|
||
model: "交给模型继续生成",
|
||
},
|
||
fallbackResponse: {
|
||
label: "固定兜底回复",
|
||
desc: "当兜底策略为固定回复时返回的文本",
|
||
},
|
||
fallbackPrompt: {
|
||
label: "兜底 Prompt",
|
||
desc: "当选择模型兜底时使用的提示模板",
|
||
},
|
||
advanced: {
|
||
description: "配置问题改写、兜底策略等高级设置",
|
||
},
|
||
rewritePrompt: {
|
||
system: "Rewrite System Prompt",
|
||
user: "Rewrite User Prompt",
|
||
desc: "控制问题改写的系统提示词",
|
||
userDesc: "控制问题改写的用户提示词",
|
||
},
|
||
chatModel: {
|
||
label: "LLM 模型",
|
||
desc: "用于总结和摘要的大语言模型",
|
||
},
|
||
rerankModel: {
|
||
label: "ReRank 模型",
|
||
desc: "用于搜索结果重排序的模型(可选)",
|
||
},
|
||
contextTemplate: {
|
||
label: "总结Prompt",
|
||
desc: "用于普通模式下基于检索结果生成回答的Prompt模板",
|
||
descWithDefault: "用于普通模式下基于检索结果生成回答的Prompt模板(留空则使用系统默认)",
|
||
placeholder: "请输入检索结果总结的Prompt模板...",
|
||
custom: "自定义模板",
|
||
disabledHint: "当前使用系统默认总结 Prompt,开启自定义后才会应用下方内容。",
|
||
},
|
||
systemPrompt: {
|
||
label: "系统Prompt",
|
||
desc: "用于普通模式对话的系统级Prompt",
|
||
descWithDefault: "用于普通模式对话的系统级Prompt(留空则使用系统默认)",
|
||
placeholder: "请输入系统Prompt...",
|
||
custom: "自定义 Prompt",
|
||
disabledHint: "当前使用系统默认 Prompt,开启自定义后才会应用下方内容。",
|
||
},
|
||
temperature: {
|
||
label: "温度参数",
|
||
desc: "控制模型输出的随机性,0最确定,1最随机",
|
||
},
|
||
maxTokens: {
|
||
label: "最大Token数",
|
||
desc: "生成回答的最大Token数量",
|
||
},
|
||
resetSystemPrompt: {
|
||
header: "恢复默认系统 Prompt",
|
||
body: "确定要恢复为系统默认的系统 Prompt 吗?",
|
||
},
|
||
resetContextTemplate: {
|
||
header: "恢复默认总结 Prompt",
|
||
body: "确定要恢复为系统默认的总结 Prompt 吗?",
|
||
},
|
||
toasts: {
|
||
chatModelSaved: "LLM 模型已保存",
|
||
rerankModelSaved: "ReRank 模型已保存",
|
||
contextTemplateSaved: "总结Prompt已保存",
|
||
systemPromptSaved: "系统Prompt已保存",
|
||
temperatureSaved: "温度参数已保存",
|
||
maxTokensSaved: "最大Token数已保存",
|
||
maxRoundsSaved: "历史轮数已保存",
|
||
embeddingSaved: "Embedding TopK 已保存",
|
||
keywordThresholdSaved: "关键词阈值已保存",
|
||
vectorThresholdSaved: "向量阈值已保存",
|
||
rerankTopKSaved: "ReRank TopK 已保存",
|
||
rerankThresholdSaved: "ReRank 阈值已保存",
|
||
enableRewriteSaved: "问题改写开关已保存",
|
||
enableQueryExpansionSaved: "查询扩展策略已保存",
|
||
fallbackStrategySaved: "兜底策略已保存",
|
||
fallbackResponseSaved: "兜底回复已保存",
|
||
fallbackPromptSaved: "兜底 Prompt 已保存",
|
||
rewritePromptSystemSaved: "改写 System Prompt 已保存",
|
||
rewritePromptUserSaved: "改写 User Prompt 已保存",
|
||
customPromptEnabled: "已启用自定义 Prompt",
|
||
defaultPromptEnabled: "已使用系统默认 Prompt",
|
||
customContextTemplateEnabled: "已启用自定义总结 Prompt",
|
||
defaultContextTemplateEnabled: "已使用系统默认总结 Prompt",
|
||
resetSystemPromptSuccess: "已恢复为系统默认 Prompt",
|
||
resetContextTemplateSuccess: "已恢复为系统默认总结 Prompt",
|
||
},
|
||
},
|
||
// 新增:MCP 设置
|
||
mcpSettings: {
|
||
title: "MCP 服务管理",
|
||
description:
|
||
"管理外部 MCP (Model Context Protocol) 服务,在 Agent 模式下调用外部工具和资源",
|
||
configuredServices: "已配置的服务",
|
||
manageAndTest: "管理和测试 MCP 服务连接",
|
||
addService: "添加服务",
|
||
empty: "暂无 MCP 服务",
|
||
addFirst: "添加第一个 MCP 服务",
|
||
actions: {
|
||
test: "测试连接",
|
||
},
|
||
toasts: {
|
||
loadFailed: "加载 MCP 服务列表失败",
|
||
enabled: "已启用 MCP 服务",
|
||
disabled: "已禁用 MCP 服务",
|
||
updateStateFailed: "更新 MCP 服务状态失败",
|
||
testing: "正在测试 {name}...",
|
||
noResponse: "测试失败:未收到服务器响应",
|
||
testFailed: "测试 MCP 服务失败",
|
||
deleted: "MCP 服务已删除",
|
||
deleteFailed: "删除 MCP 服务失败",
|
||
},
|
||
deleteConfirmBody: '确定要删除 MCP 服务"{name}"吗?此操作无法撤销。',
|
||
unnamed: "未命名",
|
||
builtin: "内置",
|
||
},
|
||
|
||
// 新增:模型设置
|
||
modelSettings: {
|
||
title: "模型配置",
|
||
description: "管理不同类型的 AI 模型,支持 Ollama 本地模型和远程 API",
|
||
typeShort: {
|
||
chat: "对话",
|
||
embedding: "Embedding",
|
||
rerank: "ReRank",
|
||
vllm: "视觉",
|
||
asr: "语音",
|
||
},
|
||
actions: {
|
||
addModel: "添加模型",
|
||
setDefault: "设为默认",
|
||
},
|
||
source: {
|
||
remote: "Remote",
|
||
openaiCompatible: "OpenAI兼容",
|
||
},
|
||
rawModelName: "模型名称",
|
||
chat: {
|
||
title: "对话模型",
|
||
desc: "配置用于对话的大语言模型",
|
||
empty: "暂无对话模型",
|
||
},
|
||
embedding: {
|
||
title: "Embedding 模型",
|
||
desc: "配置用于文本向量化的嵌入模型",
|
||
empty: "暂无 Embedding 模型",
|
||
},
|
||
rerank: {
|
||
title: "ReRank 模型",
|
||
desc: "配置用于结果重排序的模型",
|
||
empty: "暂无 ReRank 模型",
|
||
},
|
||
vllm: {
|
||
title: "VLLM 视觉模型",
|
||
desc: "配置用于视觉理解和多模态的视觉语言模型",
|
||
empty: "暂无 VLLM 视觉模型",
|
||
},
|
||
asr: {
|
||
title: "ASR 语音模型",
|
||
desc: "配置用于语音识别和音频转录的语音转文本模型(如 OpenAI Whisper)",
|
||
empty: "暂无 ASR 语音模型",
|
||
},
|
||
toasts: {
|
||
nameRequired: "模型名称不能为空",
|
||
nameTooLong: "模型名称不能超过100个字符",
|
||
displayNameTooLong: "显示名称不能超过100个字符",
|
||
baseUrlRequired: "Remote API 类型必须填写 Base URL",
|
||
baseUrlInvalid: "Base URL 格式不正确,请输入有效的 URL",
|
||
dimensionInvalid: "Embedding 模型必须填写有效的向量维度(128-4096)",
|
||
updated: "模型已更新",
|
||
added: "模型已添加",
|
||
saveFailed: "保存模型失败",
|
||
deleted: "模型已删除",
|
||
deleteFailed: "删除模型失败",
|
||
setDefault: "已设为默认模型",
|
||
setDefaultFailed: "设置默认模型失败",
|
||
builtinCannotEdit: "内置模型不能编辑",
|
||
builtinCannotDelete: "内置模型不能删除",
|
||
builtinCannotCopy: "内置模型不能复制",
|
||
copied: "模型已复制",
|
||
copyFailed: "复制模型失败",
|
||
},
|
||
copySuffix: " 副本",
|
||
builtinModels: {
|
||
title: "内置模型",
|
||
description: "内置模型对所有租户可见,敏感信息会被隐藏,且不可编辑或删除。",
|
||
viewGuide: "查看内置模型管理指南",
|
||
},
|
||
builtinTag: "内置",
|
||
confirmDelete: "确定删除此模型吗?",
|
||
},
|
||
// 新增:Ollama 设置
|
||
ollamaSettings: {
|
||
title: "Ollama 配置",
|
||
description: "管理本地 Ollama 服务,查看和下载模型",
|
||
status: {
|
||
label: "Ollama 服务状态",
|
||
desc: '自动检测本地 Ollama 服务是否可用。如果服务未运行或地址配置错误,将显示"不可用"状态',
|
||
testing: "检测中",
|
||
available: "可用",
|
||
unavailable: "不可用",
|
||
untested: "未检测",
|
||
retest: "重新检测",
|
||
},
|
||
address: {
|
||
label: "服务地址",
|
||
desc: "本地 Ollama 服务的 API 地址,由系统自动检测。如需修改,请在 .env 配置文件中设置",
|
||
placeholder: "http://localhost:11434",
|
||
failed: "连接失败,请检查 Ollama 是否运行或服务地址是否正确",
|
||
},
|
||
download: {
|
||
title: "下载新模型",
|
||
descPrefix: "输入模型名称下载,",
|
||
browse: "浏览 Ollama 模型库",
|
||
placeholder: "如:qwen2.5:0.5b",
|
||
download: "下载",
|
||
downloading: "正在下载: {name}",
|
||
},
|
||
installed: {
|
||
title: "已下载的模型",
|
||
desc: "已安装在 Ollama 中的模型列表",
|
||
empty: "暂无已下载的模型",
|
||
},
|
||
unknown: "未知",
|
||
today: "今天",
|
||
yesterday: "昨天",
|
||
daysAgo: "{days} 天前",
|
||
toasts: {
|
||
connected: "连接成功",
|
||
connectFailed: "连接失败,请检查 Ollama 是否运行",
|
||
listFailed: "获取模型列表失败",
|
||
downloadFailed: "下载失败,请稍后重试",
|
||
downloadStarted: "已开始下载模型 {name}",
|
||
downloadCompleted: "模型 {name} 下载完成",
|
||
progressFailed: "查询下载进度失败",
|
||
},
|
||
},
|
||
// 新增:MCP 服务对话框
|
||
mcpServiceDialog: {
|
||
addTitle: "添加 MCP 服务",
|
||
editTitle: "编辑 MCP 服务",
|
||
name: "服务名称",
|
||
namePlaceholder: "请输入服务名称",
|
||
description: "描述",
|
||
descriptionPlaceholder: "请输入服务描述",
|
||
transportType: "传输类型",
|
||
transport: {
|
||
sse: "SSE (Server-Sent Events)",
|
||
httpStreamable: "HTTP Streamable",
|
||
stdio: "Stdio",
|
||
},
|
||
serviceUrl: "服务 URL",
|
||
serviceUrlPlaceholder: "https://example.com/mcp",
|
||
command: "命令",
|
||
args: "参数",
|
||
argPlaceholder: "参数 {index}",
|
||
addArg: "添加参数",
|
||
envVars: "环境变量",
|
||
envKeyPlaceholder: "变量名",
|
||
envValuePlaceholder: "变量值",
|
||
addEnvVar: "添加环境变量",
|
||
enableService: "启用服务",
|
||
authConfig: "认证配置",
|
||
apiKey: "API Key",
|
||
bearerToken: "Bearer Token",
|
||
optional: "可选",
|
||
advancedConfig: "高级配置",
|
||
timeoutSec: "超时时间(秒)",
|
||
retryCount: "重试次数",
|
||
retryDelaySec: "重试延迟(秒)",
|
||
rules: {
|
||
nameRequired: "请输入服务名称",
|
||
transportRequired: "请选择传输类型",
|
||
urlRequired: "请输入服务 URL",
|
||
urlInvalid: "请输入有效的 URL",
|
||
commandRequired: "请选择命令 (uvx 或 npx)",
|
||
argsRequired: "请至少输入一个参数",
|
||
},
|
||
toasts: {
|
||
created: "MCP 服务已创建",
|
||
updated: "MCP 服务已更新",
|
||
createFailed: "创建 MCP 服务失败",
|
||
updateFailed: "更新 MCP 服务失败",
|
||
},
|
||
},
|
||
promptTemplate: {
|
||
noTemplates: "暂无模板",
|
||
selectTemplate: "选择模板",
|
||
useTemplate: "使用模板",
|
||
resetDefault: "恢复默认",
|
||
default: "默认",
|
||
withKnowledgeBase: "知识库",
|
||
withWebSearch: "网络搜索",
|
||
},
|
||
organization: {
|
||
title: "共享空间",
|
||
subtitle: "创建或加入共享空间,让多个空间互相协作,共享知识库与智能体",
|
||
createOrg: "创建空间",
|
||
createOrgShort: "新建",
|
||
joinOrg: "加入空间",
|
||
joinOrgShort: "加入",
|
||
name: "空间名称",
|
||
namePlaceholder: "请输入空间名称",
|
||
nameRequired: "请输入空间名称",
|
||
avatar: "空间头像",
|
||
avatarClear: "清除",
|
||
avatarPickerHint: "选择 Emoji 作为空间头像",
|
||
description: "空间描述",
|
||
descriptionPlaceholder: "请输入空间描述(选填)",
|
||
noDescription: "暂无描述",
|
||
members: "成员",
|
||
memberCount: "成员数量",
|
||
owner: "创建者",
|
||
inviteCode: "邀请码",
|
||
inviteCodePlaceholder: "请输入邀请码",
|
||
inviteCodeRequired: "请输入邀请码",
|
||
inviteCodeTip: "分享此邀请码给他人,他们可以通过邀请码加入空间",
|
||
refreshInviteCode: "刷新邀请码",
|
||
inviteCodeRefreshed: "邀请码已刷新",
|
||
inviteCodeRefreshFailed: "刷新邀请码失败",
|
||
rbac: {
|
||
needTenantAdmin: "需要空间管理员权限",
|
||
needTenantAdminTip: "此操作需要当前空间的 admin 或更高角色,请联系空间 Owner 调整权限。",
|
||
cannotCreate: "当前空间角色不足,无法创建共享空间",
|
||
cannotJoin: "当前空间角色不足,无法加入或申请加入共享空间",
|
||
cannotManage: "当前空间角色不足,无法管理共享空间",
|
||
},
|
||
join: {
|
||
title: "加入空间",
|
||
joining: "正在加入空间...",
|
||
success: "成功加入空间!",
|
||
failed: "加入空间失败",
|
||
noCode: "未找到邀请码",
|
||
goToOrganizations: "前往空间列表",
|
||
confirmTitle: "确认加入空间",
|
||
confirm: "确认加入",
|
||
preview: "预览并加入",
|
||
memberCount: "{count} 个成员",
|
||
shareCount: "{count} 个共享知识库",
|
||
agentShareCount: "{count} 个智能体",
|
||
alreadyMember: "您已经是该空间的成员",
|
||
invalidCode: "无效的邀请码",
|
||
byInviteCode: "输入邀请码",
|
||
searchSpaces: "搜索空间",
|
||
searchSpacesDesc: "浏览或搜索已开放可被搜索的空间,无需邀请码即可加入",
|
||
searchSpacesPlaceholder: "按空间名称、描述或空间ID搜索",
|
||
spaceId: "空间ID",
|
||
noSearchResult: "未找到匹配的空间",
|
||
noSearchableSpaces: "暂无开放可被搜索的空间,或输入关键词搜索",
|
||
membersWithLimit: "{current}/{limit} 成员",
|
||
memberLimitReached: "成员已满",
|
||
backToSearch: "返回搜索",
|
||
},
|
||
invite: {
|
||
loading: "加载中...",
|
||
previewTitle: "加入空间",
|
||
previewInfo: "空间概览",
|
||
inputDesc: "输入邀请码或粘贴邀请链接中的邀请码,查看空间信息后加入",
|
||
previewAction: "查看",
|
||
primaryJoin: "加入",
|
||
invalidTitle: "无效邀请",
|
||
invalidCode: "邀请码无效或已过期",
|
||
previewFailed: "预览失败,请稍后重试",
|
||
members: "成员",
|
||
knowledgeBases: "知识库",
|
||
agents: "智能体",
|
||
alreadyMember: "您已经是该空间的成员",
|
||
confirmJoin: "确认加入",
|
||
submitRequest: "申请加入",
|
||
requireApprovalTip: "该空间需要管理员审核后才能加入",
|
||
approvalLabel: "加入方式",
|
||
needApproval: "需要审核",
|
||
noApproval: "无需审核",
|
||
defaultRoleAfterJoin: "加入后默认权限:{role}",
|
||
requestRole: "申请角色",
|
||
selectRole: "选择角色",
|
||
messagePlaceholder: "选填:申请说明(如自我介绍或加入原因)",
|
||
applicationNote: "申请说明(选填)",
|
||
joinSuccess: "成功加入空间!",
|
||
joinFailed: "加入失败,请稍后重试",
|
||
requestSubmitted: "申请已提交,请等待管理员审核",
|
||
requestFailed: "申请提交失败,请稍后重试",
|
||
viewOrganization: "查看空间",
|
||
},
|
||
leave: "退出空间",
|
||
leaveConfirm: "确定要退出该空间吗?",
|
||
leaveConfirmTitle: "退出空间",
|
||
leaveConfirmMessage: "确定要退出空间「{name}」吗?退出后将无法访问该空间共享的知识库。",
|
||
leaveSuccess: "已退出空间",
|
||
leaveFailed: "退出空间失败",
|
||
deleteConfirm: "确定要删除该空间吗?此操作不可撤销。",
|
||
deleteConfirmTitle: "删除空间",
|
||
deleteConfirmMessage: "确定要删除空间「{name}」吗?删除后所有成员将被移除,此操作不可撤销。",
|
||
deleteSuccess: "空间已删除",
|
||
deleteFailed: "删除空间失败",
|
||
createSuccess: "空间创建成功",
|
||
createFailed: "创建空间失败",
|
||
joinSuccess: "成功加入空间",
|
||
joinFailed: "加入空间失败",
|
||
manageMembers: "成员管理",
|
||
noMembers: "暂无成员",
|
||
roleUpdated: "角色已更新",
|
||
roleUpdateFailed: "更新角色失败",
|
||
memberRemoved: "成员已移除",
|
||
memberRemoveFailed: "移除成员失败",
|
||
empty: "您还没有加入任何共享空间",
|
||
emptyDesc: "创建一个空间或通过邀请码加入现有空间",
|
||
all: "全部",
|
||
createdByMe: "我创建的",
|
||
joinedByMe: "我加入的",
|
||
createdTag: "创建",
|
||
joinedTag: "加入",
|
||
joinedLabel: "已加入",
|
||
emptyCreated: "您还没有创建任何共享空间",
|
||
emptyCreatedDesc: "点击「创建空间」创建一个新空间",
|
||
emptyJoined: "您还没有加入任何共享空间",
|
||
emptyJoinedDesc: "通过邀请码加入现有空间",
|
||
role: {
|
||
admin: "管理员",
|
||
editor: "编辑",
|
||
viewer: "只读",
|
||
},
|
||
detail: {
|
||
myRole: "我的角色",
|
||
removeMemberTitle: "移除成员",
|
||
removeMemberConfirm: "确定要移除成员「{name}」吗?",
|
||
removeMember: "移除成员",
|
||
shareKBTip: "在知识库列表中选择知识库,点击共享按钮将其共享到此空间",
|
||
},
|
||
settings: {
|
||
editTitle: "空间设置",
|
||
detailTitle: "空间详情",
|
||
myRoleDesc: "您在此空间中的角色决定了您的权限范围",
|
||
membersDesc: "查看和管理共享空间成员、调整成员角色。成员的最小单位是空间——加入后该空间下的所有用户都将获得访问权限。",
|
||
sharedDesc: "查看共享到此空间的所有知识库",
|
||
noSharedKB: "暂无共享的知识库",
|
||
noSharedKBTip: "知识库拥有者可以在知识库设置中将其共享到此空间",
|
||
sharedAgents: "共享智能体",
|
||
noSharedAgents: "暂无共享的智能体",
|
||
sharedAgentsDesc: "已共享到本空间的智能体,成员可在对话中使用",
|
||
sharedAgentsKbHint: "智能体绑定的知识库仅在成员使用该智能体对话时可 {'@'} 使用(只读),不会出现在「知识库列表」中。若需成员在列表中看到或编辑知识库,请单独将知识库共享到本空间。",
|
||
sharedAgentsKbHintShort: "智能体绑定知识仅对话内只读;需在列表看到或编辑请单独共享知识库",
|
||
noSharedAgentsTip: "管理员可将智能体从智能体设置中共享到本空间",
|
||
sharePermissionLabel: "空间权限",
|
||
myPermissionLabel: "我的实际权限",
|
||
permissionCalcFormula: "空间权限为共享时给该空间设定的权限;我的实际权限 = min(空间权限, 我在本空间的角色)",
|
||
permissionCalcTip: "我的实际权限 = min(空间权限, 我在本空间的角色)。我在空间内是只读时,对此知识库最多只读;是编辑或管理员时,不超过空间权限。",
|
||
inviteMembers: "邀请成员",
|
||
inviteMembersDesc: "通过邀请码或链接邀请他人加入空间",
|
||
inviteLink: "邀请链接",
|
||
inviteLinkValidity: "邀请链接有效期",
|
||
inviteLinkValidityDesc: "新生成的邀请链接的有效期,仅影响之后刷新生成的链接",
|
||
validity1Day: "1 天",
|
||
validity7Days: "7 天",
|
||
validity30Days: "30 天",
|
||
validityNever: "永不过期",
|
||
remainingValidity: "剩余 {n} 天",
|
||
remainingValidityNever: "永不过期",
|
||
remainingValidityExpired: "已过期",
|
||
removeShareFromOrg: "从空间中移除",
|
||
removeShareConfirm: "确定将「{name}」从本空间中移除?移除后空间成员将无法再访问该知识库。",
|
||
removeAgentShareConfirm: "确定将「{name}」从本空间中移除?移除后空间成员将无法再访问该智能体。",
|
||
removeShareSuccess: "已从空间中移除",
|
||
removeShareFailed: "移除失败,请重试",
|
||
requireApproval: "需要审核",
|
||
requireApprovalDesc: "开启后,新成员加入需要管理员审核",
|
||
searchable: "开放可被搜索",
|
||
searchableDesc: "开启后,空间将出现在「加入空间」的搜索列表中,他人可搜索并申请加入,无需邀请码",
|
||
memberLimit: "成员数量上限",
|
||
memberLimitDesc: "超过上限后无法再添加新成员;设为 0 表示不限制",
|
||
memberLimitPlaceholder: "0 表示不限制",
|
||
memberLimitHint: "当前成员数:{count}",
|
||
joinRequests: "加入申请",
|
||
joinRequestsDesc: "审核待加入空间的申请",
|
||
noPendingRequests: "暂无待审核的申请",
|
||
pendingJoinRequestsBadge: "有待审批的加入申请",
|
||
pendingReview: "待审批",
|
||
assignRole: "分配角色",
|
||
approve: "通过",
|
||
reject: "拒绝",
|
||
approveSuccess: "已通过申请",
|
||
rejectSuccess: "已拒绝申请",
|
||
reviewFailed: "操作失败,请重试",
|
||
},
|
||
editor: {
|
||
navBasic: "基本信息",
|
||
navPermissions: "权限说明",
|
||
navJoin: "加入空间",
|
||
basicTitle: "基本信息",
|
||
basicDesc: "设置空间的名称和描述,便于成员识别",
|
||
nameTip: "建议使用团队或项目名称,便于成员识别",
|
||
descriptionTip: "描述空间的用途和目标,帮助成员了解空间",
|
||
permissionsTitle: "成员权限",
|
||
permissionsDesc: "了解空间中不同角色对知识库与智能体的权限范围",
|
||
permissionFeature: "权限功能",
|
||
fullAccess: "完整权限",
|
||
editAccess: "编辑权限",
|
||
viewAccess: "只读权限",
|
||
adminPerm1: "管理空间设置、成员及知识库与智能体共享",
|
||
adminPerm2: "共享和管理知识库与智能体",
|
||
adminPerm3: "编辑共享知识库内容",
|
||
adminPerm4: "查看和检索知识库",
|
||
useSharedAgentsPerm: "使用共享智能体",
|
||
shareKBPerm: "共享知识库到空间",
|
||
editorPerm1: "编辑共享知识库内容",
|
||
editorPerm2: "查看和检索知识库",
|
||
editorPerm3: "管理空间设置和成员",
|
||
viewerPerm1: "查看和检索知识库",
|
||
viewerPerm2: "编辑知识库内容",
|
||
viewerPerm3: "管理空间设置",
|
||
ownerNote: "作为空间创建者,您将自动成为空间的管理员,拥有完整权限。",
|
||
joinTitle: "加入空间",
|
||
joinDesc: "通过邀请码加入现有空间,获得知识库与智能体访问权限",
|
||
joinIllustration: "输入空间管理员提供的邀请码即可加入",
|
||
inviteCodeTip: "邀请码由空间管理员生成,请向他们索取",
|
||
howToGetCode: "如何获取邀请码?",
|
||
step1: "联系您要加入的空间管理员",
|
||
step2: "请求他们分享空间邀请码",
|
||
step3: "将邀请码粘贴到上方输入框",
|
||
},
|
||
upgrade: {
|
||
requestUpgrade: "申请权限升级",
|
||
pending: "已提交申请",
|
||
dialogTitle: "申请权限升级",
|
||
currentRole: "当前角色",
|
||
selectRole: "申请角色",
|
||
reason: "申请理由(选填)",
|
||
reasonPlaceholder: "请简要说明申请更高权限的原因...",
|
||
submitSuccess: "权限升级申请已提交,等待管理员审核",
|
||
submitFailed: "提交申请失败",
|
||
upgradeRequest: "权限升级",
|
||
},
|
||
addMember: {
|
||
button: "添加成员",
|
||
dialogTitle: "添加成员",
|
||
tip: "添加的用户将立即成为空间成员,可以访问空间内共享的知识库。",
|
||
tipTenant: "共享空间的成员单位是空间:选定一个空间后,其下全部用户都将获得访问权限。下方搜索结果按空间去重。",
|
||
searchUser: "选择用户",
|
||
searchTenant: "选择空间",
|
||
searchPlaceholder: "输入用户名或邮箱搜索...",
|
||
searchTenantPlaceholder: "输入空间名、用户名或邮箱搜索...",
|
||
searchHint: "输入至少 2 个字符开始搜索",
|
||
searchTenantHint: "输入至少 2 个字符开始搜索,按空间去重并自动过滤已加入的空间",
|
||
selectRole: "分配角色",
|
||
confirmBtn: "添加",
|
||
success: "成员添加成功",
|
||
failed: "添加失败",
|
||
roleHint: {
|
||
viewer: "可查看和搜索",
|
||
editor: "可编辑内容",
|
||
admin: "完整管理权限",
|
||
},
|
||
},
|
||
share: {
|
||
title: "共享到空间",
|
||
shareToSpace: "共享到空间",
|
||
shareModelToSpace: "共享「{name}」到空间",
|
||
shareAgentToSpace: "共享「{name}」到空间",
|
||
modelShareDesc: "将模型共享到空间,空间成员可使用该模型",
|
||
agentShareDesc: "将智能体共享到空间,空间成员可使用该智能体",
|
||
spaceAgentShareCountTip: "该空间的共享智能体数量",
|
||
selectOrg: "选择空间",
|
||
selectOrgPlaceholder: "请选择要共享的空间",
|
||
permission: "权限",
|
||
permissionTip: "可编辑权限允许成员修改知识库内容,只读权限仅允许检索和问答",
|
||
shareSuccess: "已共享",
|
||
shareFailed: "共享失败",
|
||
unshareSuccess: "已取消共享",
|
||
unshareFailed: "取消共享失败",
|
||
sharedTo: "已共享到",
|
||
noShares: "尚未共享到任何空间",
|
||
sharedKnowledgeBase: "共享知识库",
|
||
sharedFrom: "来自",
|
||
sharedBadge: "共享",
|
||
permissionReadonly: "只读",
|
||
permissionEditable: "可编辑",
|
||
sharedKBs: "个知识库",
|
||
sharedAgents: "个智能体",
|
||
},
|
||
},
|
||
preview: {
|
||
tab: "预览",
|
||
loading: "正在加载文档预览...",
|
||
loadFailed: "加载文档预览失败",
|
||
retry: "重试",
|
||
unsupported: "该文件类型暂不支持在线预览",
|
||
unsupportedHint: "请下载文件后使用本地应用查看",
|
||
fullscreen: "全屏预览",
|
||
exitFullscreen: "退出全屏",
|
||
audioLoading: "加载音频中…",
|
||
audioNotSupported: "您的浏览器不支持音频播放",
|
||
},
|
||
commandPalette: {
|
||
placeholder: "搜索知识库、文件、对话…",
|
||
searching: "搜索中…",
|
||
clearRecent: "清除",
|
||
retrieval: "检索参数",
|
||
untitledSession: "未命名对话",
|
||
scope: {
|
||
placeholder: "在本知识库中搜索…",
|
||
remove: "移除范围过滤(Backspace)",
|
||
},
|
||
group: {
|
||
chunks: "知识库文件",
|
||
messages: "对话消息",
|
||
kbs: "知识库",
|
||
agents: "智能体",
|
||
sessionsByTitle: "对话(按标题)",
|
||
commands: "命令",
|
||
recent: "最近搜索",
|
||
quickActions: "快捷操作",
|
||
},
|
||
match: {
|
||
vector: "向量",
|
||
keyword: "关键字",
|
||
},
|
||
quick: {
|
||
newChat: "新建对话",
|
||
knowledgeBases: "打开知识库",
|
||
agents: "打开智能体",
|
||
organizations: "打开共享空间",
|
||
settings: "打开设置",
|
||
},
|
||
empty: {
|
||
noResults: "没有找到匹配结果",
|
||
askAi: "直接向 AI 提问",
|
||
adjustRetrieval: "调整检索参数",
|
||
},
|
||
hotkey: {
|
||
select: "选择",
|
||
enter: "打开",
|
||
cmdNumber: "直接打开",
|
||
cmdEnter: "发起对话",
|
||
esc: "关闭",
|
||
},
|
||
},
|
||
knowledgeSearch: {
|
||
title: "搜索",
|
||
subtitle: "在知识库和历史对话中进行语义检索,快速查找相关内容",
|
||
tabKnowledge: "知识搜索",
|
||
tabMessages: "消息搜索",
|
||
placeholder: "输入搜索内容...",
|
||
messagePlaceholder: "搜索历史对话消息...",
|
||
searchBtn: "搜索",
|
||
selectKb: "选择知识库",
|
||
allKb: "全部知识库",
|
||
noResults: "未找到相关结果",
|
||
resultCount: "共找到 {count} 条结果",
|
||
score: "相关度",
|
||
matchType: "匹配类型",
|
||
matchTypeVector: "向量匹配",
|
||
matchTypeKeyword: "关键词匹配",
|
||
untitledSession: "未命名对话",
|
||
matchCount: "条匹配",
|
||
emptyHint: "输入关键词,在知识库中搜索相关内容片段",
|
||
messageEmptyHint: "输入关键词,搜索历史对话消息",
|
||
searching: "搜索中...",
|
||
source: "来源",
|
||
chunk: "个片段",
|
||
expand: "展开",
|
||
collapse: "收起",
|
||
fileCount: "个文件",
|
||
viewDetail: "查看详情",
|
||
startChat: "进入对话",
|
||
chatWithFile: "对话",
|
||
newChatTitle: "搜索: {query}",
|
||
},
|
||
// ---- i18n keys for hardcoded Chinese extraction ----
|
||
tools: {
|
||
multiKbSearch: "跨库搜索",
|
||
knowledgeSearch: "知识库搜索",
|
||
grepChunks: "搜索关键词",
|
||
getChunkDetail: "获取片段详情",
|
||
listKnowledgeChunks: "查看知识分块",
|
||
listKnowledgeBases: "列出知识库",
|
||
getDocumentInfo: "获取文档信息",
|
||
queryKnowledgeGraph: "查询知识图谱",
|
||
think: "深度思考",
|
||
todoWrite: "制定计划",
|
||
},
|
||
vectorStoreBadge: {
|
||
systemDefault: "系统默认",
|
||
sharedFromOrg: "来自其他组织的共享",
|
||
unknownStore: "未知存储",
|
||
unavailable: "不可用",
|
||
},
|
||
kbSettings: {
|
||
vectorStore: {
|
||
title: "向量存储",
|
||
description:
|
||
"选择此知识库要写入的向量存储。绑定不可更改 — 如需将现有 KB 迁移到其他存储,请创建新 KB 并重新索引。",
|
||
loading: "正在加载向量存储列表...",
|
||
engineLabel: "向量存储",
|
||
engineDesc:
|
||
"从全局向量存储配置中选择,或保持系统默认以使用租户的 RETRIEVE_DRIVER 引擎。",
|
||
boundLabel: "已绑定的向量存储",
|
||
systemDefault: "系统默认",
|
||
immutableHint:
|
||
"创建后不可更改。如需迁移,请创建一个绑定到目标存储的新 KB 并重新索引。",
|
||
immutableEdit: "向量存储绑定在创建后无法更改。",
|
||
unavailableHint:
|
||
"绑定的向量存储当前不可用,请在设置 → 向量存储中检查其连接配置。",
|
||
goGlobalSettings: "前往向量存储设置",
|
||
},
|
||
storage: {
|
||
title: "存储引擎",
|
||
description: "选择文件存储引擎,影响文档上传存储和文档中图片的存储方式。参数在全局设置中配置。",
|
||
loading: "加载中...",
|
||
engineLabel: "存储引擎",
|
||
engineDesc: "选择该知识库使用的存储引擎,需在全局设置中已配置对应引擎。",
|
||
selectPlaceholder: "请选择存储引擎",
|
||
notConfigured: "未配置",
|
||
unavailable: "不可用",
|
||
lockedHint: "知识库中已有文件,无法切换存储引擎。如需更换,请先清空知识库中的所有文件。",
|
||
changeWarning: "更改存储引擎仅影响新上传的文件。已有文件仍使用原存储引擎读取,但部分旧文件可能无法自动识别而导致访问失败。",
|
||
goGlobalSettings: "去全局设置中配置",
|
||
engineLocal: "Local(本地存储)",
|
||
engineLocalDesc: "仅适合单机部署,简单轻量",
|
||
engineMinioDesc: "S3 兼容,适合内网或私有云",
|
||
engineCos: "腾讯云 COS",
|
||
engineCosDesc: "公有云部署,支持 CDN 加速",
|
||
engineTos: "火山引擎 TOS",
|
||
engineTosDesc: "火山引擎对象存储,适合公有云部署",
|
||
engineS3: "AWS S3",
|
||
engineS3Desc: "AWS S3 及兼容存储,适合公有云部署",
|
||
engineOss: "阿里云 OSS",
|
||
engineOssDesc: "阿里云对象存储,适合公有云部署",
|
||
engineKs3: "金山云 KS3",
|
||
engineKs3Desc: "金山云对象存储,适合公有云部署",
|
||
engineObs: "华为云 OBS",
|
||
engineObsDesc: "华为云对象存储,适合公有云部署",
|
||
},
|
||
parser: {
|
||
title: "解析引擎",
|
||
description: "为不同文件类型选择文档解析引擎。未配置的文件类型将使用内置解析引擎。",
|
||
loading: "加载中...",
|
||
noEngineAvailable: "暂无可用解析引擎,或文档解析服务未配置。",
|
||
default: "默认",
|
||
unavailable: "不可用",
|
||
goSettings: "去设置 →",
|
||
goConfig: "前往配置 →",
|
||
noEngine: "无可用引擎",
|
||
fileTypePdf: "PDF 文档",
|
||
fileTypeWord: "Word 文档",
|
||
fileTypePpt: "演示文稿",
|
||
fileTypeExcel: "Excel 表格",
|
||
fileTypeCsv: "CSV 文件",
|
||
fileTypeText: "纯文本",
|
||
fileTypeJson: "JSON 文件",
|
||
fileTypeImage: "图片",
|
||
fileTypeAudiovisual: "音频",
|
||
engines: {
|
||
builtin: {
|
||
name: "内置",
|
||
desc: "DocReader 内置解析引擎(docx/pdf/xlsx 等复杂格式)",
|
||
},
|
||
simple: {
|
||
name: "Simple",
|
||
desc: "简单格式 & 图片解析(无需外部服务)",
|
||
},
|
||
mineru: {
|
||
name: "MinerU",
|
||
desc: "MinerU 自部署服务",
|
||
},
|
||
mineru_cloud: {
|
||
name: "MinerU Cloud",
|
||
desc: "MinerU Cloud API",
|
||
},
|
||
weknoracloud: {
|
||
name: "WeKnora Cloud",
|
||
desc: "使用 WeKnora Cloud 进行文档解析",
|
||
},
|
||
},
|
||
},
|
||
supportedFormats: "支持格式",
|
||
},
|
||
agentStream: {
|
||
toolApproval: {
|
||
banner: "该 MCP 工具已标记为「需人工审核」,确认参数后再执行",
|
||
service: "服务",
|
||
tool: "工具",
|
||
argsLabel: "调用参数",
|
||
argsModified: "已修改",
|
||
countdown: "剩余约 {seconds} 秒",
|
||
approve: "通过并执行",
|
||
reject: "拒绝",
|
||
approvedTag: "已通过",
|
||
rejectedTag: "已拒绝",
|
||
invalidJson: "参数不是合法 JSON",
|
||
submitted: "已提交",
|
||
submitFailed: "提交失败",
|
||
userRejected: "用户拒绝",
|
||
},
|
||
tools: {
|
||
searchKnowledge: "知识库检索",
|
||
grepChunks: "搜索关键词",
|
||
webSearch: "网络搜索",
|
||
webFetch: "网页抓取",
|
||
getDocumentInfo: "获取文档信息",
|
||
listKnowledgeChunks: "查看知识分块",
|
||
getRelatedDocuments: "查找相关文档",
|
||
getDocumentContent: "获取文档内容",
|
||
todoWrite: "计划管理",
|
||
knowledgeGraphExtract: "知识图谱抽取",
|
||
thinking: "思考",
|
||
imageAnalysis: "查看图片内容",
|
||
queryKnowledgeGraph: "知识图谱查询",
|
||
finalAnswer: "生成回答",
|
||
readSkill: "读取技能",
|
||
executeSkillScript: "执行技能脚本",
|
||
dataAnalysis: "数据分析",
|
||
dataSchema: "数据结构",
|
||
databaseQuery: "数据库查询",
|
||
},
|
||
summary: {
|
||
searchKb: "检索知识库 <strong>{count}</strong> 次",
|
||
thinking: "思考 <strong>{count}</strong> 次",
|
||
callTool: "调用 {name}",
|
||
callTools: "调用工具 {names}",
|
||
intermediateSteps: "<strong>{count}</strong> 个中间步骤",
|
||
separator: "、",
|
||
comma: ",",
|
||
},
|
||
citation: {
|
||
loading: "加载中...",
|
||
notFound: "未找到内容",
|
||
loadFailed: "加载失败",
|
||
chunkId: "片段ID",
|
||
noKbForWiki: "无法识别关联的知识库,无法打开 Wiki",
|
||
},
|
||
toolSummary: {
|
||
getDocument: "获取文档:{title}",
|
||
document: "文档",
|
||
listChunks: "查看 {title}",
|
||
deepThinking: "深度思考",
|
||
},
|
||
plan: {
|
||
inProgress: "进行中",
|
||
pending: "待处理",
|
||
completed: "已完成",
|
||
},
|
||
search: {
|
||
noResults: "未找到匹配的内容",
|
||
foundResultsFromFiles: "找到 {count} 个结果,来自 {files} 个文件",
|
||
foundResults: "找到 {count} 个结果",
|
||
webResults: "找到 {count} 个网络搜索结果",
|
||
foundMatches: "找到 {count} 处匹配",
|
||
showingCount: "(显示 {count} 个)",
|
||
},
|
||
toolStatus: {
|
||
calling: "正在调用 {name}...",
|
||
searchKb: "检索知识库",
|
||
searchKbFailed: "检索知识库失败",
|
||
webSearch: "网络搜索",
|
||
webSearchFailed: "网络搜索失败",
|
||
grepSearch: "搜索关键词",
|
||
grepSearchFailed: "搜索关键词失败",
|
||
getDocInfo: "获取文档信息",
|
||
getDocInfoFailed: "获取文档信息失败",
|
||
thinkingDone: "完成思考",
|
||
thinkingFailed: "思考失败",
|
||
updateTodos: "更新任务列表",
|
||
updateTodosFailed: "更新任务列表失败",
|
||
imageAnalyzing: "正在查看图片内容...",
|
||
imageAnalysisDone: "已查看图片内容",
|
||
imageAnalysisFailed: "图片内容查看失败",
|
||
called: "调用 {name}",
|
||
calledFailed: "调用 {name} 失败",
|
||
},
|
||
copy: {
|
||
emptyContent: "当前回答为空,无法复制",
|
||
success: "已复制到剪贴板",
|
||
failed: "复制失败,请手动复制",
|
||
},
|
||
saveToKb: {
|
||
emptyContent: "当前回答为空,无法保存到知识库",
|
||
editorOpened: "已打开编辑器,请选择知识库后保存",
|
||
},
|
||
},
|
||
agentEditor: {
|
||
builtinHint: "这是内置智能体,名称和描述不可修改,但可以调整配置参数",
|
||
placeholders: {
|
||
available: "可用变量:",
|
||
clickToInsert: "(点击插入)",
|
||
hint: "(点击插入,或输入 {'{{'} 唤起列表)",
|
||
},
|
||
intentPrompts: {
|
||
title: "意图提示词",
|
||
sectionDesc: "为不同查询意图配置专属系统提示词;未自定义时使用系统默认模板",
|
||
intentLabel: "意图",
|
||
intentDescription: "选择要编辑的意图专属系统提示词",
|
||
promptPlaceholder: "输入自定义系统提示词...",
|
||
customized: "已自定义",
|
||
empty: "暂无可用的意图模板",
|
||
},
|
||
selection: {
|
||
all: "全部",
|
||
selected: "指定",
|
||
disabled: "禁用",
|
||
},
|
||
desc: {
|
||
name: "为智能体设置一个易于识别的名称",
|
||
description: "简要描述智能体的用途和特点",
|
||
systemPrompt: "自定义系统提示词,定义智能体的行为和角色",
|
||
leaveEmptyDefault: "(留空则使用系统默认)",
|
||
contextTemplate: "定义如何将检索到的内容格式化后传递给模型",
|
||
model: "选择智能体使用的大语言模型",
|
||
temperature: "控制输出的随机性,0 最确定,1 最随机",
|
||
maxTokens: "模型生成回复的最大Token数量",
|
||
thinking: "启用模型的扩展思考能力(需要模型支持)",
|
||
conversationSection: "配置多轮对话和问题改写相关参数",
|
||
multiTurn: "开启后将保留历史对话上下文",
|
||
historyRounds: "保留最近几轮对话作为上下文",
|
||
rewrite: "多轮对话时自动改写用户问题,消解指代和补全省略",
|
||
queryUnderstandModel: "用于问题理解(改写与意图识别)的模型,留空则复用主对话模型",
|
||
rewriteSystemPrompt: "用于问题改写的系统提示词(留空使用默认)",
|
||
rewriteUserPrompt: "用于问题改写的用户提示词模板(留空使用默认)",
|
||
selectTools: "选择 Agent 可以使用的工具",
|
||
maxIterations: "Agent 执行任务时的最大推理步骤数",
|
||
kbScope: "选择智能体可访问的知识库范围",
|
||
webSearch: "启用后智能体可以搜索互联网获取信息",
|
||
webSearchProvider: "为此智能体指定搜索引擎,留空则使用默认搜索引擎",
|
||
webSearchMaxResults: "每次搜索返回的最大结果数量",
|
||
webFetchEnabled: "Rerank 后自动抓取排名靠前的网页完整内容,提升回答质量",
|
||
webFetchTopN: "Rerank 后最多抓取几个网页的完整内容",
|
||
retrievalSection: "配置知识库检索和排序的参数",
|
||
queryExpansion: "自动扩展查询词以提高召回率",
|
||
embeddingTopK: "向量检索返回的最大结果数量",
|
||
keywordThreshold: "关键词检索的最低相关性分数",
|
||
vectorThreshold: "向量检索的最低相似度分数",
|
||
rerankTopK: "重排序后保留的最大结果数量",
|
||
rerankThreshold: "重排序的最低相关性分数",
|
||
fallbackStrategy: "当无法从知识库找到相关内容时的处理方式",
|
||
fallbackResponse: "当无法回答时返回的固定文本",
|
||
fallbackPrompt: "当无法从知识库找到答案时,引导模型生成回复的提示词",
|
||
},
|
||
im: {
|
||
title: "IM 集成",
|
||
description: "将智能体接入即时通讯平台,支持企业微信、飞书、Slack、Telegram、钉钉、Mattermost和微信",
|
||
wecom: "企业微信",
|
||
feishu: "飞书",
|
||
slack: "Slack",
|
||
telegram: "Telegram",
|
||
dingtalk: "钉钉",
|
||
mattermost: "Mattermost",
|
||
wechat: "微信",
|
||
addChannel: "添加渠道",
|
||
editChannel: "编辑渠道",
|
||
deleteConfirm: "确定删除该渠道?删除后无法恢复。",
|
||
channelName: "渠道名称",
|
||
channelNamePlaceholder: "输入渠道名称,方便辨识",
|
||
platform: "平台",
|
||
mode: "接入模式",
|
||
outputMode: "输出模式",
|
||
outputStream: "流式输出",
|
||
outputFull: "完整输出",
|
||
callbackUrl: "回调地址",
|
||
empty: "暂无 IM 渠道,点击下方按钮添加",
|
||
unnamed: "未命名渠道",
|
||
docLink: "查看接入文档",
|
||
feishuConsole: "飞书开放平台",
|
||
slackConsole: "Slack API 控制台",
|
||
telegramConsole: "Telegram BotFather",
|
||
dingtalkConsole: "钉钉开放平台",
|
||
dingtalkCardTemplateId: "卡片模板 ID(可选)",
|
||
dingtalkCardTemplateIdHint: "在 open-dev.dingtalk.com/fe/card 创建 AI 卡片模板,启用后支持打字机效果的流式输出",
|
||
mattermostConsole: "Mattermost 集成说明",
|
||
mattermostModeHint: "Mattermost 仅支持 Webhook(出站 Webhook + Bot Token)。",
|
||
mattermostPostToMain: "回复显示在频道主时间线",
|
||
mattermostPostToMainHint:
|
||
"开启后 Bot 回复作为频道内新帖子;关闭(默认)则作为原消息的线程回复,主窗口仅显示「N 条回复」。",
|
||
modeHint: "推荐使用 WebSocket 方式接入,配置更简单",
|
||
consoleTip: "前往获取凭证信息",
|
||
wecomWSEndpointHint: "可选,私有化部署时填写自定义 WebSocket 地址,留空则使用默认公有云地址。内网地址需将域名加入 SSRF_WHITELIST 环境变量",
|
||
wecomAPIBaseURLHint: "可选,私有化部署时填写自定义 API 地址,留空则使用默认公有云地址。内网地址需将域名加入 SSRF_WHITELIST 环境变量",
|
||
fileKnowledgeBase: "文件保存知识库",
|
||
fileKnowledgeBasePlaceholder: "选择知识库(可选)",
|
||
fileKnowledgeBaseHint: "配置后,用户发送的文件将自动保存到该知识库中",
|
||
sessionMode: "会话模式",
|
||
sessionModeUser: "按用户(默认)",
|
||
sessionModeThread: "按话题",
|
||
sessionModeHint: "用户模式:每个用户独立对话,使用 /clear 开始新对话。话题模式:每个消息话题独立对话,同一话题中多人可协作。",
|
||
wechatScanBind: "扫码绑定微信",
|
||
wechatScanning: "请使用微信扫描二维码",
|
||
wechatBindSuccess: "微信绑定成功",
|
||
wechatRebind: "重新绑定",
|
||
wechatHint: "需要 iOS 微信 8.0.70+ 版本,仅支持单聊消息",
|
||
wechatQRExpired: "二维码已过期,请重新获取",
|
||
wechatBinding: "绑定中...",
|
||
},
|
||
tools: {
|
||
thinking: "思考",
|
||
thinkingDesc: "动态和反思性的问题解决思考工具",
|
||
todoWrite: "制定计划",
|
||
todoWriteDesc: "创建结构化的研究计划",
|
||
grepChunks: "关键词搜索",
|
||
grepChunksDesc: "快速定位包含特定关键词的文档和分块",
|
||
knowledgeSearch: "语义搜索",
|
||
knowledgeSearchDesc: "理解问题并查找语义相关内容",
|
||
listChunks: "查看文档分块",
|
||
listChunksDesc: "获取文档完整分块内容",
|
||
queryGraph: "查询知识图谱",
|
||
queryGraphDesc: "从知识图谱中查询关系",
|
||
getDocInfo: "获取文档信息",
|
||
getDocInfoDesc: "查看文档元数据",
|
||
dbQuery: "查询数据库",
|
||
dbQueryDesc: "查询数据库中的信息",
|
||
dataAnalysis: "数据分析",
|
||
dataAnalysisDesc: "理解数据文件并进行数据分析",
|
||
dataSchema: "查看数据元信息",
|
||
dataSchemaDesc: "获取表格文件的元信息",
|
||
requiresKb: "(需要配置知识库)",
|
||
requiresRagKb: "(需要关联启用向量/关键词索引的知识库)",
|
||
requiresWikiKb: "(需要关联启用 Wiki 能力的知识库)",
|
||
// Wiki 读取类
|
||
wikiSearch: "搜索 Wiki",
|
||
wikiSearchDesc: "在 Wiki 知识库中按关键词/语义搜索页面",
|
||
wikiReadPage: "阅读 Wiki 页面",
|
||
wikiReadPageDesc: "读取指定 Wiki 页面的完整内容",
|
||
wikiReadSourceDoc: "精读源文档",
|
||
wikiReadSourceDocDesc: "通过知识点深入阅读 Wiki 页面背后的原始文档",
|
||
wikiFlagIssue: "标记 Wiki 问题",
|
||
wikiFlagIssueDesc: "标记页面中存在的事实错误或合并冲突问题",
|
||
// Wiki 编辑类(具有破坏性)
|
||
wikiWritePage: "创建/覆盖 Wiki",
|
||
wikiWritePageDesc: "创建新页面或完全覆盖已有 Wiki 页面",
|
||
wikiReplaceText: "局部替换 Wiki",
|
||
wikiReplaceTextDesc: "替换 Wiki 页面中的特定文本",
|
||
wikiRenamePage: "重命名 Wiki",
|
||
wikiRenamePageDesc: "重命名 Wiki 页面并自动更新关联链接",
|
||
wikiDeletePage: "删除 Wiki",
|
||
wikiDeletePageDesc: "删除 Wiki 页面并自动清理关联死链",
|
||
// Wiki 巡检类
|
||
wikiReadIssue: "查看 Wiki 问题",
|
||
wikiReadIssueDesc: "查看特定 Wiki 页面的巡检问题详情",
|
||
wikiUpdateIssue: "更新 Wiki 问题",
|
||
wikiUpdateIssueDesc: "更新 Wiki 页面问题的处理状态",
|
||
// 运行时系统注入(只读,用于预览)
|
||
webSearch: "网络搜索",
|
||
webFetch: "网页抓取",
|
||
finalAnswer: "提交最终回答",
|
||
// 分组
|
||
groupBase: "基础",
|
||
groupRag: "知识库检索(RAG)",
|
||
groupWikiRead: "Wiki 读取",
|
||
groupWikiEdit: "Wiki 编辑",
|
||
groupWikiIssue: "Wiki 巡检",
|
||
groupData: "数据分析",
|
||
writeWarning: "会修改 Wiki 内容",
|
||
dangerTag: "可写",
|
||
// 顶部状态栏
|
||
statusNoKb: "当前未关联任何知识库",
|
||
statusKb: "作用域内:{rag} 个 RAG 知识库 · {wiki} 个 Wiki 知识库",
|
||
kbMetricRag: "RAG 知识库",
|
||
kbMetricWiki: "Wiki 知识库",
|
||
statusInactive: "有 {count} 个已勾选工具在当前配置下无法生效",
|
||
// 有效工具预览
|
||
effectiveLabel: "最终启用的工具",
|
||
effectiveDesc: "根据当前配置计算,这是智能体保存后实际能调用的工具集合",
|
||
effectiveEmpty: "当前没有可用工具,智能体将退化为纯模型问答",
|
||
},
|
||
agentType: {
|
||
label: "智能体类型",
|
||
desc: "选择一个预设会自动填充系统提示词、工具列表和推荐的知识库范围。",
|
||
defaultNamePattern: "我的{label}",
|
||
kbMismatch: {
|
||
ragQa: "未启用 RAG 检索",
|
||
wikiQa: "未启用 Wiki",
|
||
hybridRagWiki: "未启用任何检索能力",
|
||
dataAnalysis: "需启用 RAG(不支持 FAQ)",
|
||
quickAnswer: "快速问答模式需启用 RAG 检索",
|
||
generic: "不适用于当前类型",
|
||
},
|
||
kbIncompatibleWarn: "已选的 {count} 个知识库不适用于当前类型,请手动调整",
|
||
},
|
||
mcp: {
|
||
label: "MCP 服务",
|
||
desc: "选择 Agent 可以调用的 MCP 服务",
|
||
selectLabel: "选择 MCP 服务",
|
||
selectDesc: "选择要启用的 MCP 服务",
|
||
selectPlaceholder: "选择 MCP 服务",
|
||
},
|
||
llmCallTimeout: {
|
||
label: "LLM 调用超时",
|
||
desc: "单次 LLM 调用的最大等待时间(秒),超过此时间后调用将被中止",
|
||
hint: "留空或填 0 表示使用默认值(120 秒)",
|
||
placeholder: "输入秒数,建议范围 60-1800",
|
||
},
|
||
imageUpload: {
|
||
navLabel: "多模态",
|
||
sectionTitle: "多模态配置",
|
||
sectionDesc: "配置图片上传和视觉语言模型,启用后用户可在对话中上传图片",
|
||
label: "图片上传",
|
||
desc: "启用后用户可在对话中上传图片进行多模态问答",
|
||
vlmModel: "VLM 模型",
|
||
vlmModelDesc: "用于图片分析的视觉语言模型",
|
||
vlmModelPlaceholder: "请选择 VLM 模型",
|
||
vlmModelRequired: "启用图片上传时必须选择 VLM 模型",
|
||
storageProvider: "图片存储",
|
||
storageProviderDesc: "选择图片文件的存储引擎,留空则使用系统默认",
|
||
storageProviderPlaceholder: "选择存储引擎",
|
||
storageDefault: "系统默认",
|
||
notConfigured: "未配置",
|
||
goStorageSettings: "去存储设置中配置",
|
||
},
|
||
audioUpload: {
|
||
label: "语音上传",
|
||
desc: "启用后用户可在对话中上传音频文件,系统将使用 ASR 模型自动转录为文字",
|
||
asrModel: "ASR 模型",
|
||
asrModelDesc: "用于音频转录的语音识别模型,未配置时音频文件将以占位符形式传递",
|
||
asrModelPlaceholder: "请选择 ASR 模型",
|
||
},
|
||
faq: {
|
||
title: "FAQ 优先策略",
|
||
tooltip: "当知识库中包含 FAQ(问答对)时,可以启用此策略让 FAQ 答案优先于普通文档",
|
||
enableLabel: "启用 FAQ 优先",
|
||
enableDesc: "FAQ 答案将优先于普通文档被引用,提高回答准确性",
|
||
thresholdLabel: "直接回答阈值",
|
||
thresholdDesc: "当问题与 FAQ 相似度超过此值时,直接使用 FAQ 答案",
|
||
boostLabel: "FAQ 分数加权",
|
||
boostDesc: "FAQ 结果的相关性分数乘以此系数,使其排序更靠前",
|
||
},
|
||
dataAnalysis: {
|
||
enableLabel: "启用表格数据分析",
|
||
enableDesc: "命中 CSV/Excel 类文件时,先调用大模型生成 DuckDB SQL 进行统计或筛选,再据此回答。会额外增加一次模型调用与几秒延迟,仅在确实需要时开启。",
|
||
},
|
||
fallback: {
|
||
fixed: "固定回复",
|
||
model: "模型生成",
|
||
},
|
||
fileTypes: {
|
||
label: "支持的文件类型",
|
||
desc: "限制可选择的文件类型,留空表示支持所有类型",
|
||
allTypes: "全部类型",
|
||
pdf: "PDF 文档",
|
||
word: "Word 文档 (.docx/.doc)",
|
||
textLabel: "文本",
|
||
text: "纯文本文件 (.txt)",
|
||
markdown: "Markdown 文档",
|
||
csv: "逗号分隔值文件",
|
||
excel: "Excel 表格 (.xlsx/.xls)",
|
||
imageLabel: "图片",
|
||
image: "图片文件 (.jpg/.jpeg/.png)",
|
||
},
|
||
},
|
||
faqManager: {
|
||
retry: "重试",
|
||
import: {
|
||
recentResult: "最近导入结果",
|
||
totalData: "导入数据",
|
||
success: "成功",
|
||
failed: "失败",
|
||
skipped: "跳过",
|
||
unit: "条",
|
||
downloadReasons: "下载原因",
|
||
appendMode: "追加模式",
|
||
replaceMode: "替换模式",
|
||
importing: "导入中...",
|
||
importDone: "导入完成",
|
||
importFailed: "导入失败",
|
||
waiting: "等待中...",
|
||
importInProgress: "导入正在进行中,请等待完成后再试",
|
||
noFailedRecords: "暂无失败记录可下载",
|
||
},
|
||
},
|
||
mermaid: {
|
||
zoomIn: "放大",
|
||
zoomOut: "缩小",
|
||
reset: "重置",
|
||
download: "下载图片",
|
||
close: "关闭",
|
||
downloading: "下载中...",
|
||
},
|
||
ollama: {
|
||
unknown: "未知",
|
||
today: "今天",
|
||
yesterday: "昨天",
|
||
daysAgo: "{days} 天前",
|
||
},
|
||
datasource: {
|
||
title: "数据源管理",
|
||
description: "配置外部数据源,自动同步内容到知识库",
|
||
add: "添加数据源",
|
||
addFirst: "添加第一个数据源",
|
||
empty: "暂无数据源",
|
||
edit: "编辑",
|
||
delete: "删除",
|
||
deleteConfirm: "确定删除该数据源?同步的知识不会被删除。",
|
||
deleteSuccess: "数据源已删除",
|
||
deleteFailed: "删除失败",
|
||
syncNow: "立即同步",
|
||
syncTriggered: "同步任务已提交",
|
||
syncFailed: "同步触发失败",
|
||
pause: "暂停",
|
||
resume: "恢复",
|
||
paused: "已暂停",
|
||
resumed: "已恢复",
|
||
pauseFailed: "暂停失败",
|
||
logs: "日志",
|
||
lastSync: "上次同步",
|
||
lastStatus: "同步结果",
|
||
schedule: "同步频率",
|
||
syncModeLabel: "同步模式",
|
||
syncMode: {
|
||
incremental: "增量同步",
|
||
full: "全量同步",
|
||
},
|
||
status: {
|
||
active: "已连接",
|
||
paused: "已暂停",
|
||
error: "异常",
|
||
},
|
||
createTitle: "添加数据源",
|
||
editTitle: "编辑数据源",
|
||
nameLabel: "名称",
|
||
namePlaceholder: "输入数据源名称",
|
||
testConnection: "测试连接",
|
||
testSuccess: "连接成功",
|
||
testFailed: "连接失败",
|
||
connected: "已连接",
|
||
connectionFailed: "连接失败",
|
||
isRequired: "为必填项",
|
||
credentialsLabel: "凭证",
|
||
resourceHint: "选择要同步的内容空间/文件夹",
|
||
untitled: "无标题",
|
||
resourceLoadFailed: "加载资源列表失败",
|
||
noResources: "未找到可同步的知识库空间",
|
||
noResourcesDesc: "应用需要通过群聊获得知识库访问权限才能拉取内容",
|
||
noResourcesDesc_notion: "应用需要获得 Notion 页面的访问权限才能拉取内容",
|
||
retryLoadResources: "重新加载",
|
||
guideStep1: "在飞书中创建一个群聊,在群设置「群机器人」中添加你的应用",
|
||
guideStep2: "打开知识库「设置」→「成员设置」→ 添加成员,搜索该群聊名称并添加",
|
||
guideStep3: "确保群聊角色至少为「可阅读」,然后回到这里点重新加载",
|
||
guideStep1_notion: "在 Notion 中打开你想要同步的页面或数据库",
|
||
guideStep2_notion: "点击右上角的「···」菜单,选择「Connect to」或「Add connections」",
|
||
guideStep3_notion: "搜索并选择你的集成应用(Integration),然后回到这里点重新加载",
|
||
permissionDocLink: "查看飞书知识库权限配置文档",
|
||
syncScheduleLabel: "同步频率",
|
||
conflictLabel: "冲突策略",
|
||
conflict: {
|
||
overwrite: "覆盖更新",
|
||
skip: "跳过已存在",
|
||
},
|
||
syncDeletions: "同步删除(源端删除时同步删除知识库中的条目)",
|
||
createAndSync: "创建并立即同步",
|
||
createSuccess: "数据源创建成功",
|
||
createAndSyncSuccess: "数据源创建成功,同步任务已提交",
|
||
createButSyncFailed: "数据源已创建,但触发同步失败",
|
||
updateSuccess: "数据源更新成功",
|
||
saveFailed: "保存失败",
|
||
step: {
|
||
selectType: "选择类型",
|
||
credentials: "配置凭证",
|
||
resources: "选择范围",
|
||
strategy: "同步策略",
|
||
},
|
||
syncHistory: "同步历史",
|
||
refreshLogs: "刷新日志",
|
||
noLogs: "暂无同步记录",
|
||
logStatus: {
|
||
running: "同步中",
|
||
success: "成功",
|
||
partial: "部分成功",
|
||
failed: "失败",
|
||
canceled: "已取消",
|
||
},
|
||
logMetric: {
|
||
total: "总计",
|
||
created: "新增",
|
||
updated: "更新",
|
||
deleted: "删除",
|
||
skipped: "跳过",
|
||
failed: "失败",
|
||
},
|
||
logSummary: {
|
||
total: "总次数",
|
||
success: "成功",
|
||
failed: "失败",
|
||
items: "同步条目",
|
||
},
|
||
logLatest: "最新",
|
||
logDetail: {
|
||
startTime: "开始时间",
|
||
endTime: "结束时间",
|
||
duration: "耗时",
|
||
},
|
||
connector: {
|
||
feishu: "飞书",
|
||
notion: "Notion",
|
||
yuque: "语雀",
|
||
},
|
||
connectorDesc: {
|
||
feishu: "同步飞书知识库中的文档、表格、文件",
|
||
notion: "同步 Notion 中的页面和数据库",
|
||
yuque: "同步语雀知识库中的文档",
|
||
},
|
||
field: {
|
||
appId: "App ID",
|
||
appSecret: "App Secret",
|
||
integrationToken: "Integration Token",
|
||
apiToken: "API Token",
|
||
baseUrl: "Base URL(可选)",
|
||
baseUrlHint: "留空将使用语雀公有云 https://www.yuque.com;如果你使用的是语雀企业版或私有部署,请填写企业域名(例如 https://your-company.yuque.com)",
|
||
},
|
||
comingSoon: "即将支持",
|
||
docHint: "在以下地址获取凭证:",
|
||
copyUrl: "复制 URL",
|
||
copied: "已复制",
|
||
pleaseTestFirst: "请先测试连接",
|
||
prereqTitle: "使用前请先完成以下配置(缺一不可)",
|
||
prereqBarText: "首次使用?点击查看飞书应用配置指引",
|
||
prereqBarText_yuque: "首次使用?点击查看语雀 Token 配置指引",
|
||
prereqStep1Brief_yuque: "创建语雀个人 Token",
|
||
prereqStep1Desc_yuque: "登录语雀 → 个人头像 → 设置 → Token → 新建 Token",
|
||
prereqStep2Brief_yuque: "为 Token 勾选所需权限",
|
||
prereqStep2Desc_yuque: "至少勾选 repo:read 和 doc:read(读取知识库和文档内容)",
|
||
prereqStep3Brief_yuque: "(可选)企业版填写 Base URL",
|
||
prereqStep3Desc_yuque: "公有云用户无需填写;语雀企业版或私有部署请填写企业域名",
|
||
prereqOpenConsole_yuque: "前往语雀 Token 设置",
|
||
prereqBotBrief: "为应用添加「机器人」能力",
|
||
prereqBotDesc: "开放平台 → 添加应用能力 → 机器人 → 创建版本并发布",
|
||
prereqBotLabel: "1. 为应用添加「机器人」能力(否则知识库中搜不到该应用):",
|
||
prereqBotStep1: "在飞书开放平台打开你的应用,点击左侧「添加应用能力」",
|
||
prereqBotStep2: "选择「机器人」并确认添加",
|
||
prereqBotStep3: "创建新版本并发布(或在测试企业中调试)",
|
||
prereqPermBrief: "开通 API 权限",
|
||
prereqPermLabel: "2. 为应用开通以下 API 权限:",
|
||
prereqOpenConsole: "前往飞书开放平台配置",
|
||
prereqMemberBrief: "通过群聊添加为知识库成员",
|
||
prereqMemberDesc: "创建群聊 → 添加应用为群机器人 → 将群聊添加为知识库成员",
|
||
prereqMemberLabel: "3. 通过群聊将应用添加为知识库成员(知识库无法直接搜到应用):",
|
||
back: "上一步",
|
||
next: "下一步",
|
||
save: "保存",
|
||
schedule30min: "每 30 分钟",
|
||
schedule1h: "每小时",
|
||
schedule6h: "每 6 小时",
|
||
schedule12h: "每 12 小时",
|
||
schedule24h: "每天",
|
||
scheduleHuman: {
|
||
'30min': "每 30 分钟",
|
||
'1h': "每小时",
|
||
'6h': "每 6 小时",
|
||
'12h': "每 12 小时",
|
||
'24h': "每天",
|
||
},
|
||
addCard: "添加数据源",
|
||
wikiSpace: "知识库空间",
|
||
resourceType: {
|
||
wikiSpace: "知识库空间",
|
||
docCategory: "文档分类",
|
||
book: "语雀知识库",
|
||
},
|
||
neverSynced: "未同步",
|
||
justNow: "刚刚",
|
||
minutesAgo: "{n} 分钟前",
|
||
hoursAgo: "{n} 小时前",
|
||
daysAgo: "{n} 天前",
|
||
syncResultCreated: "+{n}",
|
||
syncResultUpdated: "~{n}",
|
||
syncResultDeleted: "-{n}",
|
||
moreActions: "更多",
|
||
},
|
||
imOverview: {
|
||
menuTitle: "已接入的 IM",
|
||
pageTitle: "已接入的 IM",
|
||
subtitle: "当前空间下所有智能体已接入的 IM 渠道,可快速启停或跳转到对应智能体",
|
||
totalCount: "共 {count} 个",
|
||
empty: "当前空间还没有配置 IM 机器人",
|
||
loadFailed: "加载 IM 机器人列表失败",
|
||
builtinAgent: "内置智能体",
|
||
liveIndicator: "有已启用的 IM 渠道正在运行",
|
||
detailsTitle: "IM 机器人详情",
|
||
gotoAgentEditor: "前往 Agent 编辑",
|
||
outputMode: "输出模式",
|
||
sessionMode: "会话模式",
|
||
updatedAt: "更新时间",
|
||
channelId: "渠道 ID",
|
||
columns: {
|
||
platform: "平台",
|
||
name: "名称",
|
||
agent: "所属智能体",
|
||
mode: "模式",
|
||
enabled: "启用",
|
||
botIdentity: "Bot 标识",
|
||
createdAt: "创建时间",
|
||
},
|
||
},
|
||
credential: {
|
||
configured: "已配置",
|
||
unconfigured: "未配置",
|
||
configure: "配置",
|
||
update: "更换",
|
||
remove: "移除",
|
||
inputPlaceholder: "请输入",
|
||
savedToast: "凭据已保存",
|
||
saveFailed: "保存凭据失败",
|
||
removedToast: "凭据已移除",
|
||
removeFailed: "移除凭据失败",
|
||
confirmRemoveTitle: "移除 {field}?",
|
||
confirmRemoveBody:
|
||
"此操作将永久删除已保存的凭据,依赖它的集成将停止工作,直到您重新配置。",
|
||
},
|
||
userProfile: {
|
||
title: "用户信息",
|
||
description: "查看您的账户基础信息(用户 ID、用户名、邮箱、注册时间)",
|
||
},
|
||
tenantMember: {
|
||
title: "成员管理",
|
||
sectionDescription: "邀请伙伴加入当前空间并分配角色。只有 Owner 可以新增或移除成员。",
|
||
learnRbacGuide: "了解 RBAC",
|
||
totalCount: "共 {n} 位成员",
|
||
listTitle: "空间成员",
|
||
filterMatched: "筛选出 {n} 位",
|
||
loading: "正在加载成员…",
|
||
retry: "重试",
|
||
empty: "尚未邀请任何成员。点击右上角邀请伙伴加入。",
|
||
emptySearch: '没有匹配 "{q}" 的成员。',
|
||
searchPlaceholder: "按姓名或邮箱搜索",
|
||
permissions: {
|
||
title: "角色权限说明",
|
||
desc: "每个角色在当前空间内能做的事情。服务端强制执行,UI 控件仅作展示。",
|
||
iconHint: "悬停查看角色权限说明",
|
||
manageMembers: "管理成员",
|
||
manageTenantConfig: "修改空间配置",
|
||
manageInfra: "配置模型 / 向量库 / IM 通道",
|
||
createOwnKB: "创建并编辑自己的知识库和智能体",
|
||
readAll: "查看空间内容",
|
||
},
|
||
columns: {
|
||
member: "姓名与邮箱",
|
||
username: "姓名",
|
||
email: "邮箱",
|
||
role: "角色",
|
||
joinedAt: "加入时间",
|
||
operations: "操作",
|
||
},
|
||
role: {
|
||
owner: "所有者",
|
||
admin: "管理员",
|
||
contributor: "编辑",
|
||
viewer: "访客",
|
||
},
|
||
add: {
|
||
button: "邀请成员",
|
||
dialogTitle: "邀请成员",
|
||
emailLabel: "邮箱",
|
||
emailPlaceholder: "invitee{'@'}example.com",
|
||
roleLabel: "角色",
|
||
submit: "邀请",
|
||
success: "已添加成员",
|
||
},
|
||
remove: {
|
||
button: "移除",
|
||
confirmTitle: "确认移除?",
|
||
confirmBody: "确定要将 {name} 从当前空间中移除吗?该用户会立即失去访问权限。",
|
||
confirm: "移除",
|
||
success: "已移除成员",
|
||
},
|
||
leave: {
|
||
button: "退出空间",
|
||
confirmTitle: "确认退出当前空间?",
|
||
confirmBody: "退出后您将无法访问当前空间内的所有知识库和智能体。后续可被再次邀请加入。",
|
||
confirm: "退出",
|
||
success: "已退出当前空间",
|
||
},
|
||
roleChange: {
|
||
success: "角色已更新",
|
||
},
|
||
errors: {
|
||
emailRequired: "请输入邮箱",
|
||
emailFormat: "邮箱格式不正确",
|
||
roleRequired: "请选择角色",
|
||
userNotFound: "该邮箱尚未注册,请先邀请对方注册账号。",
|
||
alreadyMember: "该用户已经是当前空间的成员。",
|
||
lastOwner: "无法降级、移除或退出最后一位 Owner,请先把其他成员提升为 Owner。",
|
||
notFound: "未找到对应的成员。",
|
||
noTenant: "当前没有可操作的空间。",
|
||
invalidRole: "角色必须是 owner / admin / contributor / viewer 之一。",
|
||
generic: "操作失败,请稍后重试。",
|
||
},
|
||
tabs: {
|
||
members: "成员",
|
||
audit: "审计日志",
|
||
},
|
||
audit: {
|
||
tabLabel: "审计日志",
|
||
description:
|
||
"记录当前空间的成员变更与访问拒绝事件,按时间倒序展示。一分钟内的重复拒绝会自动去重。",
|
||
refresh: "刷新",
|
||
loadMore: "加载更多",
|
||
end: "已经到底了。",
|
||
empty: "暂无审计事件。",
|
||
forbidden: "无权查看审计日志。",
|
||
systemActor: "系统",
|
||
requiredRole: "需要角色:{role}",
|
||
columns: {
|
||
time: "时间",
|
||
actor: "操作人",
|
||
action: "事件",
|
||
target: "目标",
|
||
path: "请求",
|
||
outcome: "结果",
|
||
},
|
||
action: {
|
||
"rbac.member_added": "新增成员",
|
||
"rbac.member_removed": "移除成员",
|
||
"rbac.member_role_changed": "角色变更",
|
||
"rbac.member_left": "成员退出",
|
||
"rbac.access_denied": "访问被拒",
|
||
"rbac.invitation_sent": "发出邀请",
|
||
"rbac.invitation_accepted": "接受邀请",
|
||
"rbac.invitation_declined": "拒绝邀请",
|
||
"rbac.invitation_revoked": "撤销邀请",
|
||
"rbac.invitation_expired": "邀请过期",
|
||
},
|
||
outcome: {
|
||
success: "成功",
|
||
denied: "拒绝",
|
||
},
|
||
expanded: {
|
||
actorId: "操作人 ID",
|
||
targetUserId: "目标用户 ID",
|
||
targetType: "目标类型",
|
||
targetId: "目标 ID",
|
||
details: "原始详情",
|
||
},
|
||
},
|
||
},
|
||
tenantInvitation: {
|
||
inboxTooltip: "查看待接受的邀请",
|
||
pendingSectionTitle: "待接受的邀请",
|
||
pendingSectionCount: "{n} 条",
|
||
pendingSectionDesc:
|
||
"发出后等待对方在站内确认。{days} 天未响应将自动过期。",
|
||
pendingEmpty: "暂无待接受的邀请。",
|
||
inviteSubmit: "发送邀请",
|
||
inviteSuccess: "邀请已发出,等待对方接受。",
|
||
confirmInviteTitle: "确认发送邀请?",
|
||
confirmInviteBody:
|
||
"将向 {email} 发出加入邀请(角色:{role})。TA 在站内接受后才会成为成员。",
|
||
confirmSend: "发送",
|
||
copyLink: "复制邀请链接",
|
||
copied: "已复制到剪贴板",
|
||
copyFailed: "复制失败,请手动选中文本",
|
||
shareLink: {
|
||
button: "生成共享链接",
|
||
label: "共享链接",
|
||
cellTitle: "通过链接邀请",
|
||
cellAccepted: "已加入 {count} 人",
|
||
cellEmpty: "尚无成员加入",
|
||
dialogTitle: "生成共享邀请链接",
|
||
description:
|
||
"生成一条多人可用的注册链接,发到群里就行;谁打开都能用自己的邮箱注册并加入当前空间。链接 {days} 天后过期,或随时可在列表中撤销。",
|
||
generate: "生成链接",
|
||
resultTitle: "邀请链接已生成",
|
||
resultBody: "复制下方链接,通过任意私密渠道发给被邀请人。链接也会保存在下方列表中,随时可以重新复制或撤销。",
|
||
revokeConfirm: "撤销后,所有还未注册的人都无法再使用此链接;如需重发请生成新链接。",
|
||
},
|
||
revoke: {
|
||
button: "撤销",
|
||
confirmTitle: "确认撤销邀请?",
|
||
confirmBody:
|
||
"撤销后,{email} 将无法再接受此邀请;如需再邀请请重新发出。",
|
||
confirm: "撤销",
|
||
success: "邀请已撤销。",
|
||
},
|
||
columns: {
|
||
invitee: "被邀请人",
|
||
role: "角色",
|
||
inviter: "邀请人",
|
||
expiresAt: "到期时间",
|
||
status: "状态",
|
||
operations: "操作",
|
||
},
|
||
status: {
|
||
pending: "待接受",
|
||
shareLinkActive: "生效中",
|
||
accepted: "已接受",
|
||
declined: "已拒绝",
|
||
revoked: "已撤销",
|
||
expired: "已过期",
|
||
},
|
||
myInbox: {
|
||
title: "我的邀请",
|
||
description: "其他空间发给您的加入邀请。接受后您将以对应角色加入对方空间。",
|
||
empty: "没有待处理的邀请。",
|
||
acceptButton: "接受",
|
||
declineButton: "拒绝",
|
||
acceptSuccess: '已加入 "{tenant}"。',
|
||
declineSuccess: "已拒绝邀请。",
|
||
from: "邀请人",
|
||
tenantLabel: "空间",
|
||
expiresIn: "到期:{date}",
|
||
messageLabel: "留言",
|
||
gotoLink: "进入收件箱",
|
||
},
|
||
errors: {
|
||
pendingExists: "已经向该用户发出过一条待接受的邀请。",
|
||
alreadyMember: "该用户已是当前空间的成员。",
|
||
notPending: "邀请已不在待处理状态。",
|
||
expired: "邀请已过期。",
|
||
forbidden: "只有被邀请人本人可以接受或拒绝该邀请。",
|
||
notFound: "邀请不存在或已被撤销。",
|
||
generic: "操作失败,请稍后重试。",
|
||
},
|
||
},
|
||
};
|