Merge origin/develop_web into feature/20251219_yjp

- Resolved conflict in web/src/components/RbModal/index.tsx
- Combined className and maskClosable properties
This commit is contained in:
yujiangping
2025-12-22 17:34:53 +08:00
150 changed files with 588251 additions and 1653 deletions

View File

@@ -21,7 +21,7 @@ export const en = {
userMemory: 'User Memory',
memberManagement: 'Member Management',
memorySummary: 'Memory Summary',
memoryConversation: 'Memory Verification',
memoryConversation: 'Memory Validation',
memorySummaryHandlers: 'Memory Summary Handlers',
createMemorySummary: 'Create Memory Summary',
memoryManagement: 'Memory Management',
@@ -33,6 +33,11 @@ export const en = {
knowledgeCreateDataset: 'Create Dataset',
knowledgeDocumentDetails: 'Document Details',
userMemoryDetail: 'UserMemory Detail',
apiKeyManagement: 'API KEY Management',
toolManagement: 'Tool Management',
emotionEngine: 'Emotion Engine',
emotionDetail: 'Emotion Memory',
selfReflectionEngine: 'Self Reflection Engine',
},
dashboard: {
totalMemoryCapacity: 'Total Memory Capacity',
@@ -57,13 +62,13 @@ export const en = {
forgettingExecutionRate: 'Forgetting Execution Rate',
memoryClassificationDistribution: 'Memory classification distribution',
knowledgeBaseTypeDistribution: 'Distribution of knowledge base types',
memoryGrowthTrend: 'Memory growth trend',
knowledgeBaseTypeDistribution: 'Distribution of Knowledge Base Types',
memoryGrowthTrend: 'Memory Growth Trend',
corporateMemory: 'Corporate Memory',
recentMemoryActivities: 'Recent memory activities',
recentMemoryActivities: 'Recent Memory Activities',
apiCallTrend: 'API call trend',
quickOperation: 'Quick Operation',
popularMemoryTags: 'Popular memory tags',
popularMemoryTags: 'Popular Memory Tags',
title: 'Real-time Monitoring of Your AI Memory Core and Agent Status',
loading: 'Loading...',
@@ -115,9 +120,9 @@ export const en = {
statements_count_desc: 'Manage {{count}} knowledge statements',
triplet_count: 'Entity Relation Extraction',
triplet_count_desc: 'Build {{entities_count}} entity nodes and {{relations_count}} relation connections',
temporal_count: 'Time extraction',
temporal_count: 'Time Extraction',
temporal_count_desc: 'Record {{count}} time series information',
dialogue: 'Dialogue',
chunk: 'Chunk',
statement: 'Statement',
@@ -262,6 +267,7 @@ export const en = {
exportList: 'Export List',
selectPlaceholder: 'Please select {{title}}',
inputPlaceholder: 'Please enter {{title}}',
enterPlaceholder: 'Enter {{title}}',
saveSuccess: 'Save Success',
saveFailure: 'Save Failure',
pleaseSelect: 'Please select',
@@ -288,8 +294,8 @@ export const en = {
addOption: 'Add Option',
viewDetail: 'View Detail',
deleteSuccess: 'Delete successfully',
foldUp: 'Fold Up',
expanded: 'Expanded',
foldUp: 'Collapse',
expanded: 'Expand',
clickUploadIcon: 'click on the upload icon',
export: 'Export',
active: 'Active',
@@ -318,10 +324,7 @@ export const en = {
loginApiCannotRefreshToken: 'Login API cannot refresh token',
logoutApiCannotRefreshToken: 'Logout API cannot refresh token',
publicApiCannotRefreshToken: 'Public API cannot refresh token',
refreshTokenNotExist: 'Refresh token does not exist',
reset: 'Reset',
statusEnabled: 'Enabled',
statusDisabled: 'Disabled',
refreshTokenNotExist: 'Refresh token does not exist'
},
model: {
searchPlaceholder: 'search model…',
@@ -329,7 +332,7 @@ export const en = {
provider: 'Provider',
status: 'Status',
created: 'Created',
configureBtn: 'Click to Configure',
configureBtn: 'Run Configuration',
name: 'Name',
displayName: 'Display Name',
nameRequired: 'Please enter model name',
@@ -401,11 +404,19 @@ export const en = {
saveConfig: 'Save Config',
apiKeyName: 'API Key Name',
llm: 'LLM',
chat: 'Chat',
embedding: 'Embedding',
rerank: 'Rerank',
openai: "Openai",
dashscope: "Dashscope",
ollama: "Ollama",
xinference: "Xinference",
gpustack: "Gpustack",
bedrock: "Bedrock"
},
knowledgeBase: {
home: 'Home',
selectSpace: 'Please select a workspace.',
preview:'Preview',
pleaseUploadFileFirst: 'Please upload file first',
shareSuccess: 'Share successfully',
shareFailed: 'Share failed',
@@ -439,7 +450,7 @@ export const en = {
recallTestDescription:'Input test questions to evaluate the recall effectiveness and relevance of the knowledge base',
similarityThreshold: 'Similarity Threshold',
startTesting: 'Start Testing',
semanticSimilarity: 'Semantic similarity',
semanticSimilarity: 'Semantic Similarity',
recallResult: 'Result',
setting: 'Setting',
similarity: 'Similarity',
@@ -501,7 +512,7 @@ export const en = {
delete: 'Delete',
rechunking: 'Rechunking',
download: 'Download',
selectSource:'Please select the source',
selectSource:'Please select a source',
confirmDelete: 'Are you sure you want to delete this document?',
knowledgeBaseSettings: 'Knowledge Base Settings',
modelConfiguration: 'Model Configuration',
@@ -547,7 +558,6 @@ export const en = {
fileName: 'File Name',
fileList: 'File List',
blockPreview: 'Block Preview',
processingDocuments: 'Processing documents, please wait...',
chunkContent: 'Chunk Content',
sampleChunk: 'Sample Chunk Content',
noFilesSelected: 'No files',
@@ -557,10 +567,6 @@ export const en = {
waiting: 'Waiting',
startUpload: 'Total {{count}} files | Start Upload',
startUploading: 'Start Uploading',
startUploadConfirmTitle: 'Start Processing Documents',
startUploadConfirmContent: 'Document processing will run in the background. You can choose to return to the list page immediately or stay on this page to view the processing progress.',
returnToList: 'Return to List',
stayOnPage: 'Stay on Page',
uploadSuccess: 'Upload Success',
datasetName: 'Dataset Name',
pleaseEnterDatasetName: 'Please enter dataset name',
@@ -652,6 +658,8 @@ export const en = {
active: 'Active',
inactive: 'Inactive',
configurationName: 'Configuration Name',
emotionEngine: 'Emotion Engine',
reflectionEngine: 'Self-Reflection Engine'
},
member: {
username: 'Username',
@@ -659,16 +667,14 @@ export const en = {
role: 'Role',
lastLoginTime: 'Last Login Time',
editMember: 'Edit Member',
createMember: 'Create Member',
createMember: 'Add Member',
email: 'Email',
inviteToMember: 'Invite to Member',
inviteToMember: 'Member Role',
member: 'Member',
memberDesc: 'Can only use the application, cannot create the application',
admin: 'Admin',
adminDesc: 'Can create applications and manage team settings',
sendInvitation: 'Send Invitation',
manager: 'Admin',
managerDesc: 'Can create applications and manage team settings',
managerDesc: 'Can access applications, but cannot create or manage them',
inviteLinkDesc: 'Invite link 【{{inviteLink}}】, please copy and send to the member',
inviteLinkTip: 'Please copy the invite link and send it to the user to complete the invitation',
},
@@ -745,10 +751,10 @@ export const en = {
workflowDesc: 'To be opened, please stay tuned',
editApplication: 'Edit Application Info',
currentModel: 'Current Model',
modelConfig: 'Model Config',
parameterConfig: 'Parameter Config',
parameterConfig: 'Parameter Configuration',
apply: 'Apply',
resetDefault: 'Reset Default',
@@ -792,7 +798,7 @@ export const en = {
promptConfiguration: 'Prompt Configuration',
configurationDesc: 'Define the role, capabilities, and behavioral guidelines of the Agent',
aiPrompt: 'AI Prompt',
promptPlaceholder: 'You are a professional AI assistant, and your responsibilities are ..',
promptPlaceholder: 'You are a professional AI assistant, and your responsibility is to help users solve problems.',
knowledgeBaseAssociation: 'Knowledge base association',
associatedKnowledgeBase: 'Associated Knowledge Base',
addKnowledgeBase: 'Add Knowledge Base',
@@ -905,7 +911,7 @@ export const en = {
frequency_penalty_desc: 'Frequency penalty',
presence_penalty: 'Presence Penalty',
presence_penalty_desc: 'Presence Penalty',
n: 'Number of replies generated (n)',
n: 'Number of Replies Generated (n)',
n_desc: 'Number of replies generated',
contains: 'Contains {{include_count}} documents',
@@ -918,7 +924,7 @@ export const en = {
versionNumber: 'Version Number',
versionNumberTip: 'Version number format: v[major version number].[next version number].[revision number] (e.g. v1.3.0)',
versionDescription: 'Version Description',
versionDescriptionTip: 'Suggest explaining the feature updates, bug fixes, and optimization items for this release',
versionDescriptionTip: 'Please describe the feature updates, bug fixes, and optimizations included in this release.',
releasePreview: 'Release Preview',
globalConfig: 'Global Config',
globalConfigDesc: 'The global configuration will be applied to all associated knowledge bases as the default configuration. The configuration of a single knowledge base will override the global configuration.',
@@ -939,7 +945,7 @@ export const en = {
similarity_threshold: 'Semantic similarity threshold',
similarity_threshold_desc: 'Only return results with semantic similarity higher than this threshold',
similarity_threshold_desc1: 'The minimum similarity threshold for semantic retrieval',
vector_similarity_weight: 'Vector Similarity Weight',
vector_similarity_weight_desc: 'Only return results with BM25 scores above this threshold',
vector_similarity_weight_desc1: 'The minimum BM25 score threshold for word segmentation retrieval',
@@ -957,7 +963,7 @@ export const en = {
versionNameTip: 'Version number format: v[major version number].[next version number].[revision number] (e.g. v1.3.0)',
agentName: 'Agent Name',
roleType: 'Role Type',
coordinator: 'Coordinator',
analyzer: 'Analyzer',
executor: 'Executor',
@@ -967,8 +973,28 @@ export const en = {
capabilities: 'Capabilities',
subAgent: 'Sub Agent',
maxChatCount: 'Add up to 4 models',
addApiKey: 'Add API Key',
ReplyException: 'Reply exception'
ReplyException: 'Reply exception',
endpointConfigurationSubTitle: 'Configure API access address and supported HTTP methods',
apiKeys: 'API Keys Management',
apiKeySubTitle: 'Manage API keys, view usage and traffic statistics for each key',
addApiKey: 'Add New API Key',
apiKeyName: 'Key Name',
apiKeyNamePlaceholder: 'e.g.: Production, Testing, Development',
apiKeyDescPlaceholder: 'Describe the purpose of this Key',
apiKeyTotal: 'Total Keys',
apiKeyRequestTotal: 'Total Requests',
qps: 'Average QPS',
qpsLimit: 'QPS Limit',
qpsLimitTip: '(Requests per second)',
apiLimitConfig: 'Rate Limiting Configuration',
qpsLimitDesc: 'Limit the maximum number of requests this Key can make per second',
dailyUsageLimit: 'Daily Usage Limit',
dailyUsageLimitDesc: 'Limit the maximum total number of requests this Key can make per day',
dailyUsageLimitUnit: 'times/day',
apiKeyDeleteContent: 'Once deleted, it cannot be recovered, and applications using this Key will not be able to access the API',
currentValue: 'Current Value',
qpsLimitUnit: 'times/second',
},
userMemory: {
userMemory: 'User Memory',
@@ -984,7 +1010,7 @@ export const en = {
memoryInsight: 'Memory Insight',
relationshipNetwork: 'Relationship Network',
aboutMe: 'About Me',
foldUp: 'Fold Up',
foldUp: 'Collapse',
interestDistribution: 'Interest Distribution',
memoryDetails: 'Memory Details',
importantMomentsInLife: 'Important Moments in Life',
@@ -995,7 +1021,7 @@ export const en = {
memoryDetailEmpty: 'Please select a memory node',
memoryDetailEmptyDesc: 'Click on any node in the above view to view detailed information',
totalNumOfMemories: 'Total number of memories',
totalNumOfMemories: 'Total Number of Memories',
footprintCity: 'Footprint City',
totalNumOfPhotos: 'Total number of photos',
importantRelationships: 'Important Relationships',
@@ -1005,7 +1031,7 @@ export const en = {
emotions: 'Emotions',
occupation: 'Occupation',
memories: 'memories',
expanded: 'Expanded',
expanded: 'Expand',
description: 'Description',
entityType: 'Entity Type',
conversationMemory: 'Conversation Storage Content',
@@ -1021,32 +1047,32 @@ export const en = {
associated: 'Associated',
notAssociated: 'Not Associated',
storageType: 'Storage Type',
rag: 'RAG storage',
rag: 'RAG Storage',
ragDesc: 'Based on vector retrieval, suitable for document Q&A and semantic search',
neo4j: 'Graph storage',
neo4j: 'Graph Storage',
neo4jDesc: 'Based on knowledge graph, suitable for relational reasoning and path query',
llmModel: 'LLM Model',
embeddingModel: 'Embedding Model',
rerankModel: 'Rerank Model'
},
memoryExtractionEngine: {
title: 'Memory Engine module configuration center',
title: 'Memory Engine Module Configuration Center',
subTitle: 'Configure the parameters of six core modules, and view in real-time the impact on the memory processing conclusions of the "sample memory text (insights from the technology conference)". Any parameter changes will be instantly reflected in the results area on the right.',
example: 'Example memory text',
storageLayerModule: 'Storage layer module',
example: 'Example Memory Text',
storageLayerModule: 'Storage Layer Module',
enableLlmDedupBlockwise: 'Entity de-duplication (LLM decision-making)',
enableLlmDisambiguation: 'Memory disambiguation function (LLM decision)',
tNameStrict: 'Name matching threshold',
tTypeStrict: 'Type matching threshold',
tOverall: 'Comprehensive matching threshold',
enableLlmDedupBlockwise: 'Entity De-duplication (LLM decision-making)',
enableLlmDisambiguation: 'Memory Disambiguation Function (LLM decision)',
tNameStrict: 'Name Matching Threshold',
tTypeStrict: 'Type Matching Threshold',
tOverall: 'Comprehensive Matching Threshold',
arrangementLayerModule: 'Arrangement layer module',
queryMode: 'Query mode',
arrangementLayerModule: 'Arrangement Layer Module',
queryMode: 'Query Mode',
queryModeSubTitle: 'Control whether to activate deeper search functions',
deepRetrieval: 'Deep Retrieval',
deepRetrievalMeaning: 'Control whether to initiate deep memory retrieval (true/false).',
dataPreprocessing: 'Data preprocessing',
dataPreprocessing: 'Data Preprocessing',
dataPreprocessingSubTitle: 'Through reflection and refinement, transform episodic memory into deeper semantic memory.',
entityDeduplicationModuleThreshold: 'Entity de-duplication - name matching threshold',
@@ -1055,20 +1081,19 @@ export const en = {
control: 'Control',
button: 'button',
inputNumber: 'progress value',
slider: 'progress value',
slider: 'Slider',
select: 'select',
location: 'Location',
CurrentValue: 'Current Value',
type: 'Type',
Meaning: 'Meaning',
exampleMemoryExtractionResults: 'Example memory extraction results',
exampleMemoryExtractionResults: 'Example Memory Extraction Results',
exampleMemoryExtractionResultsSubTitle: '(from a technology conference)',
warning: 'When you modify the configuration items on the left, the extraction conclusion will be updated in real-time here',
extractTheNumberOfEntities: 'Extract the number of entities',
extractTheNumberOfEntitiesDesc: 'Merge after deduplication: {{num}} (exact: {{exact}}, fuzzy: {{fuzzy}}, LLM: {{llm}})',
numberOfEntityDisambiguation: 'Number of entity disambiguation',
numberOfEntityDisambiguationDesc: 'Total {{num}} times (blocking: {{block_count}})',
@@ -1093,26 +1118,26 @@ export const en = {
lateChunker: 'Late Chunker',
debug: 'Debug',
model: 'Model',
chunkerStrategy: 'Chunker strategy',
chunkerStrategy: 'Chunker Strategy',
chunkerStrategyDesc: 'Choose a partitioning strategy.',
intelligentSemanticPruning: 'Intelligent semantic pruning',
intelligentSemanticPruning: 'Intelligent Semantic Pruning',
intelligentSemanticPruningSubTitle: 'Whether to activate the intelligent semantic pruning function, select pruning scenarios, and set thresholds.',
intelligentSemanticPruningFunction: 'Intelligent semantic pruning function',
intelligentSemanticPruningFunction: 'Intelligent Semantic Pruning Function',
intelligentSemanticPruningFunctionDesc: 'Whether to activate intelligent semantic pruning (true/false).',
intelligentSemanticPruningScene: 'Intelligent semantic pruning scene',
intelligentSemanticPruningScene: 'Intelligent Semantic Pruning Scene',
intelligentSemanticPruningSceneDesc: 'Select intelligent semantic pruning scene (education, online_service, outbound).',
intelligentSemanticPruningThreshold: 'Intelligent semantic pruning threshold',
intelligentSemanticPruningThreshold: 'Intelligent Semantic Pruning Threshold',
intelligentSemanticPruningThresholdDesc: 'Set intelligent semantic pruning threshold (0-0.9).',
selfReflexionEngine: 'Self-reflexion engine',
reflectionEngine: 'Self-Reflexion Engine',
selfReflexionEngineSubTitle: 'Through reflection and refinement, transform episodic memory into deeper semantic memory.',
enableSelfReflexion: 'Enable self-reflexion',
iterationPeriod: 'Iteration period',
iterationPeriod: 'Iteration Period',
iterationPeriodDesc: 'Set the iteration period for self-reflexion (hourly, 3_hours, 6_hours, 12_hours, daily).',
reflexionRange: 'Reflexion range',
reflexionRange: 'Reflexion Range',
reflexionRangeDesc: "When selecting 'Database', the iteration cycle is non configurable and fixed at daily",
retrieval: 'Retrieval',
database: 'Database',
reflectOnTheBaseline: 'Reflect on the baseline',
reflectOnTheBaseline: 'Reflect on the Baseline',
basedOnTime: 'Based on time',
basedOnFacts: 'Based on facts',
basedOnFactsAndTime: 'Based on facts and time',
@@ -1124,15 +1149,15 @@ export const en = {
education: 'Education',
online_service: 'Online service',
outbound: 'Outbound',
entityDeduplicationDisambiguation: 'Entity de-duplication disambiguation',
entityDeduplicationDisambiguation: 'Entity De-duplication Disambiguation',
entityDeduplicationDisambiguationSubTitle: 'Control the LLM decision-making function for memory deduplication and disambiguation, set various matching thresholds, and affect the accuracy of memory deduplication.',
semanticAnchorAnnotationModule: 'Semantic anchor annotation module',
semanticAnchorAnnotationModule: 'Semantic Anchor Annotation Module',
semanticAnchorAnnotationModuleSubTitle: 'Control the granularity of statement extraction and whether to include dialog context.',
statementGranularity: 'Statement granularity',
statementGranularity: 'Statement Granularity',
statementGranularityDesc: 'Statement extraction granularity (1-3): 1 represents breaking down sentences into different statements, 2 represents sentence level, and 3 represents merging sentences into paragraphs.',
includeDialogueContext: 'Include dialogue context',
includeDialogueContext: 'Include Dialogue Context',
includeDialogueContextDesc: 'Control whether the complete dialogue context is included in the extraction process (true/false).',
maxDialogueContextChars: 'Max dialogue context chars',
maxDialogueContextChars: 'Max Dialogue Context Chars',
maxDialogueContextCharsDesc: 'The maximum number of characters included in the dialogue context (to avoid character limit issues) (greater than 100).',
coreEntitiesAfterDedup: 'Core entities after deduplication',
extractRelationalTriples: 'Extracted relational triples (partial)',
@@ -1155,7 +1180,28 @@ Memory Bear: Qin succeeded for several reasons: Shang Yangs reforms were thor
Student: Then switching to Tang history: after the An Lushan Rebellion, the central government began reforms, so why did regional warlordism (the fanzhen problem) actually get worse?
Memory Bear: After the rebellion, regional warlordism intensified for several reasons: military governors (jiedushi) held the power to recruit troops, control local finances, and command military forces, effectively becoming regional warlords; the central governments finances declined due to the breakdown of the equal-field system and the collapse of the tax-labor system, making it increasingly unable to support the army, which pushed military forces to rely on the jiedushi; the recruitment-based military system made soldiers loyal to individual commanders rather than the state; eunuchs controlled the imperial guards, the civil bureaucracy lost influence, and the central governments ability to balance regional power weakened.
`
`,
warning: 'When you modify the configuration items on the left, click [Debug], and the extraction conclusions will be updated in real time here',
processing: 'Configuration updated, re-extracting sample memory...',
success: 'Memory extraction completed!',
overallProgress: 'Overall Progress',
text_preprocessing: 'Text Preprocessing',
fragment: 'Fragment',
knowledge_extraction: 'Knowledge Extraction',
creating_nodes_edges: 'Creating Entity Relationships',
deduplication: 'Deduplication and Disambiguation',
status: {
pending: 'Pending',
processing: 'Processing',
completed: 'Completed',
failed: 'Failed'
},
time: 'Time: ',
text_preprocessing_desc: 'Text split into {{count}} semantic fragments',
knowledge_extraction_desc: 'Knowledge extraction completed, identified {{entities}} entities, {{statements}} statements, {{temporal_ranges_count}} temporal extractions, {{triplets}} triplets',
creating_nodes_edges_desc: 'Entity relationship creation completed, {{num}} relationships in total',
deduplication_desc: 'Deduplication and disambiguation completed, {{count}} unique entities in total'
},
memoryConversation: {
searchPlaceholder: 'Input user ID...',
@@ -1237,6 +1283,417 @@ Memory Bear: After the rebellion, regional warlordism intensified for several re
tableEmpty: 'There are currently no data',
loadingEmpty: 'The content is loading…',
loadingEmptyDesc: 'Your content is on its way by rocket! It will soon land on your screen'
},
apiKey: {
name: 'Project Name',
createApiKey: 'Create API Key',
updateApiKey: 'Edit API Key',
id: 'ID',
created_at: 'Created At',
description: 'Description',
memoryEngine: 'Memory Engine',
knowledgeBase: 'Knowledge Base',
advancedSettings: 'Advanced Settings',
expires_at: 'Expiration At',
apiKey: 'API Key',
status: 'Status',
createdAt: 'Created At',
expiresAt: 'Expires At',
requestsPerMinute: 'Requests/Minute',
viewDetail: 'View Details',
disable: 'Disable',
enable: 'Enable',
baseInfo: 'Basic Information',
permissionInfo: 'Permission Information',
is_expired: 'Status',
active: 'Active',
inactive: 'Expired'
},
tool: {
mcp: 'MCP Service',
inner: 'Built-in Tools',
custom: 'Custom Tools',
mcpSearchPlaceholder: 'Search MCP services...',
innerSearchPlaceholder: 'Search tools...',
customSearchPlaceholder: 'Search custom tools...',
addService: 'Add MCP Service',
addServiceSuccess: 'Service added successfully',
server_url: 'Service URL',
lastConnection: 'Last Connection',
responseTime: 'Response Time',
status: {
active: 'Active',
inactive: 'Inactive',
},
testConnectionSuccess: 'Connection test successful',
serviceEndpoint: 'Service Endpoint URL',
serviceEndpointPlaceholder: 'URL of the service endpoint',
serviceEndpointExtra: 'Complete access address of the MCP service',
nameAndIcon: 'Name and Icon',
namePlaceholder: 'Name your MCP service',
serverIdentifier: 'Server Identifier',
serverIdentifierPlaceholder: 'Unique server identifier, e.g. my-mcp-server',
serverIdentifierLength: 'Maximum 24 characters',
serverIdentifierPattern: 'Supports lowercase letters, numbers, underscores and hyphens',
description: 'Description',
auth: 'Authentication',
requestHeader: 'Request Headers',
config: 'Configuration',
authType: 'Authentication Type',
noAuth: 'No Authentication',
apiKey: 'API Key',
basicAuth: 'Basic Auth',
bearerToken: 'Bearer Token',
username: 'Username',
password: 'Password',
requestHeaderDesc: 'Additional HTTP request headers sent to MCP server',
addRequestHeader: 'Add Request Header',
editRequestHeader: 'Edit Request Header',
requestHeaderName: 'Request Header Name',
requestHeaderValue: 'Request Header Value',
timeout: 'Timeout (seconds)',
sseReadTimeout: 'SSE Read Timeout (seconds)',
saveAndTest: 'Save and Test',
timeFormat: 'Time Formatting',
timeZoneConversion: 'Time Zone Conversion',
timestampConversion: 'Timestamp Conversion',
timeCalculation: 'Time Calculation',
time_desc: 'Date and Time Processing',
DateTimeTool_features: 'Provides time format conversion, time zone conversion, timestamp calculation and other functions',
currentTime: 'Current Time',
timestamp: 'Timestamp',
localTime: 'Local Time',
utcTime: 'UTC Time',
secondsTimestamp: 'Timestamp (seconds)',
millisecondsTimestamp: 'Timestamp (milliseconds)',
enterTimestamp: 'Enter Timestamp',
conversion: 'Conversion',
conversionResult: 'Conversion Result',
chooseFormatType: 'Choose Format',
JsonTool_desc: 'Data Format Conversion',
JsonTool_features: 'JSON formatting, compression, validation and conversion functions',
jsonFormat: 'JSON Formatting',
jsonGzip: 'JSON Compression',
jsonCheck: 'JSON Validation',
jsonConversion: 'Format Conversion',
jsonEg: 'Example JSON',
enterJson: 'Enter JSON',
jsonPlaceholder: 'Enter JSON data, e.g.: {"name": "test", "value": 123}',
clear: 'Clear',
parse: 'Paste',
format: 'Format',
minify: 'Minify',
validate: 'Validate',
convert: 'Escape',
outputResult: 'Output Result',
validJosn: 'JSON format is correct, validation passed!',
BaiduSearchTool_desc: 'Search Engine Service',
BaiduSearchTool_features: 'Integrated Baidu Search API, providing web search, news search and other functions',
webSearch: 'Web Search',
newsSearch: 'News Search',
imageSearch: 'Image Search',
realTimeResults: 'Real-time Results',
configStatus: 'Configuration Status',
hasApiKey: 'API configured and enabled',
needApiKey: 'Need to configure API Key',
MinerUTool_desc: 'PDF Parsing Tool',
MinerUTool_features: 'High-precision PDF document parsing tool, supports text, table, and image extraction',
pdfParser: 'PDF Parser',
tableExtraction: 'Table Extraction',
imageRecognition: 'Image Recognition',
textExtraction: 'Text Extraction',
TextInTool_desc: 'OCR Text Recognition',
TextInTool_features: 'Intelligent OCR text recognition service, supports multi-language and handwriting recognition',
universalOCR: 'Universal OCR',
handwritingRecognition: 'Handwriting Recognition',
multilingualSupport: 'Multi-language Support',
highPrecisionRecognition: 'High Precision Recognition',
configDesc: 'Configuration Description',
BaiduSearchTool_config_desc: 'To use Baidu Search API, you need to apply for API Key and Secret Key on Baidu Open Platform first.',
MinerUTool_config_desc: 'MinerU is a high-precision PDF document parsing tool that requires an API Key to use.',
TextInTool_config_desc: 'TextIn provides intelligent OCR text recognition service with multi-language support.',
link: 'Application URL',
api_key: 'API Key',
BaiduSearchTool_api_key_desc: 'API Key obtained from Baidu Open Platform',
MinerUTool_api_key_desc: 'API Key obtained from MinerU platform',
secret_key: 'Secret Key',
BaiduSearchTool_secret_key_desc: 'Secret Key obtained from Baidu Open Platform',
TextInTool_secret_key_desc: 'Secret Key obtained from TextIn platform',
type: 'Search Type',
pagesize: 'Results Per Page',
pagesize_desc: 'Number of results returned per search ({{count1}}-{{count2}})',
BaiduSearchTool_enable: 'Enable Baidu Search',
BaiduSearchTool_safe_enable: 'Enable Safe Search',
BaiduSearchTool_safe_enable_desc: 'Filter inappropriate content',
api_address: 'API Address',
MinerUTool_api_address_desc: 'Uses official API address by default, can be modified if privately deployed',
TextInTool_api_address_desc: 'Uses official API address by default',
parsing_mode: 'Parsing Mode',
auto_recognition: 'Auto Recognition',
pure_text_mode: 'Pure Text Mode',
table_priority: 'Table Priority',
image_priority: 'Image Priority',
MinerUTool_timeout_desc: 'PDF parsing timeout (10-300 seconds)',
MinerUTool_enable: 'Enable MinerU',
MinerUTool_extract_images_enable: 'Extract Images',
MinerUTool_extract_images_enable_desc: 'Whether to extract image content from PDF',
app_id: 'APP ID',
TextInTool_app_id_desc: 'App ID obtained from TextIn platform',
language_identification: 'Recognition Language',
automatic_detection: 'Automatic Detection',
simplified_chinese: 'Simplified Chinese',
traditional_chinese: 'Traditional Chinese',
english: 'English',
japanese: 'Japanese',
korean_language: 'Korean',
pattern_recognition: 'Recognition Mode',
universal_identification: 'Universal Recognition',
high_precision_identification: 'High Precision Recognition',
handwriting_recognition: 'Handwriting Recognition',
formula_recognition: 'Formula Recognition',
TextInTool_enable: 'Enable TextIn',
return_text_position_enable: 'Return Text Position Info',
return_text_position_enable_desc: 'Whether to return coordinate positions of recognized text',
addCustom: 'Add Custom Tool',
editCustom: 'Edit Custom Tool',
schema: 'Schema',
schemaPlaceholder: 'Enter your OpenAPI schema here',
authentication: 'Authentication Method',
tag: 'Tag',
created_at: 'Created At',
headerName: 'Header Name',
null: 'None',
tagDesc: 'Multiple tags separated by commas',
availableTools: 'Available Tools',
name: 'Name',
desc: 'Description',
method: 'Method',
path: 'Path',
viewDetail: 'View Details'
},
workflow: {
coreNode: 'Core Nodes',
start: 'Start',
end: 'End',
answer: 'Answer',
aiAndCognitiveProcessing: 'AI & Cognitive Processing',
llm: 'Large Language Model (LLM)',
model_selection: 'Model Selection',
model_voting: 'Model Voting',
rag: 'Knowledge Retrieval (RAG)',
classification: 'Smart Classification',
parameter_extraction: 'Parameter Extraction',
flowControl: 'Flow Control',
condition: 'Conditional Branch',
iteration: 'Iteration',
loop: 'Loop',
parallel: 'Parallel Execution',
aggregator: 'Aggregator',
externalInteraction: 'External Interaction',
http_request: 'HTTP Request',
tools: 'Tools',
code_execution: 'Code Execution',
template_rendering: 'Template Rendering',
cognitiveUpgrading: 'Cognitive Upgrading (Innovation)',
task_planning: 'Task Planning',
reasoning_control: 'Reasoning Control',
self_reflection: 'Self Reflection',
memory_enhancement: 'Memory Enhancement',
agentCollaborationNode: 'Agent Collaboration Nodes',
agent_scheduling: 'Agent Scheduling',
agent_collaboration: 'Agent Collaboration',
agent_arbitration: 'Agent Arbitration',
safetyAndCompliance: 'Safety & Compliance',
sensitive_detection: 'Sensitive Detection',
output_audit: 'Output Audit',
evolutionAndGovernance: 'Evolution & Governance',
self_optimization: 'Self Optimization',
process_evolution: 'Process Evolution',
clickToConfigure: 'Click to configure node parameters',
nodeProperties: 'Node Properties',
empty: "Emmm... The box is empty, there's nothing here~",
nodeName: 'Node Name',
config: {
llm: {
model_id: 'Model',
temperature: 'Temperature',
max_tokens: 'Max Tokens',
},
start: {
variables: 'Input Fields',
string: 'Text',
number: 'Number',
boolean: 'Checkbox',
array: 'Dropdown Options',
object: 'Object',
addVariable: 'Add Variable',
editVariable: 'Edit Variable',
variableType: 'Variable Type',
variableName: 'Variable Name',
description: 'Display Name',
default: 'Default Value',
required: 'Required',
max_length: 'Max Length',
defaultChecked: 'Checked',
notDefaultChecked: 'Not Checked',
options: 'Options',
},
end: {
output: 'Reply'
}
},
clear: 'Clear',
run: 'Run',
save: 'Save',
export: 'Export',
variableConfig: 'Variable Configuration',
variableRequired: 'required',
},
emotionEngine: {
emotionEngineConfig: 'Emotion Engine Configuration',
emotion_enabled: 'Enable Emotion Engine',
emotion_enabled_desc: 'Automatically analyze emotional tendencies in conversations',
emotion_model_id: 'Emotion Analysis Model',
emotion_model_id_desc: 'Different models vary in accuracy and speed',
emotion_extract_keywords: 'Emotion Keyword Extraction',
emotion_extract_keywords_subTitle: 'Automatically extract emotion-related keywords from conversations',
emotion_extract_keywords_desc: 'Extract emotional keywords like "happy", "disappointed", "excited" to better understand user emotions',
emotion_min_intensity: 'Confidence Threshold',
emotion_min_intensity_desc: 'Higher confidence leads to more accurate recognition, but may miss some information',
emotion_enable_subject: 'Emotion Subject Classification',
emotion_enable_subject_subTitle: 'Identify emotion attribution (self/other/object)',
emotion_enable_subject_desc: 'Distinguish emotion subjects: self (I feel happy), other (he is angry), object (this product is great)',
currentValue: 'Current Value',
emotion_min_intensity_description: 'Confidence Threshold Description',
question: 'What is Confidence Threshold?',
answer: 'Confidence threshold is the "certainty level" standard for emotion engine to judge emotions. When the emotional confidence analyzed by AI is lower than the set threshold, the emotion will not be recorded.',
differentTitle: 'Impact of Different Thresholds',
advantage: 'Advantages',
shortcoming: 'Disadvantages',
scene: 'Applicable Scenarios',
low_title: 'Low Threshold (0.0 - 0.4)',
low_tag: 'Sensitive',
low_advantage: 'Can capture more subtle emotional changes without missing potential emotional signals',
low_shortcoming: 'May cause misjudgments, identifying neutral or unclear expressions as specific emotions',
low_scene: 'Scenarios requiring comprehensive understanding of user emotional fluctuations with low accuracy requirements',
middle_title: 'Medium Threshold (0.5 - 0.7)',
middle_tag: 'Recommended',
middle_advantage: 'Balances accuracy and coverage, can identify obvious emotions without being overly sensitive',
middle_shortcoming: 'May miss some less obvious emotional expressions',
middle_scene: 'Most daily conversation scenarios, suitable for general emotional analysis needs',
high_title: 'High Threshold (0.8 - 1.0)',
high_tag: 'Precise',
high_advantage: 'Only records very clear emotional expressions, extremely high accuracy with low misjudgment rate',
high_shortcoming: 'Will miss a large amount of less obvious emotional information, low data coverage',
high_scene: 'Scenarios requiring extremely high accuracy, such as emotional crisis warnings and important decision references',
configSuggest: 'Configuration Suggestions',
first: 'First Time Use',
first_desc: 'Recommend starting with medium threshold (0.6-0.7), observe for a period and adjust based on actual results',
customer_service: 'Customer Service Scenarios',
customer_service_desc: 'Recommend using lower threshold (0.4-0.6) to timely capture user dissatisfaction',
data_analysis: 'Data Analysis',
data_analysis_desc: 'Recommend using medium threshold (0.6-0.7) to ensure data quality while having sufficient sample size',
risk_warning: 'Risk Warning',
risk_warning_desc: 'Recommend using higher threshold (0.7-0.8) to ensure warning accuracy',
actual_case: 'Actual Case',
user_input: 'User Input',
user_input_message: '"This feature is okay, but there are some minor issues"',
neutral_emotion: 'Neutral Emotion',
neutral_emotion_tag: 'All thresholds will record',
minor_dissatisfaction: 'Minor Dissatisfaction',
minor_dissatisfaction_tag: 'Only low/medium thresholds will record',
expect_improvement: 'Expect Improvement',
expect_improvement_tag: 'Only low threshold will record',
confidence: 'Confidence'
},
emotionDetail: {
wordCloud: 'Emotion Distribution Analysis',
pieces: 'items',
emotionTags: 'High-Frequency Emotion Keywords',
joy: 'Joy',
anger: 'Anger',
sadness: 'Sadness',
fear: 'Fear',
neutral: 'Neutral',
surprise: 'Surprise',
health: 'Emotional Health Index',
positivity_rate: 'Positivity Rate',
stability: 'Stability',
resilience: 'Resilience',
suggestions: 'Personalized Suggestions',
},
reflectionEngine: {
reflectionEngineConfig: 'Reflection Engine Configuration',
reflection_enabled: 'Enable Reflection Engine',
reflection_enabled_desc: 'Transform episodic memory into semantic memory, forming long-term cognition',
reflection_model_id: 'Reflection Model',
reflection_model_id_desc: 'Different models vary in accuracy and speed',
reflection_period_in_hours: 'Iteration Period',
reflection_period_in_hours_desc: 'Determines how often the system performs memory reflection and refinement',
reflexion_range: 'Reflection Range',
partial: 'Partial Reflection (New memories only)',
all: 'Full Reflection (All historical memories)',
reflexion_range_desc: '',
baseline: 'Reflection Baseline',
baseline_desc: '',
TIME: 'Time-based (Temporal relationships)',
FACT: 'Fact-based (Knowledge points)',
HYBRID: 'Fact + Time (Comprehensive dimension)',
quality_assessment: 'Enable Quality Assessment',
quality_assessment_desc: 'Automatically evaluate memory accuracy, completeness and timeliness',
memory_verify: 'Enable Memory Verification',
memory_verify_desc: 'Detect sensitive information and filter inappropriate content',
oneHour: 'Every 1 hour',
threeHours: 'Every 3 hours',
sixHours: 'Every 6 hours',
twelveHours: 'Every 12 hours',
daily: 'Daily',
run: 'Run Debug',
example: 'Raw Data',
exampleText: 'I went to Beijing for work in the spring of 2023, and have basically been working in Beijing ever since, without changing cities much. However, due to company restructuring, I was transferred to Shanghai for about half a year in the first half of 2024, during which time I checked in at the Shanghai office every day. At that time, my employment records still used my previous identity information, with ID number 11010119950308123X and bank card 6222023847595898, which have never changed. By the way, I have actually been living in Beijing since 2023 and have never left Beijing for long periods. The Shanghai period was more like remote collaboration.',
runTitle: 'Reflection Test Run',
status: 'Status',
message: 'Message',
conflictDetection: 'Conflict Detection',
reason: 'Conflict Reason',
solution: 'Solution',
qualityAssessment: 'Quality Assessment',
qualityAssessmentObj: {
score: 'Quality Score',
summary: 'Assessment Summary',
},
privacyAudit: 'Privacy Audit',
privacyAuditObj: {
true: 'Yes',
false: 'No',
has_privacy: 'Contains Privacy Information',
privacy_types: 'Privacy Types',
summary: 'Audit Summary',
}
}
},
};

View File

@@ -28,16 +28,21 @@ export const zh = {
spaceManagement: '空间管理',
memoryExtractionEngine: '记忆提取引擎',
forgettingEngine: '遗忘引擎',
apiKeyManagement: 'API KEY管理',
knowledgePrivate: '详情',
knowledgeShare: '详情',
knowledgeCreateDataset: '新建数据集',
knowledgeDocumentDetails: '详情',
userMemoryDetail: '用户记忆详情',
toolManagement: '工具管理',
emotionEngine: '情感引擎',
emotionDetail: '情绪记忆',
selfReflectionEngine: '反思引擎',
},
knowledgeBase: {
home: '首页',
selectSpace: '请选择空间',
preview:'预览',
preview: '预览',
pleaseUploadFileFirst: '请先上传文件',
shareSuccess: '分享成功',
shareFailed: '分享失败',
@@ -178,7 +183,6 @@ export const zh = {
fileName: '文件名称',
fileList: '文件列表',
blockPreview: '分块预览',
processingDocuments: '正在处理文档,请稍候...',
chunkContent: '分块内容',
sampleChunk: '示例分块内容',
noFilesSelected: '暂无文件',
@@ -188,10 +192,6 @@ export const zh = {
waiting: '等待中',
startUpload: '共{{count}}个文件 | 开始上传',
startUploading: '开始上传',
startUploadConfirmTitle: '开始处理文档',
startUploadConfirmContent: '文档处理将在后台进行,您可以选择立即返回列表页或停留在此页面查看处理进度。',
returnToList: '返回列表页',
stayOnPage: '停留在此页',
uploadSuccess: '上传成功',
datasetName: '数据集名称',
pleaseEnterDatasetName: '请输入数据集名称',
@@ -297,7 +297,7 @@ export const zh = {
number: '数字',
checkbox: '复选框',
apiVariable: 'API变量',
displayName: '显示名称',
maxLength: '最大长度',
required: '必填',
@@ -317,7 +317,7 @@ export const zh = {
promptConfiguration: '提示词配置',
configurationDesc: '定义Agent的角色、能力和行为准则',
aiPrompt: 'AI提示词',
promptPlaceholder: '你是一个专业的AI助手你的职责是..',
promptPlaceholder: '你是一个专业的AI助手你的职责是帮助用户解决问题。',
knowledgeBaseAssociation: '知识库关联',
associatedKnowledgeBase: '关联知识库',
addKnowledgeBase: '添加知识库',
@@ -476,7 +476,7 @@ export const zh = {
similarity_threshold: '语义相似度阈值',
similarity_threshold_desc: '仅返回语义相似度高于此阈值的结果',
similarity_threshold_desc1: '语义检索的最小相似度阈值',
vector_similarity_weight: '向量相似度权重',
vector_similarity_weight_desc: '仅返回BM25分数高于此阈值的结果',
vector_similarity_weight_desc1: '分词检索的最小BM25分数阈值',
@@ -490,6 +490,27 @@ export const zh = {
chooseKnowledge: '选择知识库',
active: '活跃',
inactive: '不活跃',
endpointConfigurationSubTitle: '配置 API 访问地址和支持的 HTTP 方法',
apiKeys: 'API Keys 管理',
apiKeySubTitle: '管理 API 密钥,查看每个密钥的使用情况和流量统计',
addApiKey: '添加新 API Key',
apiKeyName: 'Key 名称',
apiKeyNamePlaceholder: '例如:生产环境、测试环境、开发环境',
apiKeyDescPlaceholder: '描述这个 Key 的用途',
apiKeyTotal: '总 Keys',
apiKeyRequestTotal: '总请求数',
qps: '平均 QPS',
qpsLimit: 'QPS 限制',
qpsLimitTip: '(每秒请求数)',
apiLimitConfig: '限流配置',
qpsLimitDesc: '限制此 Key 每秒最多可以发起的请求数',
dailyUsageLimit: '日调用量限制',
dailyUsageLimitDesc: '限制此 Key 每天最多可以发起的请求总数',
dailyUsageLimitUnit: '次/天',
apiKeyDeleteContent: '删除后将无法恢复使用此Key的应用将无法访问 API',
currentValue: '当前值',
qpsLimitUnit: '次/秒',
},
// 角色管理相关翻译
role: {
@@ -627,7 +648,7 @@ export const zh = {
triplet_count_desc: '构建{{entities_count}}个实体节点和{{relations_count}}个关系连接',
temporal_count: '时间提取',
temporal_count_desc: '记录{{count}}条时间序列信息',
dialogue: '对话',
chunk: '分块',
statement: '语句',
@@ -739,8 +760,8 @@ export const zh = {
copy: '复制',
copySuccess: '复制成功',
viewDetails: '查看详情',
enabled: '启用',
disabled: '停用',
enabled: '启用',
disabled: '停用',
updateWarning: '更新警告',
deleteWarning: '删除警告',
deleteWarningContent: '确定要删除此{{content}}吗?',
@@ -780,9 +801,7 @@ export const zh = {
logoutApiCannotRefreshToken: '退出登录接口不能刷新token',
publicApiCannotRefreshToken: '公共接口不能刷新token',
refreshTokenNotExist: '刷新token不存在',
reset: '重置',
statusEnabled: '已启用',
statusDisabled: '已禁用',
reset: '重置'
},
product: {
applicationManagement: '应用管理',
@@ -880,6 +899,17 @@ export const zh = {
saveConfig: '保存配置',
apiKeyName: 'API密钥名称',
llm: 'LLM',
chat: 'Chat',
embedding: 'Embedding',
rerank: 'Rerank',
openai: "Openai",
dashscope: "Dashscope",
ollama: "Ollama",
xinference: "Xinference",
gpustack: "Gpustack",
bedrock: "Bedrock"
},
timezones: {
'Asia/Shanghai': '中国标准时间 (UTC+8)',
@@ -976,6 +1006,8 @@ export const zh = {
active: '活跃',
inactive: '不活跃',
configurationName: '配置名称',
emotionEngine: '情感引擎',
reflectionEngine: '反思引擎'
},
member: {
username: '用户名',
@@ -988,8 +1020,6 @@ export const zh = {
inviteToMember: '邀请成员',
member: '成员',
memberDesc: '只能使用应用,不能创建应用',
admin: '管理员',
adminDesc: '可以创建应用和管理团队设置',
sendInvitation: '发送邀请',
manager: '管理员',
managerDesc: '可以创建应用和管理团队设置',
@@ -1036,10 +1066,10 @@ export const zh = {
minimumRetention: '时间遗忘率 (λ_time)',
minimumRetentionDesc: '控制记忆随时间的遗忘速度,值越高时间越短',
forgettingRate: '记忆遗忘率 (λ_mem)',
forgettingRate: '记忆遗忘率 (λ_mem)',
forgettingRateDesc: '控制记忆遗忘的速度,值越高遗忘越快',
offset: '最小保留度 (offset)',
offsetDesc: '控制记忆保留的最小保留阈值 遗忘这地方改个文字描述',
offset: '偏移量 (offset)',
offsetDesc: '最小保留度的偏移量',
CurrentValue: '当前值',
range: '范围',
forgettingEngineConfigParams: '遗忘引擎配置参数',
@@ -1095,11 +1125,8 @@ export const zh = {
storageType: '存储类型',
rag: 'RAG存储',
ragDesc: '基于向量检索,适合文档问答和语义搜索',
neo4j: '图存储',
neo4j: '图存储',
neo4jDesc: '基于知识图谱,适合关系推理和路径查询',
llmModel: 'LLM 模型',
embeddingModel: 'Embedding 模型',
rerankModel: 'Rerank 模型'
},
memoryExtractionEngine: {
title: '记忆引擎模块配置中心',
@@ -1136,11 +1163,10 @@ export const zh = {
exampleMemoryExtractionResults: '示例记忆提取结果',
exampleMemoryExtractionResultsSubTitle: '(来自技术会议)',
warning: '当您修改左侧的配置项时,提取结论将在此处实时更新',
extractTheNumberOfEntities: '提取实体数量',
extractTheNumberOfEntitiesDesc: '去重后合并:{{num}}(精确:{{exact}},模糊:{{fuzzy}}LLM{{llm}}',
numberOfEntityDisambiguation: '实体消歧数量',
numberOfEntityDisambiguationDesc: '总计{{num}}次(阻止:{{block_count}}',
@@ -1175,7 +1201,7 @@ export const zh = {
intelligentSemanticPruningSceneDesc: '选择智能语义修剪场景education、online_service、outbound。',
intelligentSemanticPruningThreshold: '智能语义修剪阈值',
intelligentSemanticPruningThresholdDesc: '设置智能语义修剪阈值0-0.9)。',
selfReflexionEngine: '自我反思引擎',
reflectionEngine: '自我反思引擎',
selfReflexionEngineSubTitle: '通过反思和精炼,将情节记忆转化为更深层的语义记忆。',
enableSelfReflexion: '启用自我反思',
iterationPeriod: '迭代周期',
@@ -1226,7 +1252,27 @@ export const zh = {
记忆熊:秦国统一的原因包括:商鞅变法彻底,建立法律、户籍和军功爵制度,提升国家组织能力;旧贵族势力弱,中央集权程度高;关中地理优越,资源丰富且易守难攻;从孝公到秦始皇政策连续性强。
学生:那我换到唐朝史:安史之乱后,中央已开始整顿,为何藩镇割据反而加剧?
记忆熊:安史之乱后藩镇割据加剧的原因包括:节度使掌握募兵权、财政调度权与军事指挥权,形成地方军阀;中央财政因均田制瓦解和租庸调失效而衰退,难以支撑军队,导致地方军事力量依附节度使;募兵制使士兵效忠个人而非国家;宦官掌控禁军,文官集团失势,中央制衡能力削弱。`
记忆熊:安史之乱后藩镇割据加剧的原因包括:节度使掌握募兵权、财政调度权与军事指挥权,形成地方军阀;中央财政因均田制瓦解和租庸调失效而衰退,难以支撑军队,导致地方军事力量依附节度使;募兵制使士兵效忠个人而非国家;宦官掌控禁军,文官集团失势,中央制衡能力削弱。`,
warning: '当您修改左侧的配置项后,点击【调试】,提取结论将在此处实时更新',
processing: '配置已更新,正在重新萃取示例记忆...',
success: '记忆萃取完成!',
overallProgress: '整体进度',
text_preprocessing: '文本预处理',
fragment: '片段',
knowledge_extraction: '知识抽取',
creating_nodes_edges: '创建实体关系',
deduplication: '去重消歧',
status: {
pending: '等待中',
processing: '处理中',
completed: '已完成',
failed: '失败'
},
time: '耗时: ',
text_preprocessing_desc: '文本切分为{{count}}个语义片段',
knowledge_extraction_desc: '知识抽取完成,共识别{{entities}}个实体,{{statements}}个句子, {{temporal_ranges_count}}个时间提取, {{triplets}}个三元组',
creating_nodes_edges_desc: '实体关系创建完成,共{{num}}条关系',
deduplication_desc: '去重消歧完成,最终{{count}}个唯一实体'
},
memoryConversation: {
searchPlaceholder: '输入用户ID...',
@@ -1321,28 +1367,421 @@ export const zh = {
websocketDemoCard: 'WebSocket 演示',
sseDemoCard: 'SSE演示'
},
workflow: {
title: '工作流编辑器',
description: '拖拽节点创建连接,构建您的工作流程。点击节点可进行配置。',
addNode: '添加节点',
deleteNode: '删除选中',
saveWorkflow: '保存工作流',
startNode: '触发节点',
conditionNode: '条件判断',
actionNode: '执行动作',
endNode: '结束节点',
newNode: '新节点',
node: '节点',
nodesCreated: '已创建节点',
loadingNodes: '正在加载节点 {{progress}}%',
loadingFailed: '加载节点失败',
create5kNodes: '创建5000节点',
create10kNodes: '创建10000节点'
},
notFound: {
title: '页面未找到',
description: '请求的页面不存在。',
backToHome: '返回首页'
},
apiKey: {
name: '项目名称',
createApiKey: '创建API Key',
updateApiKey: '编辑API Key',
id: 'ID',
created_at: '创建时间',
description: '描述',
memoryEngine: '记忆引擎',
knowledgeBase: '知识库',
advancedSettings: '高级设置',
expires_at: '过期时间',
apiKey: 'API Key',
status: '状态',
createdAt: '创建时间',
expiresAt: '过期时间',
requestsPerMinute: '次/分钟',
viewDetail: '查看详情',
disable: '禁用',
enable: '启用',
baseInfo: '基础信息',
permissionInfo: '授权信息',
is_expired: '状态',
active: '活跃',
inactive: '过期'
},
tool: {
mcp: 'MCP 服务',
inner: '内置工具',
custom: '自定义工具',
mcpSearchPlaceholder: '搜索MCP服务...',
innerSearchPlaceholder: '搜索工具...',
customSearchPlaceholder: '搜索自定义工具...',
addService: '添加MCP服务',
addServiceSuccess: '服务添加成功',
server_url: '服务地址',
lastConnection: '最后连接',
responseTime: '响应时间',
status: {
active: '活跃',
inactive: '不活跃',
},
testConnectionSuccess: '测试连接成功',
serviceEndpoint: '服务端点 URL',
serviceEndpointPlaceholder: '服务端点的 URL',
serviceEndpointExtra: 'MCP服务的完整访问地址',
nameAndIcon: '名称和图标',
namePlaceholder: '命名你的 MCP 服务',
serverIdentifier: '服务器标识符',
serverIdentifierPlaceholder: '服务器唯一标识,例如 my-mcp-server',
serverIdentifierLength: '最多 24 个字符',
serverIdentifierPattern: '支持小写字母、数字、下划线和连字符',
description: '描述信息',
auth: '认证',
requestHeader: '请求头',
config: '配置',
authType: '认证方式',
noAuth: '无需认证',
apiKey: 'API Key',
basicAuth: 'Basic Auth',
bearerToken: 'Bearer Token',
username: '用户名',
password: '密码',
requestHeaderDesc: '发送到 MCP 服务器的额外 HTTP 请求头',
addRequestHeader: '添加请求头',
editRequestHeader: '编辑请求头',
requestHeaderName: '请求头名称',
requestHeaderValue: '请求头值',
timeout: '超时时间(秒)',
sseReadTimeout: 'SSE 读取超时时间(秒)',
saveAndTest: '保存并测试',
timeFormat: '时间格式化',
timeZoneConversion: '时区转换',
timestampConversion: '时间戳转换',
timeCalculation: '时间计算',
time_desc: '日期时间处理',
DateTimeTool_features: '提供时间格式转换、时区转换、时间戳计算等功能',
currentTime: '当前时间',
timestamp: '时间戳',
localTime: '本地时间',
utcTime: 'UTC时间',
secondsTimestamp: '时间戳(秒)',
millisecondsTimestamp: '时间戳(毫秒)',
enterTimestamp: '输入时间戳',
conversion: '转换',
conversionResult: '转换结果',
chooseFormatType: '选择格式',
JsonTool_desc: '数据格式转换',
JsonTool_features: 'JSON格式化、压缩、验证和转换功能',
jsonFormat: 'JSON格式化',
jsonGzip: 'JSON压缩',
jsonCheck: 'JSON验证',
jsonConversion: '格式转换',
jsonEg: '示例JSON',
enterJson: '输入JSON',
jsonPlaceholder: '输入JSON数据例如{"name": "测试", "value": 123}',
clear: '清空',
parse: '粘贴',
format: '格式化',
minify: '压缩',
validate: '验证',
convert: '转义',
outputResult: '输出结果',
validJosn: 'JSON格式正确验证通过',
BaiduSearchTool_desc: '搜索引擎服务',
BaiduSearchTool_features: '集成百度搜索API提供网页搜索、新闻搜索等功能',
webSearch: '网页搜索',
newsSearch: '新闻搜索',
imageSearch: '图片搜索',
realTimeResults: '实时结果',
configStatus: '配置状态',
hasApiKey: 'API 已配置并启用',
needApiKey: '需要配置API Key',
MinerUTool_desc: 'PDF解析工具',
MinerUTool_features: '高精度PDF文档解析工具支持文字、表格、图片提取',
pdfParser: 'PDF解析',
tableExtraction: '表格提取',
imageRecognition: '图片识别',
textExtraction: '文本提取',
TextInTool_desc: 'OCR文字识别',
TextInTool_features: '智能OCR文字识别服务支持多语言、手写体识别',
universalOCR: '通用OCR',
handwritingRecognition: '手写识别',
multilingualSupport: '多语言支持',
highPrecisionRecognition: '高精度识别',
configDesc: '配置说明',
BaiduSearchTool_config_desc: '使用百度搜索API需要先在百度开放平台申请API Key和Secret Key。',
MinerUTool_config_desc: 'MinerU是高精度PDF文档解析工具需要API Key才能使用。',
TextInTool_config_desc: 'TextIn提供智能OCR文字识别服务支持多语言识别。',
link: '申请地址',
api_key: 'API Key',
BaiduSearchTool_api_key_desc: '从百度开放平台获取的API Key',
MinerUTool_api_key_desc: '从MinerU平台获取的API Key',
secret_key: 'Secret Key',
BaiduSearchTool_secret_key_desc: '从百度开放平台获取的Secret Key',
TextInTool_secret_key_desc: '从TextIn平台获取的Secret Key',
type: '搜索类型',
pagesize: '每页结果数',
pagesize_desc: '每次搜索返回的结果数量({{count1}}-{{count2}}',
BaiduSearchTool_enable: '启用百度搜索',
BaiduSearchTool_safe_enable: '启用安全搜索',
BaiduSearchTool_safe_enable_desc: '过滤不适宜内容',
api_address: 'API地址',
MinerUTool_api_address_desc: '默认使用官方API地址如有私有部署可修改',
TextInTool_api_address_desc: '默认使用官方API地址',
parsing_mode: '解析模式',
auto_recognition: '自动识别',
pure_text_mode: '纯文本模式',
table_priority: '表格优先',
image_priority: '图片优先',
MinerUTool_timeout_desc: 'PDF解析超时时间10-300秒',
MinerUTool_enable: '启用MinerU',
MinerUTool_extract_images_enable: '提取图片',
MinerUTool_extract_images_enable_desc: '是否提取PDF中的图片内容',
app_id: 'APP ID',
TextInTool_app_id_desc: '从TextIn平台获取的App ID',
language_identification: '识别语言',
automatic_detection: '自动检测',
simplified_chinese: '简体中文',
traditional_chinese: '繁体中文',
english: '英文',
japanese: '日文',
korean_language: '韩文',
pattern_recognition: '识别模式',
universal_identification: '通用识别',
high_precision_identification: '高精度识别',
handwriting_recognition: '手写体识别',
formula_recognition: '公式识别',
TextInTool_enable: '启用TextIn',
return_text_position_enable: '返回文本位置信息',
return_text_position_enable_desc: '是否返回识别文字的坐标位置',
addCustom: '添加自定义工具',
editCustom: '编辑自定义工具',
schema: 'Schema',
schemaPlaceholder: '在此处输入您的 OpenAPI schema',
authentication: '鉴权方式',
tag: '标签',
created_at: '创建时间',
headerName: 'Header 名称',
null: '无',
tagDesc: '多个标签用逗号分隔',
availableTools: '可用工具',
name: '名称',
desc: '描述',
method: '方法',
path: '路径',
viewDetail: '查看详情'
},
workflow: {
coreNode: '核心节点',
start: '开始Start',
end: '结束End',
answer: '回复Answer',
aiAndCognitiveProcessing: 'AI与认知处理',
llm: '大语言模型 (LLM)',
model_selection: '多模型选择',
model_voting: '多模型投票',
rag: '知识检索 (RAG)',
classification: '智能分类',
parameter_extraction: '参数提取',
flowControl: '流程控制',
condition: '条件分支',
iteration: '迭代 (Iteration)',
loop: '循环 (Loop)',
parallel: '并行执行',
aggregator: '聚合器',
externalInteraction: '外部交互',
http_request: 'HTTP请求',
tools: '工具 (Tools)',
code_execution: '代码执行',
template_rendering: '模板渲染',
cognitiveUpgrading: '认知升级(创新)',
task_planning: '任务规划',
reasoning_control: '推理控制',
self_reflection: '自我反思',
memory_enhancement: '记忆增强',
agentCollaborationNode: 'Agent 协作节点',
agent_scheduling: 'Agent 调度',
agent_collaboration: 'Agent 协同',
agent_arbitration: 'Agent 仲裁',
safetyAndCompliance: '安全与合规',
sensitive_detection: '敏感识别',
output_audit: '输出审计',
evolutionAndGovernance: '演化与治理',
self_optimization: '自我优化',
process_evolution: '流程演化',
clickToConfigure: '点击配置节点参数',
nodeProperties: '节点属性',
empty: "Emmm…盒子是空的这里什么都没有",
nodeName: '节点名称',
config: {
llm: {
model_id: '模型',
temperature: '温度',
max_tokens: '最大令牌数',
},
start: {
variables: '输入字段',
string: '文本',
number: '数字',
boolean: '复选框',
array: '下拉选项',
object: '对象',
addVariable: '添加变量',
editVariable: '编辑变量',
variableType: '变量类型',
variableName: '变量名称',
description: '显示名称',
default: '默认值',
required: '必填',
max_length: '最大长度',
defaultChecked: '选中',
notDefaultChecked: '不选中',
options: '选项',
},
end: {
output: '回复'
}
},
clear: '清空',
run: '运行',
save: '保存',
export: '导出',
variableConfig: '变量配置',
variableRequired: '必填',
},
emotionEngine: {
emotionEngineConfig: '情感引擎配置',
emotion_enabled: '启用情感引擎',
emotion_enabled_desc: '自动分析对话中的情感倾向',
emotion_model_id: '情感分析模型',
emotion_model_id_desc: '不同模型在准确度和速度上有所差异',
emotion_extract_keywords: '情绪关键词提取',
emotion_extract_keywords_subTitle: '自动提取对话中的情绪相关关键词',
emotion_extract_keywords_desc: '提取如"开心"、"失望"、"期待"等情绪关键词,帮助更好地理解用户情绪',
emotion_min_intensity: '置信度阈值',
emotion_min_intensity_desc: '置信度越高,识别越准确,但可能遗漏部分信息',
emotion_enable_subject: '情绪主体分类 ',
emotion_enable_subject_subTitle: '识别情绪归属(自己/他人/物体)',
emotion_enable_subject_desc: '区分情绪主体: self (我感到开心)、other (他很生气)、object (这个产品很棒)',
currentValue: '当前值',
emotion_min_intensity_description: '置信度阈值说明',
question: '什么是置信度阈值?',
answer: '置信度阈值是情感引擎判断情绪时的"确定程度"标准。当 AI 分析出的情感置信度低于设定阈值时,该情感将不会被记录。',
differentTitle: '不同阈值的影响',
advantage: '优点',
shortcoming: '缺点',
scene: '适用场景',
low_title: '低阈值 (0.0 - 0.4)',
low_tag: '灵敏',
low_advantage: '能捕捉到更多细微的情感变化,不会遗漏潜在的情绪信号',
low_shortcoming: '可能产生误判,将中性或不明确的表达识别为特定情感',
low_scene: '需要全面了解用户情绪波动,对准确度要求不高的场景',
middle_title: '中阈值 (0.5 - 0.7)',
middle_tag: '推荐',
middle_advantage: '平衡准确度和覆盖率,既能识别明显情感,也不会过度敏感',
middle_shortcoming: '可能遗漏一些不太明显的情感表达',
middle_scene: '大多数日常对话场景,适合一般性情感分析需求',
high_title: '高阈值 (0.8 - 1.0)',
high_tag: '精准',
high_advantage: '只记录非常明确的情感表达,准确度极高,误判率低',
high_shortcoming: '会遗漏大量不够明显的情感信息,数据覆盖率低',
high_scene: '对准确度要求极高的场景,如情感危机预警、重要决策参考',
configSuggest: '配置建议',
first: '初次使用',
first_desc: '建议从中等阈值0.6-0.7)开始,观察一段时间后根据实际效果调整',
customer_service: '客服场景',
customer_service_desc: '建议使用较低阈值0.4-0.6),及时捕捉用户的不满情绪',
data_analysis: '数据分析',
data_analysis_desc: '建议使用中等阈值0.6-0.7),保证数据质量的同时有足够样本量',
risk_warning: '风险预警',
risk_warning_desc: '建议使用较高阈值0.7-0.8),确保预警的准确性',
actual_case: '实际案例',
user_input: '用户输入',
user_input_message: '"这个功能还行吧,不过有点小问题"',
neutral_emotion: '中性情感',
neutral_emotion_tag: '所有阈值都会记录',
minor_dissatisfaction: '轻微不满',
minor_dissatisfaction_tag: '仅低/中阈值会记录',
expect_improvement: '期待改进',
expect_improvement_tag: '仅低阈值会记录',
confidence: '置信度'
},
emotionDetail: {
wordCloud: '情感分布分析',
pieces: '条',
emotionTags: '高频情绪关键词',
joy: '喜悦',
anger: '愤怒',
sadness: '悲伤',
fear: '恐惧',
neutral: '中性',
surprise: '惊讶',
health: '情绪健康指数',
positivity_rate: '积极率',
stability: '稳定性',
resilience: '恢复力',
suggestions: '个性化建议',
},
reflectionEngine: {
reflectionEngineConfig: '反思引擎配置',
reflection_enabled: '启用反思引擎',
reflection_enabled_desc: '将情节记忆转化为语义记忆,形成长期认知',
reflection_model_id: '反思模型',
reflection_model_id_desc: '不同模型在准确度和速度上有所差异',
reflection_period_in_hours: '迭代周期',
reflection_period_in_hours_desc: '决定系统多久进行一次记忆反思和提炼',
reflexion_range: '反思范围',
partial: '部分反思 (仅新增记忆)',
all: '全部反思 (所有历史记忆)',
reflexion_range_desc: '',
baseline: '反思基线',
baseline_desc: '',
TIME: '基于时间(时序关系)',
FACT: '基于事实(知识点)',
HYBRID: '事实+时间(综合维度)',
quality_assessment: '启用质量评估',
quality_assessment_desc: '自动评估记忆的准确性、完整性和时效性',
memory_verify: '启用记忆审核',
memory_verify_desc: '检测敏感信息并过滤违规内容',
oneHour: '每1个小时',
threeHours: '每3个小时',
sixHours: '每6个小时',
twelveHours: '每12个小时',
daily: '每天',
run: '运行调试',
example: '原始数据',
exampleText: '我是 2023 年春天去北京工作的后来基本一直都在北京上班也没怎么换过城市。不过后来公司调整2024 年上半年我被调到上海待了差不多半年,那段时间每天都是在上海办公室打卡。当时入职资料用的还是我之前的身份信息,身份证号是 11010119950308123X银行卡是 6222023847595898这些一直没变。对了其实我 从 2023 年开始就一直在北京生活,从来没有长期离开过北京,上海那段更多算是远程配合',
runTitle: '反思试运行',
status: '状态',
message: '消息',
conflictDetection: '冲突检测',
reason: '冲突原因',
solution: '解决方案',
qualityAssessment: '质量评估',
qualityAssessmentObj: {
score: '质量评分',
summary: '评估摘要',
},
privacyAudit: '隐私审核',
privacyAuditObj: {
true: '是',
false: '否',
has_privacy: '包含隐私信息',
privacy_types: '隐私类型',
summary: '审核摘要',
}
}
},
}