Feat/attachments (#9526)

Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: JzoNg <jzongcode@gmail.com>
This commit is contained in:
zxhlyh 2024-10-21 10:32:37 +08:00 • committed by GitHub
commit 7a1d6fe509
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
445 changed files with 11759 additions and 6922 deletions

View file

@ -68,17 +68,17 @@ const translation = {
},
speechToText: {
title: 'Speech to Text',
description: 'Once enabled, you can use voice input.',
description: 'Voice input can be used in chat.',
resDes: 'Voice input is enabled',
},
textToSpeech: {
title: 'Text to Speech',
description: 'Once enabled, text can be converted to speech.',
description: 'Conversation messages can be converted to speech.',
resDes: 'Text to Audio is enabled',
},
citation: {
title: 'Citations and Attributions',
description: 'Once enabled, show source document and attributed section of the generated content.',
description: 'Show source document and attributed section of the generated content.',
resDes: 'Citations and Attributions is enabled',
},
annotation: {
@ -163,9 +163,10 @@ const translation = {
moderation: {
title: 'Content moderation',
description: 'Secure model output by using moderation API or maintaining a sensitive word list.',
allEnabled: 'INPUT/OUTPUT Content Enabled',
inputEnabled: 'INPUT Content Enabled',
outputEnabled: 'OUTPUT Content Enabled',
contentEnableLabel: 'Enabled moderate content',
allEnabled: 'INPUT & OUTPUT',
inputEnabled: 'INPUT',
outputEnabled: 'OUTPUT',
modal: {
title: 'Content moderation settings',
provider: {
@ -198,6 +199,25 @@ const translation = {
},
},
},
fileUpload: {
title: 'File Upload',
description: 'The chat input box allows uploading of images, documents, and other files.',
supportedTypes: 'Support File Types',
numberLimit: 'Max uploads',
modalTitle: 'File Upload Setting',
},
imageUpload: {
title: 'Image Upload',
description: 'Allow uploading images.',
supportedTypes: 'Support File Types',
numberLimit: 'Max uploads',
modalTitle: 'Image Upload Setting',
},
bar: {
empty: 'Enable feature to enhance web app user experience',
enableText: 'Features Enabled',
manage: 'Manage',
},
},
generate: {
title: 'Prompt Generator',
@ -267,6 +287,7 @@ const translation = {
'Please wait for the response to the batch task to complete.',
notSelectModel: 'Please choose a model',
waitForImgUpload: 'Please wait for the image to upload',
waitForFileUpload: 'Please wait for the file/files to upload',
},
warningMessage: {
timeoutExceeded: 'Results are not displayed due to timeout. Please refer to the logs to gather complete results.',
@ -314,6 +335,8 @@ const translation = {
'paragraph': 'Paragraph',
'select': 'Select',
'number': 'Number',
'single-file': 'Single File',
'multi-files': 'File List',
'notSet': 'Not set, try typing {{input}} in the prefix prompt',
'stringTitle': 'Form text box options',
'maxLength': 'Max length',
@ -325,6 +348,31 @@ const translation = {
'inputPlaceholder': 'Please input',
'content': 'Content',
'required': 'Required',
'file': {
supportFileTypes: 'Support File Types',
image: {
name: 'Image',
},
audio: {
name: 'Audio',
},
document: {
name: 'Document',
},
video: {
name: 'Video',
},
custom: {
name: 'Other file types',
description: 'Specify other file types.',
createPlaceholder: '+ File extension, e.g .doc',
},
},
'uploadFileTypes': 'Upload File Types',
'localUpload': 'Local Upload',
'both': 'Both',
'maxNumberOfUploads': 'Max number of uploads',
'maxNumberTip': 'Max {{size}} each',
'errorMsg': {
labelNameRequired: 'Label name is required',
varNameCanBeRepeat: 'Variable name can not be repeated',
@ -335,6 +383,7 @@ const translation = {
vision: {
name: 'Vision',
description: 'Enable Vision will allows the model to take in images and answer questions about them. ',
onlySupportVisionModelTip: 'Only supports vision models',
settings: 'Settings',
visionSettings: {
title: 'Vision Settings',
@ -362,14 +411,14 @@ const translation = {
resolutionTooltip: 'Text-to-speech voice support language。',
voice: 'Voice',
autoPlay: 'Auto Play',
autoPlayEnabled: 'Turn On',
autoPlayDisabled: 'Turn Off',
autoPlayEnabled: 'On',
autoPlayDisabled: 'Off',
},
},
openingStatement: {
title: 'Conversation Opener',
add: 'Add',
writeOpener: 'Write opener',
writeOpener: 'Edit opener',
placeholder: 'Write your opener message here, you can use variables, try type {{variable}}.',
openingQuestion: 'Opening Questions',
noDataPlaceHolder:
@ -388,7 +437,7 @@ const translation = {
},
},
inputs: {
title: 'Debug and Preview',
title: 'Debug & Preview',
noPrompt: 'Try write some prompt in pre-prompt input',
userInputField: 'User Input Field',
noVar: 'Fill in the value of the variable, which will be automatically replaced in the prompt word every time a new session is started.',
@ -402,6 +451,7 @@ const translation = {
run: 'RUN',
},
result: 'Output Text',
noResult: 'Output will be displayed here.',
datasetConfig: {
settingTitle: 'Retrieval settings',
knowledgeTip: 'Click the “+” button to add knowledge',

View file

@ -38,6 +38,10 @@ const translation = {
duplicate: 'Duplicate',
rename: 'Rename',
audioSourceUnavailable: 'AudioSource is unavailable',
copyImage: 'Copy Image',
zoomOut: 'Zoom Out',
zoomIn: 'Zoom In',
openInNewTab: 'Open in new tab',
},
errorMsg: {
fieldRequired: '{{field}} is required',
@ -503,6 +507,7 @@ const translation = {
vectorHash: 'Vector hash:',
hitScore: 'Retrieval Score:',
},
inputPlaceholder: 'Talk to Bot',
},
promptEditor: {
placeholder: 'Write your prompt word here, enter \'{\' to insert a variable, enter \'/\' to insert a prompt content block',
@ -561,6 +566,16 @@ const translation = {
pasteImageLinkInvalid: 'Invalid image link',
imageUpload: 'Image Upload',
},
fileUploader: {
uploadFromComputer: 'Local upload',
pasteFileLink: 'Paste file link',
pasteFileLinkInputPlaceholder: 'Enter URL...',
uploadFromComputerReadError: 'File reading failed, please try again.',
uploadFromComputerUploadError: 'File upload failed, please upload again.',
uploadFromComputerLimit: 'Upload File cannot exceed {{size}}',
pasteFileLinkInvalid: 'Invalid file link',
fileExtensionNotSupport: 'File extension not supported',
},
tag: {
placeholder: 'All Tags',
addNew: 'Add new tag',

View file

@ -119,8 +119,8 @@ const translation = {
thought: {
using: 'Using',
used: 'Used',
requestTitle: 'Request to',
responseTitle: 'Response from',
requestTitle: 'Request',
responseTitle: 'Response',
},
setBuiltInTools: {
info: 'Info',

View file

@ -19,6 +19,10 @@ const translation = {
goBackToEdit: 'Go back to editor',
conversationLog: 'Conversation Log',
features: 'Features',
featuresDescription: 'Enhance web app user experience',
ImageUploadLegacyTip: 'You can now create file type variables in the start form. We will no longer support the image upload feature in the future. ',
fileUploadTip: 'Image upload features have been upgraded to file upload. ',
featuresDocLink: 'Learn more',
debugAndPreview: 'Preview',
restart: 'Restart',
currentDraft: 'Current Draft',
@ -181,6 +185,7 @@ const translation = {
code: 'Code',
model: 'Model',
rerankModel: 'Rerank Model',
visionVariable: 'Vision Variable',
},
invalidVariable: 'Invalid variable',
},
@ -224,6 +229,8 @@ const translation = {
'iteration-start': 'Iteration Start',
'iteration': 'Iteration',
'parameter-extractor': 'Parameter Extractor',
'document-extractor': 'Doc Extractor',
'list-operator': 'List Operator',
},
blocksAbout: {
'start': 'Define the initial parameters for launching a workflow',
@ -241,6 +248,8 @@ const translation = {
'variable-aggregator': 'Aggregate multi-branch variables into a single variable for unified configuration of downstream nodes.',
'iteration': 'Perform multiple steps on a list object until all results are outputted.',
'parameter-extractor': 'Use LLM to extract structured parameters from natural language for tool invocations or HTTP requests.',
'document-extractor': 'Used to parse uploaded documents into text content that is easily understandable by LLM.',
'list-operator': 'Used to filter or sort array content.',
},
operator: {
zoomIn: 'Zoom In',
@ -362,12 +371,14 @@ const translation = {
apiPlaceholder: 'Enter URL, type ‘/’ insert variable',
notStartWithHttp: 'API should start with http:// or https://',
key: 'Key',
type: 'Type',
value: 'Value',
bulkEdit: 'Bulk Edit',
keyValueEdit: 'Key-Value Edit',
headers: 'Headers',
params: 'Params',
body: 'Body',
binaryFileVariable: 'Binary File Variable',
outputVars: {
body: 'Response Content',
statusCode: 'Response Status Code',
@ -431,11 +442,26 @@ const translation = {
'not empty': 'is not empty',
'null': 'is null',
'not null': 'is not null',
'in': 'in',
'not in': 'not in',
'all of': 'all of',
'exists': 'exists',
'not exists': 'not exists',
},
optionName: {
image: 'Image',
doc: 'Doc',
audio: 'Audio',
video: 'Video',
localUpload: 'Local Upload',
url: 'URL',
},
enterValue: 'Enter value',
addCondition: 'Add Condition',
conditionNotSetup: 'Condition NOT setup',
selectVariable: 'Select variable...',
addSubVariable: 'Sub Variable',
select: 'Select',
},
variableAssigner: {
title: 'Assign variables',
@ -550,6 +576,31 @@ const translation = {
showAuthor: 'Show Author',
},
},
docExtractor: {
inputVar: 'Input Variable',
outputVars: {
text: 'Extracted text',
},
supportFileTypes: 'Support file types: {{types}}.',
learnMore: 'Learn more',
},
listFilter: {
inputVar: 'Input Variable',
filterCondition: 'Filter Condition',
filterConditionKey: 'Filter Condition Key',
filterConditionComparisonOperator: 'Filter Condition Comparison Operator',
filterConditionComparisonValue: 'Filter Condition value',
selectVariableKeyPlaceholder: 'Select sub variable key',
limit: 'Top N',
orderBy: 'Order by',
asc: 'ASC',
desc: 'DESC',
outputVars: {
result: 'Filter result',
first_record: 'First record',
last_record: 'Last record',
},
},
},
tracing: {
stopBy: 'Stop by {{user}}',

View file

@ -68,17 +68,17 @@ const translation = {
},
speechToText: {
title: '语音转文字',
description: '启用后,您可以使用语音输入。',
description: '您可以使用语音输入。',
resDes: '语音输入已启用',
},
textToSpeech: {
title: '文字转语音',
description: '启用后,文本可以转换成语音。',
description: '文本可以转换成语音。',
resDes: '文本转音频已启用',
},
citation: {
title: '引用和归属',
description: '启用后,显示源文档和生成内容的归属部分。',
description: '显示源文档和生成内容的归属部分。',
resDes: '引用和归属已启用',
},
annotation: {
@ -163,9 +163,10 @@ const translation = {
moderation: {
title: '内容审查',
description: '您可以调用审查 API 或者维护敏感词库来使模型更安全地输出。',
allEnabled: '审查输入/审查输出 内容已启用',
inputEnabled: '审查输入内容已启用',
outputEnabled: '审查输出内容已启用',
contentEnableLabel: '启用审查内容',
allEnabled: '输入内容和输出内容',
inputEnabled: '输入内容',
outputEnabled: '输出内容',
modal: {
title: '内容审查设置',
provider: {
@ -198,6 +199,25 @@ const translation = {
},
},
},
fileUpload: {
title: '文件上传',
description: '聊天输入框支持上传文件。类型包括图片、文档以及其它类型',
supportedTypes: '支持的文件类型',
numberLimit: '最大上传数',
modalTitle: '文件上传设置',
},
imageUpload: {
title: '图片上传',
description: '支持上传图片',
supportedTypes: '支持的文件类型',
numberLimit: '最大上传数',
modalTitle: '图片上传设置',
},
bar: {
empty: '开启功能增强 webapp 用户体验',
enableText: '功能已开启',
manage: '管理',
},
},
generate: {
title: '提示词生成器',
@ -265,6 +285,7 @@ const translation = {
waitForBatchResponse: '请等待批量任务完成',
notSelectModel: '请选择模型',
waitForImgUpload: '请等待图片上传完成',
waitForFileUpload: '请等待文件上传完成',
},
chatSubTitle: '提示词',
completionSubTitle: '前缀提示词',
@ -308,6 +329,8 @@ const translation = {
'paragraph': '段落',
'select': '下拉选项',
'number': '数字',
'single-file': '单文件',
'multi-files': '文件列表',
'notSet': '未设置,在 Prompt 中输入 {{input}} 试试',
'stringTitle': '文本框设置',
'maxLength': '最大长度',
@ -318,6 +341,31 @@ const translation = {
'inputPlaceholder': '请输入',
'labelName': '显示名称',
'required': '必填',
'file': {
supportFileTypes: '支持的文件类型',
image: {
name: '图片',
},
audio: {
name: '音频',
},
document: {
name: '文档',
},
video: {
name: '视频',
},
custom: {
name: '其他文件类型',
description: '指定其他文件类型',
createPlaceholder: '+ 文件扩展名,例如 .doc',
},
},
'uploadFileTypes': '上传文件类型',
'localUpload': '本地上传',
'both': '两者',
'maxNumberOfUploads': '最大上传数',
'maxNumberTip': '最大上传文件大小为 {{size}}',
'content': '内容',
'errorMsg': {
labelNameRequired: '显示名称必填',
@ -329,6 +377,7 @@ const translation = {
vision: {
name: '视觉',
description: '开启视觉功能将允许模型输入图片,并根据图像内容的理解回答用户问题',
onlySupportVisionModelTip: '只有视觉模型配置视觉功能',
settings: '设置',
visionSettings: {
title: '视觉设置',
@ -394,6 +443,7 @@ const translation = {
run: '运行',
},
result: '结果',
noResult: '输出结果展示在这',
datasetConfig: {
settingTitle: '召回设置',
knowledgeTip: '点击 “+” 按钮添加知识库',

View file

@ -38,6 +38,10 @@ const translation = {
duplicate: '复制',
rename: '重命名',
audioSourceUnavailable: '音源不可用',
copyImage: '复制图片',
zoomOut: '缩小',
zoomIn: '放大',
openInNewTab: '在新标签页打开',
},
errorMsg: {
fieldRequired: '{{field}} 为必填项',
@ -503,6 +507,7 @@ const translation = {
vectorHash: '向量哈希:',
hitScore: '召回得分:',
},
inputPlaceholder: '和机器人聊天',
},
promptEditor: {
placeholder: '在这里写你的提示词,输入\'{\' 插入变量、输入\'/\' 插入提示内容块',
@ -561,6 +566,16 @@ const translation = {
pasteImageLinkInvalid: '图片链接无效',
imageUpload: '图片上传',
},
fileUploader: {
uploadFromComputer: '从本地上传',
pasteFileLink: '粘贴文件链接',
pasteFileLinkInputPlaceholder: '输入文件链接',
uploadFromComputerReadError: '文件读取失败,请重新选择。',
uploadFromComputerUploadError: '文件上传失败,请重新上传。',
uploadFromComputerLimit: '上传文件不能超过 {{size}}',
pasteFileLinkInvalid: '文件链接无效',
fileExtensionNotSupport: '文件类型不支持',
},
tag: {
placeholder: '全部标签',
addNew: '创建新标签',

View file

@ -119,8 +119,8 @@ const translation = {
thought: {
using: '正在使用',
used: '已使用',
requestTitle: '请求来自',
responseTitle: '响应来自',
requestTitle: '请求',
responseTitle: '响应',
},
setBuiltInTools: {
info: '信息',

View file

@ -19,6 +19,10 @@ const translation = {
goBackToEdit: '返回编辑模式',
conversationLog: '对话记录',
features: '功能',
featuresDescription: '增强 web app 用户体验',
ImageUploadLegacyTip: '现在可以在 start 表单中创建文件类型变量。未来我们将不继续支持图片上传功能。',
fileUploadTip: '图片上传功能已扩展为文件上传。',
featuresDocLink: '了解更多',
debugAndPreview: '预览',
restart: '重新开始',
currentDraft: '当前草稿',
@ -181,6 +185,7 @@ const translation = {
code: '代码',
model: '模型',
rerankModel: 'Rerank 模型',
visionVariable: '视觉变量',
},
invalidVariable: '无效的变量',
},
@ -224,6 +229,8 @@ const translation = {
'iteration-start': '迭代开始',
'iteration': '迭代',
'parameter-extractor': '参数提取器',
'document-extractor': '文档提取器',
'list-operator': '列表操作',
},
blocksAbout: {
'start': '定义一个 workflow 流程启动的初始参数',
@ -241,6 +248,8 @@ const translation = {
'variable-aggregator': '将多路分支的变量聚合为一个变量,以实现下游节点统一配置。',
'iteration': '对列表对象执行多次步骤直至输出所有结果。',
'parameter-extractor': '利用 LLM 从自然语言内推理提取出结构化参数,用于后置的工具调用或 HTTP 请求。',
'document-extractor': '用于将用户上传的文档解析为 LLM 便于理解的文本内容。',
'list-operator': '用于过滤或排序数组内容。',
},
operator: {
zoomIn: '放大',
@ -362,12 +371,14 @@ const translation = {
apiPlaceholder: '输入 URL,输入变量时请键入‘/’',
notStartWithHttp: 'API 应该以 http:// 或 https:// 开头',
key: '键',
type: '类型',
value: '值',
bulkEdit: '批量编辑',
keyValueEdit: '键值编辑',
headers: 'Headers',
params: 'Params',
body: 'Body',
binaryFileVariable: 'Binary 文件变量',
outputVars: {
body: '响应内容',
statusCode: '响应状态码',
@ -431,11 +442,26 @@ const translation = {
'not empty': '不为空',
'null': '空',
'not null': '不为空',
'in': '是',
'not in': '不是',
'all of': '全部是',
'exists': '存在',
'not exists': '不存在',
},
optionName: {
image: '图片',
doc: '文档',
audio: '音频',
video: '视频',
localUpload: '本地上传',
url: 'URL',
},
enterValue: '输入值',
addCondition: '添加条件',
conditionNotSetup: '条件未设置',
selectVariable: '选择变量',
addSubVariable: '添加子变量',
select: '选择',
},
variableAssigner: {
title: '变量赋值',
@ -550,6 +576,31 @@ const translation = {
showAuthor: '显示作者',
},
},
docExtractor: {
inputVar: '输入变量',
outputVars: {
text: '提取的文本',
},
supportFileTypes: '支持的文件类型: {{types}}。',
learnMore: '了解更多',
},
listFilter: {
inputVar: '输入变量',
filterCondition: '过滤条件',
filterConditionKey: '过滤条件的 Key',
filterConditionComparisonOperator: '过滤条件比较操作符',
filterConditionComparisonValue: '过滤条件比较值',
selectVariableKeyPlaceholder: '选择子变量的 Key',
limit: '取前 N 项',
orderBy: '排序',
asc: '升序',
desc: '降序',
outputVars: {
result: '过滤结果',
first_record: '第一条记录',
last_record: '最后一条记录',
},
},
},
tracing: {
stopBy: '由{{user}}终止',