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',
}
}
},
};