FEAT: NEW WORKFLOW ENGINE (#3160)
Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Yeuoly <admin@srmxy.cn> Co-authored-by: JzoNg <jzongcode@gmail.com> Co-authored-by: StyleZhang <jasonapring2015@outlook.com> Co-authored-by: jyong <jyong@dify.ai> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: jyong <718720800@qq.com>
This commit is contained in:
parent
2fb9850af5
commit
7753ba2d37
1161 changed files with 103836 additions and 10327 deletions
|
|
@ -266,18 +266,32 @@ const translation = {
|
|||
queryNoBeEmpty: 'Query must be set in the prompt',
|
||||
},
|
||||
variableConig: {
|
||||
modalTitle: 'Field settings',
|
||||
description: 'Setting for variable {{varName}}',
|
||||
fieldType: 'Field type',
|
||||
string: 'Short Text',
|
||||
paragraph: 'Paragraph',
|
||||
select: 'Select',
|
||||
notSet: 'Not set, try typing {{input}} in the prefix prompt',
|
||||
stringTitle: 'Form text box options',
|
||||
maxLength: 'Max length',
|
||||
options: 'Options',
|
||||
addOption: 'Add option',
|
||||
apiBasedVar: 'API-based Variable',
|
||||
'addModalTitle': 'Add Input Field',
|
||||
'editModalTitle': 'Edit Input Field',
|
||||
'description': 'Setting for variable {{varName}}',
|
||||
'fieldType': 'Field type',
|
||||
'string': 'Short Text',
|
||||
'text-input': 'Short Text',
|
||||
'paragraph': 'Paragraph',
|
||||
'select': 'Select',
|
||||
'number': 'Number',
|
||||
'notSet': 'Not set, try typing {{input}} in the prefix prompt',
|
||||
'stringTitle': 'Form text box options',
|
||||
'maxLength': 'Max length',
|
||||
'options': 'Options',
|
||||
'addOption': 'Add option',
|
||||
'apiBasedVar': 'API-based Variable',
|
||||
'varName': 'Variable Name',
|
||||
'labelName': 'Label Name',
|
||||
'inputPlaceholder': 'Please input',
|
||||
'required': 'Required',
|
||||
'errorMsg': {
|
||||
varNameRequired: 'Variable name is required',
|
||||
labelNameRequired: 'Label name is required',
|
||||
varNameCanBeRepeat: 'Variable name can not be repeated',
|
||||
atLeastOneOption: 'At least one option is required',
|
||||
optionRepeat: 'Has repeat options',
|
||||
},
|
||||
},
|
||||
vision: {
|
||||
name: 'Vision',
|
||||
|
|
@ -348,6 +362,7 @@ const translation = {
|
|||
result: 'Output Text',
|
||||
datasetConfig: {
|
||||
settingTitle: 'Retrieval settings',
|
||||
knowledgeTip: 'Click the “+” button to add knowledge',
|
||||
retrieveOneWay: {
|
||||
title: 'N-to-1 retrieval',
|
||||
description: 'Based on user intent and Knowledge descriptions, the Agent autonomously selects the best Knowledge for querying. Best for applications with distinct, limited Knowledge.',
|
||||
|
|
|
|||
|
|
@ -12,6 +12,12 @@ const translation = {
|
|||
messageCount: 'Message Count',
|
||||
userRate: 'User Rate',
|
||||
adminRate: 'Op. Rate',
|
||||
startTime: 'START TIME',
|
||||
status: 'STATUS',
|
||||
runtime: 'RUN TIME',
|
||||
tokens: 'TOKENS',
|
||||
user: 'END-USER',
|
||||
version: 'VERSION',
|
||||
},
|
||||
pagination: {
|
||||
previous: 'Prev',
|
||||
|
|
@ -64,6 +70,14 @@ const translation = {
|
|||
not_annotated: 'Not Annotated',
|
||||
},
|
||||
},
|
||||
workflowTitle: 'Workflow Logs',
|
||||
workflowSubtitle: 'The log recorded the operation of Automate.',
|
||||
runDetail: {
|
||||
title: 'Conversation Log',
|
||||
workflowTitle: 'Log Detail',
|
||||
},
|
||||
promptLog: 'Prompt Log',
|
||||
viewLog: 'View Log',
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
|
|||
|
|
@ -121,6 +121,10 @@ const translation = {
|
|||
title: 'Avg. Session Interactions',
|
||||
explanation: 'Continuous user-AI communication count; for conversation-based apps.',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: 'Avg. User Interactions',
|
||||
explanation: 'Reflects the daily usage frequency of users. This metric reflects user stickiness.',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: 'User Satisfaction Rate',
|
||||
explanation: 'The number of likes per 1,000 messages. This indicates the proportion of answers that users are highly satisfied with.',
|
||||
|
|
|
|||
|
|
@ -1,15 +1,18 @@
|
|||
const translation = {
|
||||
createApp: 'Create new App',
|
||||
createApp: 'CREATE APP',
|
||||
types: {
|
||||
all: 'All',
|
||||
assistant: 'Assistant',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agent',
|
||||
workflow: 'Workflow',
|
||||
completion: 'Completion',
|
||||
},
|
||||
modes: {
|
||||
completion: 'Text Generator',
|
||||
chat: 'Basic Assistant',
|
||||
},
|
||||
createFromConfigFile: 'Create app from config file',
|
||||
duplicate: 'Duplicate',
|
||||
duplicateTitle: 'Duplicate App',
|
||||
export: 'Export DSL',
|
||||
exportFailed: 'Export DSL failed.',
|
||||
importDSL: 'Import DSL file',
|
||||
createFromConfigFile: 'Create from DSL file',
|
||||
deleteAppConfirmTitle: 'Delete this app?',
|
||||
deleteAppConfirmContent:
|
||||
'Deleting the app is irreversible. Users will no longer be able to access your app, and all prompt configurations and logs will be permanently deleted.',
|
||||
|
|
@ -19,11 +22,29 @@ const translation = {
|
|||
communityIntro:
|
||||
'Discuss with team members, contributors and developers on different channels.',
|
||||
roadmap: 'See our roadmap',
|
||||
appNamePlaceholder: 'Please enter the name of the app',
|
||||
newApp: {
|
||||
startToCreate: 'Let\'s start with your new app',
|
||||
captionName: 'App icon & name',
|
||||
startFromBlank: 'Create from Blank',
|
||||
startFromTemplate: 'Create from Template',
|
||||
captionAppType: 'What type of app do you want to create?',
|
||||
chatbotDescription: 'Build a chat-based application. This app uses a question-and-answer format, allowing for multiple rounds of continuous conversation.',
|
||||
completionDescription: 'Build an application that generates high-quality text based on prompts, such as generating articles, summaries, translations, and more.',
|
||||
completionWarning: 'This type of app will no longer be supported.',
|
||||
agentDescription: 'Build an intelligent Agent which can autonomously choose tools to complete the tasks',
|
||||
workflowDescription: 'Build an application that generates high-quality text based on workflow orchestrates with a high degree of customization. It is suitable for experienced users.',
|
||||
workflowWarning: 'Currently in beta',
|
||||
chatbotType: 'Chatbot orchestrate method',
|
||||
basic: 'Basic',
|
||||
basicTip: 'For beginners, can switch to Chatflow later',
|
||||
basicFor: 'FOR BEGINNERS',
|
||||
basicDescription: 'Basic Orchestrate allows for the orchestration of a Chatbot app using simple settings, without the ability to modify built-in prompts. It is suitable for beginners.',
|
||||
advanced: 'Chatflow',
|
||||
advancedFor: 'For advanced users',
|
||||
advancedDescription: 'Workflow Orchestrate orchestrates Chatbots in the form of workflows, offering a high degree of customization, including the ability to edit built-in prompts. It is suitable for experienced users.',
|
||||
captionName: 'App icon & name',
|
||||
appNamePlaceholder: 'Give your app a name',
|
||||
captionDescription: 'Description',
|
||||
appDescriptionPlaceholder: 'Enter the description of the app',
|
||||
useTemplate: 'Use this template',
|
||||
previewDemo: 'Preview demo',
|
||||
chatApp: 'Assistant',
|
||||
chatAppIntro:
|
||||
|
|
@ -42,13 +63,28 @@ const translation = {
|
|||
appCreated: 'App created',
|
||||
appCreateFailed: 'Failed to create app',
|
||||
},
|
||||
editApp: {
|
||||
startToEdit: 'Edit App',
|
||||
},
|
||||
editApp: 'Edit Info',
|
||||
editAppTitle: 'Edit App Info',
|
||||
editDone: 'App info updated',
|
||||
editFailed: 'Failed to update app info',
|
||||
emoji: {
|
||||
ok: 'OK',
|
||||
cancel: 'Cancel',
|
||||
},
|
||||
switch: 'Switch to Workflow Orchestrate',
|
||||
switchTipStart: 'A new app copy will be created for you, and the new copy will switch to Workflow Orchestrate. The new copy will ',
|
||||
switchTip: 'not allow',
|
||||
switchTipEnd: ' switching back to Basic Orchestrate.',
|
||||
switchLabel: 'The app copy to be created',
|
||||
removeOriginal: 'Delete the original app',
|
||||
switchStart: 'Start swtich',
|
||||
typeSelector: {
|
||||
all: 'ALL Types',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agent',
|
||||
workflow: 'Workflow',
|
||||
completion: 'Completion',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
|
|||
|
|
@ -400,6 +400,7 @@ const translation = {
|
|||
promptEng: 'Orchestrate',
|
||||
apiAccess: 'API Access',
|
||||
logAndAnn: 'Logs & Ann.',
|
||||
logs: 'Logs',
|
||||
},
|
||||
environment: {
|
||||
testing: 'TESTING',
|
||||
|
|
@ -477,6 +478,10 @@ const translation = {
|
|||
title: 'Variables & External Tools',
|
||||
desc: 'Insert Variables & External Tools',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: 'Variables',
|
||||
desc: 'Insert Variables',
|
||||
},
|
||||
modal: {
|
||||
add: 'New variable',
|
||||
addTool: 'New tool',
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const translation = {
|
|||
apps: {
|
||||
title: 'Explore Apps by Dify',
|
||||
description: 'Use these template apps instantly or customize your own apps based on the templates.',
|
||||
allCategories: 'All Categories',
|
||||
allCategories: 'Recommended',
|
||||
},
|
||||
appCard: {
|
||||
addToWorkspace: 'Add to Workspace',
|
||||
|
|
|
|||
23
web/i18n/en-US/run-log.ts
Normal file
23
web/i18n/en-US/run-log.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
const translation = {
|
||||
input: 'INPUT',
|
||||
result: 'RESULT',
|
||||
detail: 'DETAIL',
|
||||
tracing: 'TRACING',
|
||||
resultPanel: {
|
||||
status: 'STATUS',
|
||||
time: 'ELAPSED TIME',
|
||||
tokens: 'TOTAL TOKENS',
|
||||
},
|
||||
meta: {
|
||||
title: 'METADATA',
|
||||
status: 'Status',
|
||||
version: 'Version',
|
||||
executor: 'Executor',
|
||||
startTime: 'Start Time',
|
||||
time: 'Elapsed Time',
|
||||
tokens: 'Total Tokens',
|
||||
steps: 'Run Steps',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
333
web/i18n/en-US/workflow.ts
Normal file
333
web/i18n/en-US/workflow.ts
Normal file
|
|
@ -0,0 +1,333 @@
|
|||
const translation = {
|
||||
common: {
|
||||
editing: 'Editing',
|
||||
autoSaved: 'Auto-Saved',
|
||||
unpublished: 'Unpublished',
|
||||
published: 'Published',
|
||||
publish: 'Publish',
|
||||
update: 'Update',
|
||||
run: 'Run',
|
||||
running: 'Running',
|
||||
inRunMode: 'In Run Mode',
|
||||
inPreview: 'In Preview',
|
||||
inPreviewMode: 'In Preview Mode',
|
||||
preview: 'Preview',
|
||||
viewRunHistory: 'View run history',
|
||||
runHistory: 'Run History',
|
||||
goBackToEdit: 'Go back to editor',
|
||||
conversationLog: 'Conversation Log',
|
||||
features: 'Features',
|
||||
debugAndPreview: 'Debug and Preview',
|
||||
restart: 'Restart',
|
||||
currentDraft: 'Current Draft',
|
||||
currentDraftUnpublished: 'Current Draft Unpublished',
|
||||
latestPublished: 'Latest Published',
|
||||
publishedAt: 'Published',
|
||||
restore: 'Restore',
|
||||
runApp: 'Run App',
|
||||
batchRunApp: 'Batch Run App',
|
||||
accessAPIReference: 'Access API Reference',
|
||||
embedIntoSite: 'Embed Into Site',
|
||||
addTitle: 'Add title...',
|
||||
addDescription: 'Add description...',
|
||||
noVar: 'No variable',
|
||||
searchVar: 'Search variable',
|
||||
variableNamePlaceholder: 'Variable name',
|
||||
setVarValuePlaceholder: 'Set variable',
|
||||
needConnecttip: 'This step is not connected to anything',
|
||||
maxTreeDepth: 'Maximum limit of {{depth}} nodes per branch',
|
||||
needEndNode: 'The End block must be added',
|
||||
needAnswerNode: 'The Answer block must be added',
|
||||
workflowProcess: 'Workflow Process',
|
||||
notRunning: 'Not running yet',
|
||||
previewPlaceholder: 'Enter content in the box below to start debugging the Chatbot',
|
||||
effectVarConfirm: {
|
||||
title: 'Remove Variable',
|
||||
content: 'The variable is used in other nodes. Do you still want to remove it?',
|
||||
},
|
||||
insertVarTip: 'Press the \'/\' key to insert quickly',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} is required',
|
||||
authRequired: 'Authorization is required',
|
||||
invalidJson: '{{field}} is invalid JSON',
|
||||
fields: {
|
||||
variable: 'Variable Name',
|
||||
variableValue: 'Variable Value',
|
||||
code: 'Code',
|
||||
model: 'Model',
|
||||
rerankModel: 'Rerank Model',
|
||||
},
|
||||
invalidVariable: 'Invalid variable',
|
||||
},
|
||||
singleRun: {
|
||||
testRun: 'Test Run ',
|
||||
startRun: 'Start Run',
|
||||
running: 'Running',
|
||||
},
|
||||
tabs: {
|
||||
'searchBlock': 'Search block',
|
||||
'blocks': 'Blocks',
|
||||
'builtInTool': 'Built-in Tool',
|
||||
'customTool': 'Custom Tool',
|
||||
'question-understand': 'Question Understand',
|
||||
'logic': 'Logic',
|
||||
'transform': 'Transform',
|
||||
'utilities': 'Utilities',
|
||||
'noResult': 'No match found',
|
||||
},
|
||||
blocks: {
|
||||
'start': 'Start',
|
||||
'end': 'End',
|
||||
'answer': 'Answer',
|
||||
'llm': 'LLM',
|
||||
'knowledge-retrieval': 'Knowledge Retrieval',
|
||||
'question-classifier': 'Question Classifier',
|
||||
'if-else': 'IF/ELSE',
|
||||
'code': 'Code',
|
||||
'template-transform': 'Template',
|
||||
'http-request': 'HTTP Request',
|
||||
'variable-assigner': 'Variable Assigner',
|
||||
},
|
||||
blocksAbout: {
|
||||
'start': 'Define the initial parameters for launching a workflow',
|
||||
'end': 'Define the end and result type of a workflow',
|
||||
'answer': 'Define the reply content of a chat conversation',
|
||||
'llm': 'Invoking large language models to answer questions or process natural language',
|
||||
'knowledge-retrieval': 'Allows you to query text content related to user questions from the Knowledge',
|
||||
'question-classifier': 'Define the classification conditions of user questions, LLM can define how the conversation progresses based on the classification description',
|
||||
'if-else': 'Allows you to split the workflow into two branches based on if/else conditions',
|
||||
'code': 'Execute a piece of Python or NodeJS code to implement custom logic',
|
||||
'template-transform': 'Convert data to string using Jinja template syntax',
|
||||
'http-request': 'Allow server requests to be sent over the HTTP protocol',
|
||||
'variable-assigner': 'Assign variables in different branches to the same variable to achieve unified configuration of post-nodes',
|
||||
},
|
||||
operator: {
|
||||
zoomIn: 'Zoom In',
|
||||
zoomOut: 'Zoom Out',
|
||||
zoomTo50: 'Zoom to 50%',
|
||||
zoomTo100: 'Zoom to 100%',
|
||||
zoomToFit: 'Zoom to Fit',
|
||||
},
|
||||
panel: {
|
||||
userInputField: 'User Input Field',
|
||||
changeBlock: 'Change Block',
|
||||
helpLink: 'Help Link',
|
||||
about: 'About',
|
||||
createdBy: 'Created By ',
|
||||
nextStep: 'Next Step',
|
||||
addNextStep: 'Add the next block in this workflow',
|
||||
selectNextStep: 'Select Next Block',
|
||||
runThisStep: 'Run this step',
|
||||
checklist: 'Checklist',
|
||||
checklistTip: 'Make sure all issues are resolved before publishing',
|
||||
checklistResolved: 'All issues are resolved',
|
||||
organizeBlocks: 'Organize blocks',
|
||||
change: 'Change',
|
||||
},
|
||||
nodes: {
|
||||
common: {
|
||||
outputVars: 'Output Variables',
|
||||
insertVarTip: 'Insert Variable',
|
||||
memory: {
|
||||
memory: 'Memory',
|
||||
memoryTip: 'Chat memory settings',
|
||||
windowSize: 'Window Size',
|
||||
conversationRoleName: 'Conversation Role Name',
|
||||
user: 'User prefix',
|
||||
assistant: 'Assistant prefix',
|
||||
},
|
||||
memories: {
|
||||
title: 'Memories',
|
||||
tip: 'Chat memory',
|
||||
builtIn: 'Built-in',
|
||||
},
|
||||
},
|
||||
start: {
|
||||
required: 'required',
|
||||
inputField: 'Input Field',
|
||||
builtInVar: 'Built-in Variables',
|
||||
outputVars: {
|
||||
query: 'User input',
|
||||
memories: {
|
||||
des: 'Conversation history',
|
||||
type: 'message type',
|
||||
content: 'message content',
|
||||
},
|
||||
files: 'File list',
|
||||
},
|
||||
noVarTip: 'Set inputs that can be used in the Workflow',
|
||||
},
|
||||
end: {
|
||||
outputs: 'Outputs',
|
||||
output: {
|
||||
type: 'output type',
|
||||
variable: 'output variable',
|
||||
},
|
||||
type: {
|
||||
'none': 'None',
|
||||
'plain-text': 'Plain Text',
|
||||
'structured': 'Structured',
|
||||
},
|
||||
},
|
||||
answer: {
|
||||
answer: 'Answer',
|
||||
outputVars: 'Output Variables',
|
||||
},
|
||||
llm: {
|
||||
model: 'model',
|
||||
variables: 'variables',
|
||||
context: 'context',
|
||||
contextTooltip: 'You can import Knowledge as context',
|
||||
notSetContextInPromptTip: 'To enable the context feature, please fill in the context variable in PROMPT.',
|
||||
prompt: 'prompt',
|
||||
roleDescription: {
|
||||
system: 'Give high level instructions for the conversation',
|
||||
user: 'Provide instructions, queries, or any text-based input to the model',
|
||||
assistant: 'The model’s responses based on the user messages',
|
||||
},
|
||||
addMessage: 'Add Message',
|
||||
vision: 'vision',
|
||||
files: 'Files',
|
||||
resolution: {
|
||||
name: 'Resolution',
|
||||
high: 'High',
|
||||
low: 'Low',
|
||||
},
|
||||
outputVars: {
|
||||
output: 'Generate content',
|
||||
usage: 'Model Usage Information',
|
||||
},
|
||||
singleRun: {
|
||||
variable: 'Variable',
|
||||
},
|
||||
},
|
||||
knowledgeRetrieval: {
|
||||
queryVariable: 'Query Variable',
|
||||
knowledge: 'Knowledge',
|
||||
outputVars: {
|
||||
output: 'Retrieval segmented data',
|
||||
content: 'Segmented content',
|
||||
title: 'Segmented title',
|
||||
icon: 'Segmented icon',
|
||||
url: 'Segmented URL',
|
||||
metadata: 'Other metadata',
|
||||
},
|
||||
},
|
||||
http: {
|
||||
inputVars: 'Input Variables',
|
||||
api: 'API',
|
||||
apiPlaceholder: 'Enter URL, type ‘/’ insert variable',
|
||||
notStartWithHttp: 'API should start with http:// or https://',
|
||||
key: 'Key',
|
||||
value: 'Value',
|
||||
bulkEdit: 'Bulk Edit',
|
||||
keyValueEdit: 'Key-Value Edit',
|
||||
headers: 'Headers',
|
||||
params: 'Params',
|
||||
body: 'Body',
|
||||
outputVars: {
|
||||
body: 'Response Content',
|
||||
statusCode: 'Response Status Code',
|
||||
headers: 'Response Header List JSON',
|
||||
files: 'Files List',
|
||||
},
|
||||
authorization: {
|
||||
'authorization': 'Authorization',
|
||||
'authorizationType': 'Authorization Type',
|
||||
'no-auth': 'None',
|
||||
'api-key': 'API-Key',
|
||||
'auth-type': 'Auth Type',
|
||||
'basic': 'Basic',
|
||||
'bearer': 'Bearer',
|
||||
'custom': 'Custom',
|
||||
'api-key-title': 'API Key',
|
||||
'header': 'Header',
|
||||
},
|
||||
insertVarPlaceholder: 'type \'/\' to insert variable',
|
||||
},
|
||||
code: {
|
||||
inputVars: 'Input Variables',
|
||||
outputVars: 'Output Variables',
|
||||
},
|
||||
templateTransform: {
|
||||
inputVars: 'Input Variables',
|
||||
code: 'Code',
|
||||
codeSupportTip: 'Only supports Jinja2',
|
||||
outputVars: {
|
||||
output: 'Transformed content',
|
||||
},
|
||||
},
|
||||
ifElse: {
|
||||
if: 'If',
|
||||
else: 'Else',
|
||||
elseDescription: 'Used to define the logic that should be executed when the if condition is not met.',
|
||||
and: 'and',
|
||||
or: 'or',
|
||||
operator: 'Operator',
|
||||
notSetVariable: 'Please set variable first',
|
||||
comparisonOperator: {
|
||||
'contains': 'contains',
|
||||
'not contains': 'not contains',
|
||||
'start with': 'start with',
|
||||
'end with': 'end with',
|
||||
'is': 'is',
|
||||
'is not': 'is not',
|
||||
'empty': 'is empty',
|
||||
'not empty': 'is not empty',
|
||||
'null': 'is null',
|
||||
'not null': 'is not null',
|
||||
},
|
||||
enterValue: 'Enter value',
|
||||
addCondition: 'Add Condition',
|
||||
conditionNotSetup: 'Condition NOT setup',
|
||||
},
|
||||
variableAssigner: {
|
||||
title: 'Assign variables',
|
||||
outputType: 'Output Type',
|
||||
outputVarType: 'Output Variable Type',
|
||||
varNotSet: 'Variable not set',
|
||||
noVarTip: 'Add the variables to be assigned',
|
||||
type: {
|
||||
string: 'String',
|
||||
number: 'Number',
|
||||
object: 'Object',
|
||||
array: 'Array',
|
||||
},
|
||||
outputVars: {
|
||||
output: 'Assigned variable value',
|
||||
},
|
||||
},
|
||||
tool: {
|
||||
toAuthorize: 'To authorize',
|
||||
inputVars: 'Input Variables',
|
||||
outputVars: {
|
||||
text: 'tool generated content',
|
||||
files: {
|
||||
title: 'tool generated files',
|
||||
type: 'Support type. Now only support image',
|
||||
transfer_method: 'Transfer method.Value is remote_url or local_file',
|
||||
url: 'Image url',
|
||||
upload_file_id: 'Upload file id',
|
||||
},
|
||||
},
|
||||
},
|
||||
questionClassifiers: {
|
||||
model: 'model',
|
||||
inputVars: 'Input Variables',
|
||||
class: 'Class',
|
||||
classNamePlaceholder: 'Write your class name',
|
||||
advancedSetting: 'Advanced Setting',
|
||||
topicName: 'Topic Name',
|
||||
topicPlaceholder: 'Write your topic name',
|
||||
addClass: 'Add Class',
|
||||
instruction: 'Instruction',
|
||||
instructionPlaceholder: 'Write your instruction',
|
||||
},
|
||||
},
|
||||
tracing: {
|
||||
stopBy: 'Stop by {{user}}',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
5
web/i18n/fr-FR/run-log.ts
Normal file
5
web/i18n/fr-FR/run-log.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
const translation = {
|
||||
|
||||
}
|
||||
|
||||
export default translation
|
||||
3
web/i18n/fr-FR/workflow.ts
Normal file
3
web/i18n/fr-FR/workflow.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
const translation = {}
|
||||
|
||||
export default translation
|
||||
|
|
@ -26,6 +26,8 @@ const loadLangResources = (lang: string) => ({
|
|||
billing: require(`./${lang}/billing`).default,
|
||||
custom: require(`./${lang}/custom`).default,
|
||||
tools: require(`./${lang}/tools`).default,
|
||||
workflow: require(`./${lang}/workflow`).default,
|
||||
runLog: require(`./${lang}/run-log`).default,
|
||||
},
|
||||
})
|
||||
|
||||
|
|
|
|||
5
web/i18n/ja-JP/run-log.ts
Normal file
5
web/i18n/ja-JP/run-log.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
const translation = {
|
||||
|
||||
}
|
||||
|
||||
export default translation
|
||||
5
web/i18n/ja-JP/workflow.ts
Normal file
5
web/i18n/ja-JP/workflow.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
const translation = {
|
||||
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
@ -266,18 +266,19 @@ const translation = {
|
|||
queryNoBeEmpty: 'A consulta deve ser definida na solicitação',
|
||||
},
|
||||
variableConig: {
|
||||
modalTitle: 'Configurações do Campo',
|
||||
description: 'Configuração para a variável {{varName}}',
|
||||
fieldType: 'Tipo de Campo',
|
||||
string: 'Texto Curto',
|
||||
paragraph: 'Parágrafo',
|
||||
select: 'Selecionar',
|
||||
notSet: 'Não definido, tente digitar {{input}} na solicitação',
|
||||
stringTitle: 'Opções da Caixa de Texto do Formulário',
|
||||
maxLength: 'Comprimento Máximo',
|
||||
options: 'Opções',
|
||||
addOption: 'Adicionar opção',
|
||||
apiBasedVar: 'Variável Baseada em API',
|
||||
'addModalTitle': 'Configurações do Campo',
|
||||
'description': 'Configuração para a variável {{varName}}',
|
||||
'fieldType': 'Tipo de Campo',
|
||||
'string': 'Texto Curto',
|
||||
'text-input': 'Texto Curto',
|
||||
'paragraph': 'Parágrafo',
|
||||
'select': 'Selecionar',
|
||||
'notSet': 'Não definido, tente digitar {{input}} na solicitação',
|
||||
'stringTitle': 'Opções da Caixa de Texto do Formulário',
|
||||
'maxLength': 'Comprimento Máximo',
|
||||
'options': 'Opções',
|
||||
'addOption': 'Adicionar opção',
|
||||
'apiBasedVar': 'Variável Baseada em API',
|
||||
},
|
||||
vision: {
|
||||
name: 'Visão',
|
||||
|
|
|
|||
|
|
@ -1,10 +1,16 @@
|
|||
const translation = {
|
||||
createApp: 'Criar novo aplicativo',
|
||||
modes: {
|
||||
createApp: 'Criar aplicativo',
|
||||
types: {
|
||||
all: 'Tudo',
|
||||
chatbot: 'Chatbot',
|
||||
agent: 'Agente',
|
||||
workflow: 'Fluxo de trabalho',
|
||||
completion: 'Gerador de Texto',
|
||||
chat: 'Aplicativo de Chat',
|
||||
},
|
||||
createFromConfigFile: 'Criar aplicativo a partir do arquivo de configuração',
|
||||
duplicate: 'Duplicar',
|
||||
duplicateTitle: 'Duplicate aplicativo',
|
||||
export: 'Exportar DSL',
|
||||
createFromConfigFile: 'Criar através do arquivo DSL',
|
||||
deleteAppConfirmTitle: 'Excluir este aplicativo?',
|
||||
deleteAppConfirmContent:
|
||||
'A exclusão do aplicativo é irreversível. Os usuários não poderão mais acessar seu aplicativo e todas as configurações de prompt e logs serão excluídas permanentemente.',
|
||||
|
|
@ -14,13 +20,20 @@ const translation = {
|
|||
communityIntro:
|
||||
'Discuta com membros da equipe, colaboradores e desenvolvedores em diferentes canais.',
|
||||
roadmap: 'Veja nosso roteiro',
|
||||
appNamePlaceholder: 'Por favor, digite o nome do aplicativo',
|
||||
newApp: {
|
||||
startToCreate: 'Vamos começar com o seu novo aplicativo',
|
||||
captionName: 'Dê um nome ao seu aplicativo',
|
||||
startFromBlank: 'Começar de um aplicativo em branco',
|
||||
startFromTemplate: 'Começar a partir de um modelo',
|
||||
captionAppType: 'Que tipo de aplicativo você deseja?',
|
||||
chatbotDescription: 'Construir um assistente baseado em chat usando um Modelo de Linguagem de Grande Escala',
|
||||
agentDescription: 'Construir um Agente inteligente que pode escolher autonomamente ferramentas para completar as tarefas',
|
||||
workflowDescription: 'Description text here',
|
||||
captionName: 'Dê um nome ao seu aplicativo',
|
||||
appNamePlaceholder: 'Dê um nome ao seu aplicativo',
|
||||
captionDescription: 'Descrição',
|
||||
appDescriptionPlaceholder: 'Enter the description of the app',
|
||||
useTemplate: 'Insira a descrição do aplicativo',
|
||||
previewDemo: 'Visualizar demonstração',
|
||||
chatApp: 'Aplicativo de Chat',
|
||||
chatApp: 'Usar este modelo',
|
||||
chatAppIntro:
|
||||
'Quero construir um aplicativo baseado em chat. Este aplicativo usa um formato de pergunta e resposta, permitindo várias rodadas de conversa contínua.',
|
||||
agentAssistant: 'Assistente de novo agente',
|
||||
|
|
|
|||
|
|
@ -400,6 +400,7 @@ const translation = {
|
|||
promptEng: 'Orquestrar',
|
||||
apiAccess: 'Acesso à API',
|
||||
logAndAnn: 'Logs e Anúncios',
|
||||
logs: 'Logs',
|
||||
},
|
||||
environment: {
|
||||
testing: 'TESTE',
|
||||
|
|
|
|||
11
web/i18n/pt-BR/run-log.ts
Normal file
11
web/i18n/pt-BR/run-log.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
const translation = {
|
||||
result: 'RESULT',
|
||||
tracing: 'TRACING',
|
||||
resultPanel: {
|
||||
status: 'STATUS',
|
||||
time: 'ELAPSED TIME',
|
||||
tokens: 'TOTAL TOKENS',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
91
web/i18n/pt-BR/workflow.ts
Normal file
91
web/i18n/pt-BR/workflow.ts
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
const translation = {
|
||||
nodes: {
|
||||
common: {
|
||||
outputVars: 'Output Variables',
|
||||
insertVarTip: 'Insert Variable',
|
||||
},
|
||||
start: {
|
||||
required: 'required',
|
||||
inputField: 'Input Field',
|
||||
builtInVar: 'Built-in Variables',
|
||||
outputVars: {
|
||||
query: 'User input',
|
||||
memories: {
|
||||
des: 'Conversation history',
|
||||
type: 'message type',
|
||||
content: 'message content',
|
||||
},
|
||||
files: 'File list',
|
||||
},
|
||||
},
|
||||
end: {
|
||||
outputs: 'Outputs',
|
||||
type: {
|
||||
'none': 'None',
|
||||
'plain-text': 'Plain Text',
|
||||
'structured': 'Structured',
|
||||
},
|
||||
},
|
||||
answer: {
|
||||
answer: 'Answer',
|
||||
inputVars: 'Input Variables',
|
||||
},
|
||||
llm: {
|
||||
model: 'model',
|
||||
variables: 'variables',
|
||||
context: 'context',
|
||||
prompt: 'prompt',
|
||||
vision: 'vision',
|
||||
outputVars: {
|
||||
output: 'Generate content',
|
||||
usage: 'Model Usage Information',
|
||||
},
|
||||
},
|
||||
http: {
|
||||
inputVars: 'Input Variables',
|
||||
api: 'API',
|
||||
headers: 'Headers',
|
||||
params: 'Params',
|
||||
body: 'Body',
|
||||
outputVars: {
|
||||
body: 'Response Content',
|
||||
statusCode: 'Response Status Code',
|
||||
headers: 'Response Header List JSON',
|
||||
},
|
||||
},
|
||||
code: {
|
||||
inputVars: 'Input Variables',
|
||||
outputVars: 'Output Variables',
|
||||
},
|
||||
templateTransform: {
|
||||
inputVars: 'Input Variables',
|
||||
code: 'Code',
|
||||
codeSupportTip: 'Only supports Jinja2',
|
||||
outputVars: {
|
||||
output: 'Transformed content',
|
||||
},
|
||||
},
|
||||
ifElse: {
|
||||
conditions: 'Conditions',
|
||||
and: 'and',
|
||||
or: 'or',
|
||||
comparisonOperator: {
|
||||
'contains': 'contains',
|
||||
'not contains': 'not contains',
|
||||
'start with': 'start with',
|
||||
'end with': 'end with',
|
||||
'is': 'is',
|
||||
'is not': 'is not',
|
||||
'empty': 'empty',
|
||||
'not empty': 'not empty',
|
||||
'null': 'is null',
|
||||
'not null': 'is not null',
|
||||
},
|
||||
},
|
||||
variableAssigner: {
|
||||
title: 'Assign variables',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
@ -260,18 +260,19 @@ const translation = {
|
|||
queryNoBeEmpty: 'Запит має бути встановлений у підказці', // Query must be set in the prompt
|
||||
},
|
||||
variableConig: {
|
||||
modalTitle: 'Налаштування поля', // Field settings
|
||||
description: 'Налаштування для змінної {{varName}}', // Setting for variable {{varName}}
|
||||
fieldType: 'Тип поля', // Field type
|
||||
string: 'Короткий текст', // Short Text
|
||||
paragraph: 'Абзац', // Paragraph
|
||||
select: 'Вибрати', // Select
|
||||
notSet: 'Не налаштовано, спробуйте ввести {{input}} у префіксну підказку', // Not set, try typing {{input}} in the prefix prompt
|
||||
stringTitle: 'Опції текстового поля форми', // Form text box options
|
||||
maxLength: 'Максимальна довжина', // Max length
|
||||
options: 'Опції', // Options
|
||||
addOption: 'Додати опцію', // Add option
|
||||
apiBasedVar: 'Змінна на основі API', // API-based Variable
|
||||
'addModalTitle': 'Налаштування поля', // Field settings
|
||||
'description': 'Налаштування для змінної {{varName}}', // Setting for variable {{varName}}
|
||||
'fieldType': 'Тип поля', // Field type
|
||||
'string': 'Короткий текст', // Short Text
|
||||
'text-input': 'Короткий текст', // Short Text
|
||||
'paragraph': 'Абзац', // Paragraph
|
||||
'select': 'Вибрати', // Select
|
||||
'notSet': 'Не налаштовано, спробуйте ввести {{input}} у префіксну підказку', // Not set, try typing {{input}} in the prefix prompt
|
||||
'stringTitle': 'Опції текстового поля форми', // Form text box options
|
||||
'maxLength': 'Максимальна довжина', // Max length
|
||||
'options': 'Опції', // Options
|
||||
'addOption': 'Додати опцію', // Add option
|
||||
'apiBasedVar': 'Змінна на основі API', // API-based Variable
|
||||
},
|
||||
vision: {
|
||||
name: 'Зображення', // Vision
|
||||
|
|
|
|||
|
|
@ -1,15 +1,16 @@
|
|||
const translation = { // Add the Ukrainian translation object
|
||||
createApp: 'Створити новий додаток',
|
||||
createApp: 'Створити додаток',
|
||||
types: {
|
||||
all: 'Всі',
|
||||
assistant: 'Асистент',
|
||||
all: 'Все',
|
||||
chatbot: 'Чатбот',
|
||||
agent: 'Агент',
|
||||
workflow: 'Робочий Процес',
|
||||
completion: 'Автодоповнення',
|
||||
},
|
||||
modes: {
|
||||
completion: 'Генератор тексту',
|
||||
chat: 'Базовий асистент',
|
||||
},
|
||||
createFromConfigFile: 'Створити додаток з файла конфігурації',
|
||||
duplicate: 'Дублювати',
|
||||
duplicateTitle: 'Дублювати додаток',
|
||||
export: 'Експортувати DSL',
|
||||
createFromConfigFile: 'Створити через файл DSL',
|
||||
deleteAppConfirmTitle: 'Видалити цей додаток?',
|
||||
deleteAppConfirmContent:
|
||||
'Видалення додатка є незворотнім. Користувачі більше не матимуть доступ до вашого додатка, всі конфігурації підказок та журнали будуть видалені назавжди.',
|
||||
|
|
@ -19,11 +20,18 @@ const translation = { // Add the Ukrainian translation object
|
|||
communityIntro:
|
||||
'Обговорюйте різні питання з членами команди, учасниками та розробниками на різних каналах.',
|
||||
roadmap: 'Ознайомтеся з нашою дорожньою картою',
|
||||
appNamePlaceholder: 'Будь ласка, введіть назву додатка',
|
||||
newApp: {
|
||||
startToCreate: 'Давайте створимо Ваш новий додаток',
|
||||
captionName: 'Значок та назва додатка',
|
||||
startFromBlank: 'Розпочати з порожнього додатку',
|
||||
startFromTemplate: 'Розпочати з шаблону',
|
||||
captionAppType: 'Який тип додатка Ви бажаєте створити?',
|
||||
chatbotDescription: 'Побудувати чат-асистента, використовуючи Модель Великої Мови',
|
||||
agentDescription: 'Побудувати розумного Агента, який може автономно обирати інструменти для виконання завдань',
|
||||
workflowDescription: 'Description text here',
|
||||
captionName: 'Значок та назва додатка',
|
||||
appNamePlaceholder: 'Назвіть свій додаток',
|
||||
captionDescription: 'Опис',
|
||||
appDescriptionPlaceholder: 'Введіть опис додатку',
|
||||
useTemplate: 'Використати цей шаблон',
|
||||
previewDemo: 'Попередній перегляд демо',
|
||||
chatApp: 'Асистент',
|
||||
chatAppIntro:
|
||||
|
|
|
|||
|
|
@ -400,6 +400,7 @@ const translation = {
|
|||
promptEng: 'Налаштування',
|
||||
apiAccess: 'Доступ до API',
|
||||
logAndAnn: 'Журнали та Повідомлення.',
|
||||
logs: 'Журнали',
|
||||
},
|
||||
environment: {
|
||||
testing: 'ТЕСТУВАННЯ',
|
||||
|
|
|
|||
11
web/i18n/uk-UA/run-log.ts
Normal file
11
web/i18n/uk-UA/run-log.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
const translation = {
|
||||
result: 'RESULT',
|
||||
tracing: 'TRACING',
|
||||
resultPanel: {
|
||||
status: 'STATUS',
|
||||
time: 'ELAPSED TIME',
|
||||
tokens: 'TOTAL TOKENS',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
91
web/i18n/uk-UA/workflow.ts
Normal file
91
web/i18n/uk-UA/workflow.ts
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
const translation = {
|
||||
nodes: {
|
||||
common: {
|
||||
outputVars: 'Output Variables',
|
||||
insertVarTip: 'Insert Variable',
|
||||
},
|
||||
start: {
|
||||
required: 'required',
|
||||
inputField: 'Input Field',
|
||||
builtInVar: 'Built-in Variables',
|
||||
outputVars: {
|
||||
query: 'User input',
|
||||
memories: {
|
||||
des: 'Conversation history',
|
||||
type: 'message type',
|
||||
content: 'message content',
|
||||
},
|
||||
files: 'File list',
|
||||
},
|
||||
},
|
||||
end: {
|
||||
outputs: 'Outputs',
|
||||
type: {
|
||||
'none': 'None',
|
||||
'plain-text': 'Plain Text',
|
||||
'structured': 'Structured',
|
||||
},
|
||||
},
|
||||
answer: {
|
||||
answer: 'Answer',
|
||||
inputVars: 'Input Variables',
|
||||
},
|
||||
llm: {
|
||||
model: 'model',
|
||||
variables: 'variables',
|
||||
context: 'context',
|
||||
prompt: 'prompt',
|
||||
vision: 'vision',
|
||||
outputVars: {
|
||||
output: 'Generate content',
|
||||
usage: 'Model Usage Information',
|
||||
},
|
||||
},
|
||||
http: {
|
||||
inputVars: 'Input Variables',
|
||||
api: 'API',
|
||||
headers: 'Headers',
|
||||
params: 'Params',
|
||||
body: 'Body',
|
||||
outputVars: {
|
||||
body: 'Response Content',
|
||||
statusCode: 'Response Status Code',
|
||||
headers: 'Response Header List JSON',
|
||||
},
|
||||
},
|
||||
code: {
|
||||
inputVars: 'Input Variables',
|
||||
outputVars: 'Output Variables',
|
||||
},
|
||||
templateTransform: {
|
||||
inputVars: 'Input Variables',
|
||||
code: 'Code',
|
||||
codeSupportTip: 'Only supports Jinja2',
|
||||
outputVars: {
|
||||
output: 'Transformed content',
|
||||
},
|
||||
},
|
||||
ifElse: {
|
||||
conditions: 'Conditions',
|
||||
and: 'and',
|
||||
or: 'or',
|
||||
comparisonOperator: {
|
||||
'contains': 'contains',
|
||||
'not contains': 'not contains',
|
||||
'start with': 'start with',
|
||||
'end with': 'end with',
|
||||
'is': 'is',
|
||||
'is not': 'is not',
|
||||
'empty': 'empty',
|
||||
'not empty': 'not empty',
|
||||
'null': 'is null',
|
||||
'not null': 'is not null',
|
||||
},
|
||||
},
|
||||
variableAssigner: {
|
||||
title: 'Assign variables',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
5
web/i18n/vi-VN/run-log.ts
Normal file
5
web/i18n/vi-VN/run-log.ts
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
const translation = {
|
||||
|
||||
}
|
||||
|
||||
export default translation
|
||||
3
web/i18n/vi-VN/workflow.ts
Normal file
3
web/i18n/vi-VN/workflow.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
const translation = {}
|
||||
|
||||
export default translation
|
||||
|
|
@ -262,18 +262,32 @@ const translation = {
|
|||
queryNoBeEmpty: '提示词中必须设置查询内容',
|
||||
},
|
||||
variableConig: {
|
||||
modalTitle: '变量设置',
|
||||
description: '设置变量 {{varName}}',
|
||||
fieldType: '字段类型',
|
||||
string: '文本',
|
||||
paragraph: '段落',
|
||||
select: '下拉选项',
|
||||
notSet: '未设置,在 Prompt 中输入 {{input}} 试试',
|
||||
stringTitle: '文本框设置',
|
||||
maxLength: '最大长度',
|
||||
options: '选项',
|
||||
addOption: '添加选项',
|
||||
apiBasedVar: '基于 API 的变量',
|
||||
'addModalTitle': '添加变量',
|
||||
'editModalTitle': '编辑变量',
|
||||
'description': '设置变量 {{varName}}',
|
||||
'fieldType': '字段类型',
|
||||
'string': '文本',
|
||||
'text-input': '文本',
|
||||
'paragraph': '段落',
|
||||
'select': '下拉选项',
|
||||
'number': '数字',
|
||||
'notSet': '未设置,在 Prompt 中输入 {{input}} 试试',
|
||||
'stringTitle': '文本框设置',
|
||||
'maxLength': '最大长度',
|
||||
'options': '选项',
|
||||
'addOption': '添加选项',
|
||||
'apiBasedVar': '基于 API 的变量',
|
||||
'varName': '变量名称',
|
||||
'inputPlaceholder': '请输入',
|
||||
'labelName': '显示名称',
|
||||
'required': '必填',
|
||||
'errorMsg': {
|
||||
varNameRequired: '变量名称必填',
|
||||
labelNameRequired: '显示名称必填',
|
||||
varNameCanBeRepeat: '变量名称不能重复',
|
||||
atLeastOneOption: '至少需要一个选项',
|
||||
optionRepeat: '选项不能重复',
|
||||
},
|
||||
},
|
||||
vision: {
|
||||
name: '视觉',
|
||||
|
|
@ -342,6 +356,7 @@ const translation = {
|
|||
result: '结果',
|
||||
datasetConfig: {
|
||||
settingTitle: '召回设置',
|
||||
knowledgeTip: '点击 “+” 按钮添加知识库',
|
||||
retrieveOneWay: {
|
||||
title: 'N选1召回',
|
||||
description: '根据用户意图和知识库描述,由 Agent 自主判断选择最匹配的单个知识库来查询相关文本,适合知识库区分度大且知识库数量偏少的应用。',
|
||||
|
|
|
|||
|
|
@ -12,6 +12,12 @@ const translation = {
|
|||
messageCount: '消息数',
|
||||
userRate: '用户反馈',
|
||||
adminRate: '管理员反馈',
|
||||
startTime: '开始时间',
|
||||
status: '状态',
|
||||
runtime: '运行时间',
|
||||
tokens: 'TOKENS',
|
||||
user: '用户',
|
||||
version: '版本',
|
||||
},
|
||||
pagination: {
|
||||
previous: '上一页',
|
||||
|
|
@ -64,6 +70,14 @@ const translation = {
|
|||
not_annotated: '未标注',
|
||||
},
|
||||
},
|
||||
workflowTitle: '日志',
|
||||
workflowSubtitle: '日志记录了应用的执行情况',
|
||||
runDetail: {
|
||||
title: '对话日志',
|
||||
workflowTitle: '日志详情',
|
||||
},
|
||||
promptLog: 'Prompt 日志',
|
||||
viewLog: '查看日志',
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
|
|||
|
|
@ -121,6 +121,10 @@ const translation = {
|
|||
title: '平均会话互动数',
|
||||
explanation: '反应每个会话用户的持续沟通次数,如果用户与 AI 问答了 10 轮,即为 10。该指标反映了用户粘性。仅在对话型应用提供。',
|
||||
},
|
||||
avgUserInteractions: {
|
||||
title: '平均用户调用次数',
|
||||
explanation: '反应每天用户的使用次数。该指标反映了用户粘性。',
|
||||
},
|
||||
userSatisfactionRate: {
|
||||
title: '用户满意度',
|
||||
explanation: '每 1000 条消息的点赞数。反应了用户对回答十分满意的比例。',
|
||||
|
|
|
|||
|
|
@ -2,14 +2,17 @@ const translation = {
|
|||
createApp: '创建应用',
|
||||
types: {
|
||||
all: '全部',
|
||||
assistant: '助手',
|
||||
chatbot: '聊天助手',
|
||||
agent: 'Agent',
|
||||
workflow: '工作流',
|
||||
completion: '文本生成',
|
||||
},
|
||||
modes: {
|
||||
completion: '文本生成型',
|
||||
chat: '基础助手',
|
||||
},
|
||||
createFromConfigFile: '通过导入应用配置文件创建',
|
||||
duplicate: '复制',
|
||||
duplicateTitle: '复制应用',
|
||||
export: '导出 DSL',
|
||||
exportFailed: '导出 DSL 失败',
|
||||
importDSL: '导入 DSL 文件',
|
||||
createFromConfigFile: '通过 DSL 文件创建',
|
||||
deleteAppConfirmTitle: '确认删除应用?',
|
||||
deleteAppConfirmContent:
|
||||
'删除应用将无法撤销。用户将不能访问你的应用,所有 Prompt 编排配置和日志均将一并被删除。',
|
||||
|
|
@ -18,11 +21,29 @@ const translation = {
|
|||
join: '参与社区',
|
||||
communityIntro: '与团队成员、贡献者和开发者在不同频道中交流',
|
||||
roadmap: '产品路线图',
|
||||
appNamePlaceholder: '请输入应用名称',
|
||||
newApp: {
|
||||
startToCreate: '开始创建一个新应用',
|
||||
captionName: '图标 & 名称',
|
||||
startFromBlank: '创建空白应用',
|
||||
startFromTemplate: '从应用模版创建',
|
||||
captionAppType: '想要哪种应用类型?',
|
||||
chatbotDescription: '使用大型语言模型构建基于聊天的助手',
|
||||
completionDescription: '构建一个根据提示生成高质量文本的应用程序,例如生成文章、摘要、翻译等。',
|
||||
completionWarning: '该类型不久后将不再支持创建',
|
||||
agentDescription: '构建一个智能Agent,可以自主选择工具来完成任务',
|
||||
workflowDescription: '以工作流的形式编排生成型应用,提供更多的自定义能力。 它适合有经验的用户。',
|
||||
workflowWarning: '正在进行 Beta 测试',
|
||||
chatbotType: '聊天助手编排方法',
|
||||
basic: '基础编排',
|
||||
basicTip: '新手适用,可以切换成工作流编排',
|
||||
basicFor: '新手适用',
|
||||
basicDescription: '基本编排允许使用简单的设置编排聊天机器人应用程序,而无需修改内置提示。 它适合初学者。',
|
||||
advanced: '工作流编排',
|
||||
advancedFor: '进阶用户适用',
|
||||
advancedDescription: '工作流编排以工作流的形式编排聊天机器人,提供高度的自定义,包括编辑内置提示的能力。 它适合有经验的用户。',
|
||||
captionName: '图标 & 名称',
|
||||
appNamePlaceholder: '给你的应用起个名字',
|
||||
captionDescription: '描述',
|
||||
appDescriptionPlaceholder: '输入应用的描述',
|
||||
useTemplate: '使用该模板',
|
||||
previewDemo: '预览 Demo',
|
||||
chatApp: '助手',
|
||||
chatAppIntro:
|
||||
|
|
@ -41,13 +62,28 @@ const translation = {
|
|||
appCreated: '应用已创建',
|
||||
appCreateFailed: '应用创建失败',
|
||||
},
|
||||
editApp: {
|
||||
startToEdit: '编辑应用',
|
||||
},
|
||||
editApp: '编辑信息',
|
||||
editAppTitle: '编辑应用信息',
|
||||
editDone: '应用信息已更新',
|
||||
editFailed: '更新应用信息失败',
|
||||
emoji: {
|
||||
ok: '确认',
|
||||
cancel: '取消',
|
||||
},
|
||||
switch: '迁移为工作流编排',
|
||||
switchTipStart: '将为您创建一个使用工作流编排的新应用。新应用将',
|
||||
switchTip: '不能够',
|
||||
switchTipEnd: '迁移回基础编排',
|
||||
switchLabel: '新应用创建为',
|
||||
removeOriginal: '删除原应用',
|
||||
switchStart: '开始迁移',
|
||||
typeSelector: {
|
||||
all: '所有类型',
|
||||
chatbot: '聊天助手',
|
||||
agent: 'Agent',
|
||||
workflow: '工作流',
|
||||
completion: '文本生成',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
|
|
|||
|
|
@ -400,6 +400,7 @@ const translation = {
|
|||
promptEng: '编排',
|
||||
apiAccess: '访问 API',
|
||||
logAndAnn: '日志与标注',
|
||||
logs: '日志',
|
||||
},
|
||||
environment: {
|
||||
testing: '测试环境',
|
||||
|
|
@ -477,6 +478,10 @@ const translation = {
|
|||
title: '变量 & 外部工具',
|
||||
desc: '插入变量和外部工具',
|
||||
},
|
||||
outputToolDisabledItem: {
|
||||
title: '变量',
|
||||
desc: '插入变量',
|
||||
},
|
||||
modal: {
|
||||
add: '添加新变量',
|
||||
addTool: '添加工具',
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ const translation = {
|
|||
apps: {
|
||||
title: '探索 Dify 的应用',
|
||||
description: '使用这些模板应用程序,或根据模板自定义您自己的应用程序。',
|
||||
allCategories: '所有类别',
|
||||
allCategories: '推荐',
|
||||
},
|
||||
appCard: {
|
||||
addToWorkspace: '添加到工作区',
|
||||
|
|
|
|||
23
web/i18n/zh-Hans/run-log.ts
Normal file
23
web/i18n/zh-Hans/run-log.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
const translation = {
|
||||
input: '输入',
|
||||
result: '结果',
|
||||
detail: '详情',
|
||||
tracing: '追踪',
|
||||
resultPanel: {
|
||||
status: '状态',
|
||||
time: '运行时间',
|
||||
tokens: '总 token 数',
|
||||
},
|
||||
meta: {
|
||||
title: '元数据',
|
||||
status: '状态',
|
||||
version: '版本',
|
||||
executor: '执行人',
|
||||
startTime: '开始时间',
|
||||
time: '运行时间',
|
||||
tokens: '总 token 数',
|
||||
steps: '运行步数',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
333
web/i18n/zh-Hans/workflow.ts
Normal file
333
web/i18n/zh-Hans/workflow.ts
Normal file
|
|
@ -0,0 +1,333 @@
|
|||
const translation = {
|
||||
common: {
|
||||
editing: '编辑中',
|
||||
autoSaved: '自动保存',
|
||||
unpublished: '未发布',
|
||||
published: '已发布',
|
||||
publish: '发布',
|
||||
update: '更新',
|
||||
run: '运行',
|
||||
running: '运行中',
|
||||
inRunMode: '在运行模式中',
|
||||
inPreview: '预览中',
|
||||
inPreviewMode: '预览中',
|
||||
preview: '预览',
|
||||
viewRunHistory: '查看运行历史',
|
||||
runHistory: '运行历史',
|
||||
goBackToEdit: '返回编辑模式',
|
||||
conversationLog: '对话记录',
|
||||
features: '功能',
|
||||
debugAndPreview: '调试和预览',
|
||||
restart: '重新开始',
|
||||
currentDraft: '当前草稿',
|
||||
currentDraftUnpublished: '当前草稿未发布',
|
||||
latestPublished: '最新发布',
|
||||
publishedAt: '发布于',
|
||||
restore: '恢复',
|
||||
runApp: '运行',
|
||||
batchRunApp: '批量运行',
|
||||
accessAPIReference: '访问 API',
|
||||
embedIntoSite: '嵌入网站',
|
||||
addTitle: '添加标题...',
|
||||
addDescription: '添加描述...',
|
||||
noVar: '没有变量',
|
||||
variableNamePlaceholder: '变量名',
|
||||
searchVar: '搜索变量',
|
||||
setVarValuePlaceholder: '设置变量值',
|
||||
needConnecttip: '此节点尚未连接到其他节点',
|
||||
maxTreeDepth: '每个分支最大限制 {{depth}} 个节点',
|
||||
needEndNode: '必须添加结束节点',
|
||||
needAnswerNode: '必须添加直接回复节点',
|
||||
workflowProcess: '工作流',
|
||||
notRunning: '尚未运行',
|
||||
previewPlaceholder: '在下面的框中输入内容开始调试聊天机器人',
|
||||
effectVarConfirm: {
|
||||
title: '移除变量',
|
||||
content: '该变量在其他节点中使用。您是否仍要删除它?',
|
||||
},
|
||||
insertVarTip: '按 \'/\' 键快速插入',
|
||||
},
|
||||
errorMsg: {
|
||||
fieldRequired: '{{field}} 不能为空',
|
||||
authRequired: '请先授权',
|
||||
invalidJson: '{{field}} 是非法的 JSON',
|
||||
fields: {
|
||||
variable: '变量名',
|
||||
variableValue: '变量值',
|
||||
code: '代码',
|
||||
model: '模型',
|
||||
rerankModel: 'Rerank 模型',
|
||||
},
|
||||
invalidVariable: '无效的变量',
|
||||
},
|
||||
singleRun: {
|
||||
testRun: '测试运行 ',
|
||||
startRun: '开始运行',
|
||||
running: '运行中',
|
||||
},
|
||||
tabs: {
|
||||
'searchBlock': '搜索节点',
|
||||
'blocks': '节点',
|
||||
'builtInTool': '内置工具',
|
||||
'customTool': '自定义工具',
|
||||
'question-understand': '问题理解',
|
||||
'logic': '逻辑',
|
||||
'transform': '转换',
|
||||
'utilities': '工具',
|
||||
'noResult': '未找到匹配项',
|
||||
},
|
||||
blocks: {
|
||||
'start': '开始',
|
||||
'end': '结束',
|
||||
'answer': '直接回复',
|
||||
'llm': 'LLM',
|
||||
'knowledge-retrieval': '知识检索',
|
||||
'question-classifier': '问题分类器',
|
||||
'if-else': '条件分支',
|
||||
'code': '代码执行',
|
||||
'template-transform': '模板转换',
|
||||
'http-request': 'HTTP 请求',
|
||||
'variable-assigner': '变量赋值',
|
||||
},
|
||||
blocksAbout: {
|
||||
'start': '定义一个 workflow 流程启动的初始参数',
|
||||
'end': '定义一个 workflow 流程的结束和结果类型',
|
||||
'answer': '定义一个聊天对话的回复内容',
|
||||
'llm': '调用大语言模型回答问题或者对自然语言进行处理',
|
||||
'knowledge-retrieval': '允许你从知识库中查询与用户问题相关的文本内容',
|
||||
'question-classifier': '定义用户问题的分类条件,LLM 能够根据分类描述定义对话的进展方式',
|
||||
'if-else': '允许你根据 if/else 条件将 workflow 拆分成两个分支',
|
||||
'code': '执行一段 Python 或 NodeJS 代码实现自定义逻辑',
|
||||
'template-transform': '使用 Jinja 模板语法将数据转换为字符串',
|
||||
'http-request': '允许通过 HTTP 协议发送服务器请求',
|
||||
'variable-assigner': '将不同分支中的变量指派给同一个变量,以实现后置节点统一配置',
|
||||
},
|
||||
operator: {
|
||||
zoomIn: '放大',
|
||||
zoomOut: '缩小',
|
||||
zoomTo50: '缩放到 50%',
|
||||
zoomTo100: '放大到 100%',
|
||||
zoomToFit: '自适应视图',
|
||||
},
|
||||
panel: {
|
||||
userInputField: '用户输入字段',
|
||||
changeBlock: '更改节点',
|
||||
helpLink: '帮助链接',
|
||||
about: '关于',
|
||||
createdBy: '作者',
|
||||
nextStep: '下一步',
|
||||
addNextStep: '添加此工作流程中的下一个节点',
|
||||
selectNextStep: '选择下一个节点',
|
||||
runThisStep: '运行此步骤',
|
||||
checklist: '检查清单',
|
||||
checklistTip: '发布前确保所有问题均已解决',
|
||||
checklistResolved: '所有问题均已解决',
|
||||
organizeBlocks: '整理节点',
|
||||
change: '更改',
|
||||
},
|
||||
nodes: {
|
||||
common: {
|
||||
outputVars: '输出变量',
|
||||
insertVarTip: '插入变量',
|
||||
memory: {
|
||||
memory: '记忆',
|
||||
memoryTip: '聊天记忆设置',
|
||||
windowSize: '记忆窗口',
|
||||
conversationRoleName: '对话角色名',
|
||||
user: '用户前缀',
|
||||
assistant: '助手前缀',
|
||||
},
|
||||
memories: {
|
||||
title: '记忆',
|
||||
tip: '聊天记忆',
|
||||
builtIn: '内置',
|
||||
},
|
||||
},
|
||||
start: {
|
||||
required: '必填',
|
||||
inputField: '输入字段',
|
||||
builtInVar: '内置变量',
|
||||
outputVars: {
|
||||
query: '用户输入',
|
||||
memories: {
|
||||
des: '会话历史',
|
||||
type: '消息类型',
|
||||
content: '消息内容',
|
||||
},
|
||||
files: '文件列表',
|
||||
},
|
||||
noVarTip: '设置的输入可在工作流程中使用',
|
||||
},
|
||||
end: {
|
||||
outputs: '输出',
|
||||
output: {
|
||||
type: '输出类型',
|
||||
variable: '输出变量',
|
||||
},
|
||||
type: {
|
||||
'none': '无',
|
||||
'plain-text': '纯文本',
|
||||
'structured': '结构化',
|
||||
},
|
||||
},
|
||||
answer: {
|
||||
answer: '回复',
|
||||
outputVars: '输出变量',
|
||||
},
|
||||
llm: {
|
||||
model: '模型',
|
||||
variables: '变量',
|
||||
context: '上下文',
|
||||
contextTooltip: '您可以导入知识库作为上下文',
|
||||
notSetContextInPromptTip: '要启用上下文功能,请在提示中填写上下文变量。',
|
||||
prompt: '提示词',
|
||||
addMessage: '添加消息',
|
||||
roleDescription: {
|
||||
system: '为对话提供高层指导',
|
||||
user: '向模型提供指令、查询或任何基于文本的输入',
|
||||
assistant: '基于用户消息的模型回复',
|
||||
},
|
||||
vision: '视觉',
|
||||
files: '文件',
|
||||
resolution: {
|
||||
name: '分辨率',
|
||||
high: '高',
|
||||
low: '低',
|
||||
},
|
||||
outputVars: {
|
||||
output: '生成内容',
|
||||
usage: '模型用量信息',
|
||||
},
|
||||
singleRun: {
|
||||
variable: '变量',
|
||||
},
|
||||
},
|
||||
knowledgeRetrieval: {
|
||||
queryVariable: '查询变量',
|
||||
knowledge: '知识库',
|
||||
outputVars: {
|
||||
output: '召回的分段',
|
||||
content: '分段内容',
|
||||
title: '分段标题',
|
||||
icon: '分段图标',
|
||||
url: '分段链接',
|
||||
metadata: '其他元数据',
|
||||
},
|
||||
},
|
||||
http: {
|
||||
inputVars: '输入变量',
|
||||
api: 'API',
|
||||
apiPlaceholder: '输入 URL,输入变量时请键入‘/’',
|
||||
notStartWithHttp: 'API 应该以 http:// 或 https:// 开头',
|
||||
key: '键',
|
||||
value: '值',
|
||||
bulkEdit: '批量编辑',
|
||||
keyValueEdit: '键值编辑',
|
||||
headers: 'Headers',
|
||||
params: 'Params',
|
||||
body: 'Body',
|
||||
outputVars: {
|
||||
body: '响应内容',
|
||||
statusCode: '响应状态码',
|
||||
headers: '响应头列表 JSON',
|
||||
files: '文件列表',
|
||||
},
|
||||
authorization: {
|
||||
'authorization': '鉴权',
|
||||
'authorizationType': '鉴权类型',
|
||||
'no-auth': '无',
|
||||
'api-key': 'API-Key',
|
||||
'auth-type': 'API 鉴权类型',
|
||||
'basic': '基础',
|
||||
'bearer': 'Bearer',
|
||||
'custom': '自定义',
|
||||
'api-key-title': 'API Key',
|
||||
'header': 'Header',
|
||||
},
|
||||
insertVarPlaceholder: '键入 \'/\' 键快速插入变量',
|
||||
},
|
||||
code: {
|
||||
inputVars: '输入变量',
|
||||
outputVars: '输出变量',
|
||||
},
|
||||
templateTransform: {
|
||||
inputVars: '输入变量',
|
||||
code: '代码',
|
||||
codeSupportTip: '只支持 Jinja2',
|
||||
outputVars: {
|
||||
output: '转换后内容',
|
||||
},
|
||||
},
|
||||
ifElse: {
|
||||
if: 'If',
|
||||
else: 'Else',
|
||||
elseDescription: '用于定义当 if 条件不满足时应执行的逻辑。',
|
||||
and: 'and',
|
||||
or: 'or',
|
||||
operator: '操作符',
|
||||
notSetVariable: '请先设置变量',
|
||||
comparisonOperator: {
|
||||
'contains': '包含',
|
||||
'not contains': '不包含',
|
||||
'start with': '开始是',
|
||||
'end with': '结束是',
|
||||
'is': '是',
|
||||
'is not': '不是',
|
||||
'empty': '为空',
|
||||
'not empty': '不为空',
|
||||
'null': '空',
|
||||
'not null': '不为空',
|
||||
},
|
||||
enterValue: '输入值',
|
||||
addCondition: '添加条件',
|
||||
conditionNotSetup: '条件未设置',
|
||||
},
|
||||
variableAssigner: {
|
||||
title: '变量赋值',
|
||||
outputType: '输出类型',
|
||||
outputVarType: '输出变量类型',
|
||||
varNotSet: '未设置变量',
|
||||
noVarTip: '添加需要赋值的变量',
|
||||
type: {
|
||||
string: 'String',
|
||||
number: 'Number',
|
||||
object: 'Object',
|
||||
array: 'Array',
|
||||
},
|
||||
outputVars: {
|
||||
output: '指派的变量值',
|
||||
},
|
||||
},
|
||||
tool: {
|
||||
toAuthorize: '授权',
|
||||
inputVars: '输入变量',
|
||||
outputVars: {
|
||||
text: '工具生成的内容',
|
||||
files: {
|
||||
title: '工具生成的文件',
|
||||
type: '支持类型。现在只支持图片',
|
||||
transfer_method: '传输方式。值为 remote_url 或 local_file',
|
||||
url: '图片链接',
|
||||
upload_file_id: '上传文件ID',
|
||||
},
|
||||
},
|
||||
},
|
||||
questionClassifiers: {
|
||||
model: '模型',
|
||||
inputVars: '输入变量',
|
||||
class: '分类',
|
||||
classNamePlaceholder: '输入你的分类名称',
|
||||
advancedSetting: '高级设置',
|
||||
topicName: '主题内容',
|
||||
topicPlaceholder: '在这里输入你的主题内容',
|
||||
addClass: '添加分类',
|
||||
instruction: '指令',
|
||||
instructionPlaceholder: '在这里输入你的指令',
|
||||
},
|
||||
},
|
||||
tracing: {
|
||||
stopBy: '由{{user}}终止',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
Loading…
Add table
Add a link
Reference in a new issue