feat: knowledge pipeline (#25360)
Signed-off-by: -LAN- <laipz8200@outlook.com> Co-authored-by: twwu <twwu@dify.ai> Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com> Co-authored-by: jyong <718720800@qq.com> Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com> Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com> Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com> Co-authored-by: quicksand <quicksandzn@gmail.com> Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com> Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com> Co-authored-by: zxhlyh <jasonapring2015@outlook.com> Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: nite-knite <nkCoding@gmail.com> Co-authored-by: Hanqing Zhao <sherry9277@gmail.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Harry <xh001x@hotmail.com>
This commit is contained in:
@@ -368,7 +368,7 @@ const translation = {
|
||||
'addModalTitle': 'Add Input Field',
|
||||
'editModalTitle': 'Edit Input Field',
|
||||
'description': 'Setting for variable {{varName}}',
|
||||
'fieldType': 'Field type',
|
||||
'fieldType': 'Field Type',
|
||||
'string': 'Short Text',
|
||||
'text-input': 'Short Text',
|
||||
'paragraph': 'Paragraph',
|
||||
@@ -382,15 +382,27 @@ const translation = {
|
||||
'multi-files': 'File List',
|
||||
'notSet': 'Not set, try typing {{input}} in the prefix prompt',
|
||||
'stringTitle': 'Form text box options',
|
||||
'maxLength': 'Max length',
|
||||
'maxLength': 'Max Length',
|
||||
'options': 'Options',
|
||||
'addOption': 'Add option',
|
||||
'apiBasedVar': 'API-based Variable',
|
||||
'varName': 'Variable Name',
|
||||
'labelName': 'Label Name',
|
||||
'displayName': 'Display Name',
|
||||
'inputPlaceholder': 'Please input',
|
||||
'content': 'Content',
|
||||
'required': 'Required',
|
||||
'placeholder': 'Placeholder',
|
||||
'placeholderPlaceholder': 'Enter text to display when the field is empty',
|
||||
'defaultValue': 'Default Value',
|
||||
'defaultValuePlaceholder': 'Enter default value to pre-populate the field',
|
||||
'unit': 'Unit',
|
||||
'unitPlaceholder': 'Display units after numbers, e.g. tokens',
|
||||
'tooltips': 'Tooltips',
|
||||
'tooltipsPlaceholder': 'Enter helpful text shown when hovering over the label',
|
||||
'showAllSettings': 'Show All Settings',
|
||||
'startSelectedOption': 'Start selected option',
|
||||
'noDefaultSelected': 'Don\'t select',
|
||||
'hide': 'Hide',
|
||||
'file': {
|
||||
supportFileTypes: 'Support File Types',
|
||||
@@ -413,6 +425,7 @@ const translation = {
|
||||
},
|
||||
},
|
||||
'uploadFileTypes': 'Upload File Types',
|
||||
'uploadMethod': 'Upload Method',
|
||||
'localUpload': 'Local Upload',
|
||||
'both': 'Both',
|
||||
'maxNumberOfUploads': 'Max number of uploads',
|
||||
@@ -423,7 +436,7 @@ const translation = {
|
||||
atLeastOneOption: 'At least one option is required',
|
||||
optionRepeat: 'Has repeat options',
|
||||
},
|
||||
'defaultValue': 'Default value',
|
||||
'startChecked': 'Start checked',
|
||||
'noDefaultValue': 'No default value',
|
||||
'selectDefaultValue': 'Select default value',
|
||||
},
|
||||
|
||||
@@ -79,6 +79,7 @@ const translation = {
|
||||
Create: 'Create',
|
||||
Cancel: 'Cancel',
|
||||
Confirm: 'Confirm',
|
||||
import: 'Import',
|
||||
nameNotEmpty: 'Name cannot be empty',
|
||||
appTemplateNotSelected: 'Please select a template',
|
||||
appTypeRequired: 'Please select an app type',
|
||||
|
||||
@@ -17,7 +17,10 @@ const translation = {
|
||||
viewBilling: 'Manage billing and subscriptions',
|
||||
buyPermissionDeniedTip: 'Please contact your enterprise administrator to subscribe',
|
||||
plansCommon: {
|
||||
title: 'Pricing that powers your AI journey',
|
||||
title: {
|
||||
plans: 'plans',
|
||||
description: 'Select the plan that best fits your team\'s needs.',
|
||||
},
|
||||
freeTrialTipPrefix: 'Sign up and get a ',
|
||||
freeTrialTip: 'free trial of 200 OpenAI calls. ',
|
||||
freeTrialTipSuffix: 'No credit card required',
|
||||
@@ -33,13 +36,14 @@ const translation = {
|
||||
year: 'year',
|
||||
save: 'Save ',
|
||||
free: 'Free',
|
||||
annualBilling: 'Annual Billing',
|
||||
annualBilling: 'Bill Annually Save {{percent}}%',
|
||||
comparePlanAndFeatures: 'Compare plans & features',
|
||||
priceTip: 'per workspace/',
|
||||
currentPlan: 'Current Plan',
|
||||
contractSales: 'Contact sales',
|
||||
contractOwner: 'Contact team manager',
|
||||
startForFree: 'Start for Free',
|
||||
startBuilding: 'Start Building',
|
||||
getStarted: 'Get Started',
|
||||
contactSales: 'Contact Sales',
|
||||
talkToSales: 'Talk to Sales',
|
||||
@@ -107,24 +111,24 @@ const translation = {
|
||||
sandbox: {
|
||||
name: 'Sandbox',
|
||||
for: 'Free Trial of Core Capabilities',
|
||||
description: 'Free Trial of Core Capabilities',
|
||||
description: 'Try core features for free.',
|
||||
},
|
||||
professional: {
|
||||
name: 'Professional',
|
||||
for: 'For Independent Developers/Small Teams',
|
||||
description: 'For Independent Developers/Small Teams',
|
||||
description: 'For independent developers & small teams ready to build production AI applications.',
|
||||
},
|
||||
team: {
|
||||
name: 'Team',
|
||||
for: 'For Medium-sized Teams',
|
||||
description: 'For Medium-sized Teams',
|
||||
description: 'For medium-sized teams requiring collaboration and higher throughput.',
|
||||
},
|
||||
community: {
|
||||
name: 'Community',
|
||||
for: 'For Individual Users, Small Teams, or Non-commercial Projects',
|
||||
description: 'For Individual Users, Small Teams, or Non-commercial Projects',
|
||||
description: 'For open-source enthusiasts, individual developers, and non-commercial projects',
|
||||
price: 'Free',
|
||||
btnText: 'Get Started with Community',
|
||||
btnText: 'Get Started',
|
||||
includesTitle: 'Free Features:',
|
||||
features: [
|
||||
'All Core Features Released Under the Public Repository',
|
||||
@@ -135,10 +139,10 @@ const translation = {
|
||||
premium: {
|
||||
name: 'Premium',
|
||||
for: 'For Mid-sized Organizations and Teams',
|
||||
description: 'For Mid-sized Organizations and Teams',
|
||||
description: 'For Mid-sized organizations needing deployment flexibility and enhanced support',
|
||||
price: 'Scalable',
|
||||
priceTip: 'Based on Cloud Marketplace',
|
||||
btnText: 'Get Premium in',
|
||||
btnText: 'Get Premium on',
|
||||
includesTitle: 'Everything from Community, plus:',
|
||||
comingSoon: 'Microsoft Azure & Google Cloud Support Coming Soon',
|
||||
features: [
|
||||
@@ -151,11 +155,11 @@ const translation = {
|
||||
enterprise: {
|
||||
name: 'Enterprise',
|
||||
for: 'For large-sized Teams',
|
||||
description: 'For Enterprise Require Organization-wide Security, Compliance, Scalability, Control and More Advanced Features',
|
||||
description: 'For enterprise requiring organization-grade security, compliance, scalability, control and custom solutions',
|
||||
price: 'Custom',
|
||||
priceTip: 'Annual Billing Only',
|
||||
btnText: 'Contact Sales',
|
||||
includesTitle: 'Everything from Premium, plus:',
|
||||
includesTitle: 'Everything from <highlight>Premium</highlight>, plus:',
|
||||
features: [
|
||||
'Enterprise-grade Scalable Deployment Solutions',
|
||||
'Commercial License Authorization',
|
||||
|
||||
@@ -76,6 +76,9 @@ const translation = {
|
||||
input: 'Please enter',
|
||||
select: 'Please select',
|
||||
},
|
||||
label: {
|
||||
optional: '(optional)',
|
||||
},
|
||||
voice: {
|
||||
language: {
|
||||
zhHans: 'Chinese',
|
||||
@@ -622,6 +625,7 @@ const translation = {
|
||||
viewDoc: 'View documentation',
|
||||
relatedApp: 'linked apps',
|
||||
noRelatedApp: 'No linked apps',
|
||||
pipeline: 'Pipeline',
|
||||
},
|
||||
voiceInput: {
|
||||
speaking: 'Speak now...',
|
||||
|
||||
@@ -38,7 +38,7 @@ const translation = {
|
||||
button: 'Drag and drop file or folder, or',
|
||||
buttonSingleFile: 'Drag and drop file, or',
|
||||
browse: 'Browse',
|
||||
tip: 'Supports {{supportTypes}}. Max {{size}}MB each.',
|
||||
tip: 'Supports {{supportTypes}}. Max {{batchCount}} in a batch and {{size}} MB each.',
|
||||
validation: {
|
||||
typeError: 'File type not supported',
|
||||
size: 'File too large. Maximum is {{size}}MB',
|
||||
@@ -79,6 +79,7 @@ const translation = {
|
||||
configureWatercrawl: 'Configure Watercrawl',
|
||||
configureJinaReader: 'Configure Jina Reader',
|
||||
run: 'Run',
|
||||
running: 'Running',
|
||||
firecrawlTitle: 'Extract web content with 🔥Firecrawl',
|
||||
firecrawlDoc: 'Firecrawl docs',
|
||||
watercrawlTitle: 'Extract web content with Watercrawl',
|
||||
@@ -121,6 +122,7 @@ const translation = {
|
||||
paragraphTip: 'This mode splits the text in to paragraphs based on delimiters and the maximum chunk length, using the split text as the parent chunk for retrieval.',
|
||||
fullDoc: 'Full Doc',
|
||||
fullDocTip: 'The entire document is used as the parent chunk and retrieved directly. Please note that for performance reasons, text exceeding 10000 tokens will be automatically truncated.',
|
||||
qaTip: 'When using structured Q&A data, you can create documents that pair questions with answers. These documents are indexed based on the question portion, allowing the system to retrieve relevant answers based on query similarity.',
|
||||
separator: 'Delimiter',
|
||||
separatorTip: 'A delimiter is the character used to separate text. \\n\\n and \\n are commonly used delimiters for separating paragraphs and lines. Combined with commas (\\n\\n,\\n), paragraphs will be segmented by lines when exceeding the maximum chunk length. You can also use special delimiters defined by yourself (e.g. ***).',
|
||||
separatorPlaceholder: '\\n\\n for paragraphs; \\n for lines',
|
||||
@@ -199,7 +201,7 @@ const translation = {
|
||||
resume: 'Resume processing',
|
||||
navTo: 'Go to document',
|
||||
sideTipTitle: 'What\'s next',
|
||||
sideTipContent: 'After the document finishes indexing, the Knowledge can be integrated into the application as context, you can find the context setting in the prompt orchestration page. You can also create it as an independent ChatGPT indexing plugin for release.',
|
||||
sideTipContent: 'After finishing document indexing, you can manage and edit documents, run retrieval tests, and modify knowledge settings. Knowledge can then be integrated into your application as context, so make sure to adjust the Retrieval Setting to ensure optimal performance.',
|
||||
modelTitle: 'Are you sure to stop embedding?',
|
||||
modelContent: 'If you need to resume processing later, you will continue from where you left off.',
|
||||
modelButtonConfirm: 'Confirm',
|
||||
|
||||
@@ -99,6 +99,9 @@ const translation = {
|
||||
upload_file: 'Upload File',
|
||||
notion: 'Sync form Notion',
|
||||
github: 'Sync form Github',
|
||||
local_file: 'Local File',
|
||||
website_crawl: 'Website Crawl',
|
||||
online_document: 'Online Document',
|
||||
},
|
||||
type: {
|
||||
book: 'Book',
|
||||
@@ -315,6 +318,7 @@ const translation = {
|
||||
},
|
||||
},
|
||||
embedding: {
|
||||
waiting: 'Embedding waiting...',
|
||||
processing: 'Embedding processing...',
|
||||
paused: 'Embedding paused',
|
||||
completed: 'Embedding completed',
|
||||
|
||||
166
web/i18n/en-US/dataset-pipeline.ts
Normal file
166
web/i18n/en-US/dataset-pipeline.ts
Normal file
@@ -0,0 +1,166 @@
|
||||
const translation = {
|
||||
creation: {
|
||||
backToKnowledge: 'Back to Knowledge',
|
||||
createFromScratch: {
|
||||
title: 'Blank knowledge pipeline',
|
||||
description: 'Create a custom pipeline from scratch with full control over data processing and structure.',
|
||||
},
|
||||
importDSL: 'Import from a DSL file',
|
||||
createKnowledge: 'Create Knowledge',
|
||||
errorTip: 'Failed to create a Knowledge Base',
|
||||
successTip: 'Successfully created a Knowledge Base',
|
||||
caution: 'Caution',
|
||||
},
|
||||
templates: {
|
||||
customized: 'Customized',
|
||||
},
|
||||
operations: {
|
||||
choose: 'Choose',
|
||||
details: 'Details',
|
||||
editInfo: 'Edit info',
|
||||
useTemplate: 'Use this Knowledge Pipeline',
|
||||
backToDataSource: 'Back to Data Source',
|
||||
process: 'Process',
|
||||
dataSource: 'Data Source',
|
||||
saveAndProcess: 'Save & Process',
|
||||
preview: 'Preview',
|
||||
exportPipeline: 'Export Pipeline',
|
||||
convert: 'Convert',
|
||||
},
|
||||
knowledgeNameAndIcon: 'Knowledge name & icon',
|
||||
knowledgeNameAndIconPlaceholder: 'Please enter the name of the Knowledge Base',
|
||||
knowledgeDescription: 'Knowledge description',
|
||||
knowledgeDescriptionPlaceholder: 'Describe what is in this Knowledge Base. A detailed description allows AI to access the content of the dataset more accurately. If empty, Dify will use the default hit strategy. (Optional)',
|
||||
knowledgePermissions: 'Permissions',
|
||||
editPipelineInfo: 'Edit pipeline info',
|
||||
pipelineNameAndIcon: 'Pipeline name & icon',
|
||||
deletePipeline: {
|
||||
title: 'Are you sure to delete this pipeline template?',
|
||||
content: 'Deleting the pipeline template is irreversible.',
|
||||
},
|
||||
publishPipeline: {
|
||||
success: {
|
||||
message: 'Knowledge Pipeline Published',
|
||||
tip: '<CustomLink>Go to Documents</CustomLink> to add or manage documents.',
|
||||
},
|
||||
error: {
|
||||
message: 'Failed to Publish Knowledge Pipeline',
|
||||
},
|
||||
},
|
||||
publishTemplate: {
|
||||
success: {
|
||||
message: 'Pipeline Template Published',
|
||||
tip: 'You can use this template on the creation page.',
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
error: {
|
||||
message: 'Failed to Publish Pipeline Template',
|
||||
},
|
||||
},
|
||||
exportDSL: {
|
||||
successTip: 'Export pipeline DSL successfully',
|
||||
errorTip: 'Failed to export pipeline DSL',
|
||||
},
|
||||
details: {
|
||||
createdBy: 'By {{author}}',
|
||||
structure: 'Structure',
|
||||
structureTooltip: 'Chunk Structure determines how documents are split and indexed—offering General, Parent-Child, and Q&A modes—and is unique to each knowledge base.',
|
||||
},
|
||||
testRun: {
|
||||
title: 'Test Run',
|
||||
tooltip: 'In test run mode, only one document is allowed to be imported at a time for easier debugging and observation.',
|
||||
steps: {
|
||||
dataSource: 'Data Source',
|
||||
documentProcessing: 'Document Processing',
|
||||
},
|
||||
dataSource: {
|
||||
localFiles: 'Local Files',
|
||||
},
|
||||
notion: {
|
||||
title: 'Choose Notion Pages',
|
||||
docTitle: 'Notion docs',
|
||||
},
|
||||
},
|
||||
inputField: 'Input Field',
|
||||
inputFieldPanel: {
|
||||
title: 'User Input Fields',
|
||||
description: 'User input fields are used to define and collect variables required during the pipeline execution process. Users can customize the field type and flexibly configure the input value to meet the needs of different data sources or document processing steps.',
|
||||
uniqueInputs: {
|
||||
title: 'Unique Inputs for Each Entrance',
|
||||
tooltip: 'Unique Inputs are only accessible to the selected data source and its downstream nodes. Users won\'t need to fill it in when choosing other data sources. Only input fields referenced by data source variables will appear in the first step(Data Source). All other fields will be shown in the second step(Process Documents).',
|
||||
},
|
||||
globalInputs: {
|
||||
title: 'Global Inputs for All Entrances',
|
||||
tooltip: 'Global Inputs are shared across all nodes. Users will need to fill them in when selecting any data source. For example, fields like delimiter and maximum chunk length can be uniformly applied across multiple data sources. Only input fields referenced by Data Source variables appear in the first step (Data Source). All other fields show up in the second step (Process Documents).',
|
||||
},
|
||||
addInputField: 'Add Input Field',
|
||||
editInputField: 'Edit Input Field',
|
||||
preview: {
|
||||
stepOneTitle: 'Data Source',
|
||||
stepTwoTitle: 'Process Documents',
|
||||
},
|
||||
error: {
|
||||
variableDuplicate: 'Variable name already exists. Please choose a different name.',
|
||||
},
|
||||
},
|
||||
addDocuments: {
|
||||
title: 'Add Documents',
|
||||
steps: {
|
||||
chooseDatasource: 'Choose a Data Source',
|
||||
processDocuments: 'Process Documents',
|
||||
processingDocuments: 'Processing Documents',
|
||||
},
|
||||
backToDataSource: 'Data Source',
|
||||
stepOne: {
|
||||
preview: 'Preview',
|
||||
},
|
||||
stepTwo: {
|
||||
chunkSettings: 'Chunk Settings',
|
||||
previewChunks: 'Preview Chunks',
|
||||
},
|
||||
stepThree: {
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
characters: 'characters',
|
||||
selectOnlineDocumentTip: 'Process up to {{count}} pages',
|
||||
selectOnlineDriveTip: 'Process up to {{count}} files, maximum {{fileSize}} MB each',
|
||||
},
|
||||
documentSettings: {
|
||||
title: 'Document Settings',
|
||||
},
|
||||
onlineDocument: {
|
||||
pageSelectorTitle: '{{name}} pages',
|
||||
},
|
||||
onlineDrive: {
|
||||
notConnected: '{{name}} is not connected',
|
||||
notConnectedTip: 'To sync with {{name}}, connection to {{name}} must be established first.',
|
||||
breadcrumbs: {
|
||||
allBuckets: 'All Cloud Storage Buckets',
|
||||
allFiles: 'All Files',
|
||||
searchResult: 'Find {{searchResultsLength}} items in "{{folderName}}" folder',
|
||||
searchPlaceholder: 'Search files...',
|
||||
},
|
||||
notSupportedFileType: 'This file type is not supported',
|
||||
emptyFolder: 'This folder is empty',
|
||||
emptySearchResult: 'No items were found',
|
||||
resetKeywords: 'Reset keywords',
|
||||
},
|
||||
credentialSelector: {
|
||||
name: '{{credentialName}}\'s {{pluginName}}',
|
||||
},
|
||||
configurationTip: 'Configure {{pluginName}}',
|
||||
conversion: {
|
||||
title: 'Convert to Knowledge Pipeline',
|
||||
descriptionChunk1: 'You can now convert your existing knowledge base to use the Knowledge Pipeline for document processing',
|
||||
descriptionChunk2: ' — a more open and flexible approach with access to plugins from our marketplace. This will apply the new processing method to all future documents.',
|
||||
warning: 'This action cannot be undone.',
|
||||
confirm: {
|
||||
title: 'Confirmation',
|
||||
content: 'This action is permanent. You won\'t be able to revert to the previous method.Please confirm to convert.',
|
||||
},
|
||||
errorMessage: 'Failed to convert the dataset to a pipeline',
|
||||
successMessage: 'Successfully converted the dataset to a pipeline',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
@@ -3,9 +3,10 @@ const translation = {
|
||||
desc: 'Here you can modify the properties and retrieval settings of this Knowledge.',
|
||||
form: {
|
||||
name: 'Knowledge Name',
|
||||
nameAndIcon: 'Name & Icon',
|
||||
namePlaceholder: 'Please enter the Knowledge name',
|
||||
nameError: 'Name cannot be empty',
|
||||
desc: 'Knowledge Description',
|
||||
desc: 'Description',
|
||||
descInfo: 'Please write a clear textual description to outline the content of the Knowledge. This description will be used as a basis for matching when selecting from multiple Knowledge for inference.',
|
||||
descPlaceholder: 'Describe what is in this data set. A detailed description allows AI to access the content of the data set in a timely manner. If empty, Dify will use the default hit strategy.',
|
||||
helpText: 'Learn how to write a good dataset description.',
|
||||
@@ -15,12 +16,19 @@ const translation = {
|
||||
permissionsAllMember: 'All team members',
|
||||
permissionsInvitedMembers: 'Partial team members',
|
||||
me: '(You)',
|
||||
onSearchResults: 'No members match your search query.\nTry your search again.',
|
||||
chunkStructure: {
|
||||
title: 'Chunk Structure',
|
||||
learnMore: 'Learn more',
|
||||
description: ' about Chunk Structure.',
|
||||
},
|
||||
indexMethod: 'Index Method',
|
||||
indexMethodHighQuality: 'High Quality',
|
||||
indexMethodHighQualityTip: 'Calling the embedding model to process documents for more precise retrieval helps LLM generate high-quality answers.',
|
||||
upgradeHighQualityTip: 'Once upgrading to High Quality mode, reverting to Economical mode is not available',
|
||||
indexMethodEconomy: 'Economical',
|
||||
indexMethodEconomyTip: 'Using 10 keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.',
|
||||
indexMethodEconomyTip: 'Using {{count}} keywords per chunk for retrieval, no tokens are consumed at the expense of reduced retrieval accuracy.',
|
||||
numberOfKeywords: 'Number of Keywords',
|
||||
embeddingModel: 'Embedding Model',
|
||||
embeddingModelTip: 'Change the embedded model, please go to ',
|
||||
embeddingModelTipLink: 'Settings',
|
||||
|
||||
@@ -3,6 +3,8 @@ const translation = {
|
||||
chunkingMode: {
|
||||
general: 'General',
|
||||
parentChild: 'Parent-child',
|
||||
qa: 'Q&A',
|
||||
graph: 'Graph',
|
||||
},
|
||||
parentMode: {
|
||||
paragraph: 'Paragraph',
|
||||
@@ -20,11 +22,18 @@ const translation = {
|
||||
learnHowToWriteGoodKnowledgeDescription: 'Learn how to write a good knowledge description',
|
||||
externalAPIPanelDescription: 'The external knowledge API is used to connect to a knowledge base outside of Dify and retrieve knowledge from that knowledge base.',
|
||||
externalAPIPanelDocumentation: 'Learn how to create an External Knowledge API',
|
||||
externalKnowledgeBase: 'External Knowledge Base',
|
||||
localDocs: 'Local Docs',
|
||||
documentCount: ' docs',
|
||||
docAllEnabled_one: '{{count}} document enabled',
|
||||
docAllEnabled_other: 'All {{count}} documents enabled',
|
||||
partialEnabled_one: 'Total of {{count}} document, {{num}} available',
|
||||
partialEnabled_other: 'Total of {{count}} documents, {{num}} available',
|
||||
wordCount: ' k words',
|
||||
appCount: ' linked apps',
|
||||
updated: 'Updated',
|
||||
createDataset: 'Create Knowledge',
|
||||
createFromPipeline: 'Create from Knowledge Pipeline',
|
||||
createNewExternalAPI: 'Create a new External Knowledge API',
|
||||
noExternalKnowledge: 'There is no External Knowledge API yet, click here to create',
|
||||
createExternalAPI: 'Add an External Knowledge API',
|
||||
@@ -117,7 +126,7 @@ const translation = {
|
||||
description: 'Execute full-text search and vector searches simultaneously, re-rank to select the best match for the user\'s query. Users can choose to set weights or configure to a Rerank model.',
|
||||
recommend: 'Recommend',
|
||||
},
|
||||
invertedIndex: {
|
||||
keyword_search: {
|
||||
title: 'Inverted Index',
|
||||
description: 'Inverted Index is a structure used for efficient retrieval. Organized by terms, each term points to documents or web pages containing it.',
|
||||
},
|
||||
@@ -217,6 +226,17 @@ const translation = {
|
||||
technicalParameters: 'Technical Parameters',
|
||||
},
|
||||
},
|
||||
serviceApi: {
|
||||
title: 'Service API',
|
||||
enabled: 'In Service',
|
||||
disabled: 'Disabled',
|
||||
card: {
|
||||
title: 'Backend service api',
|
||||
endpoint: 'Service API Endpoint',
|
||||
apiKey: 'API Key',
|
||||
apiReference: 'API Reference',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
const translation = {
|
||||
sidebar: {
|
||||
expandSidebar: 'Expand Sidebar',
|
||||
collapseSidebar: 'Collapse Sidebar',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
||||
40
web/i18n/en-US/pipeline.ts
Normal file
40
web/i18n/en-US/pipeline.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
const translation = {
|
||||
common: {
|
||||
goToAddDocuments: 'Go to add documents',
|
||||
publishAs: 'Publish as a Customized Pipeline Template',
|
||||
confirmPublish: 'Confirm Publish',
|
||||
confirmPublishContent: 'After successfully publishing the knowledge pipeline, the chunk structure of this knowledge base cannot be modified. Are you sure you want to publish it?',
|
||||
publishAsPipeline: {
|
||||
name: 'Pipeline name & icon',
|
||||
namePlaceholder: 'Please enter the name of this Knowledge Pipeline. (Required) ',
|
||||
description: 'Knowledge description',
|
||||
descriptionPlaceholder: 'Please enter the description of this Knowledge Pipeline. (Optional) ',
|
||||
},
|
||||
testRun: 'Test Run',
|
||||
preparingDataSource: 'Preparing Data Source',
|
||||
reRun: 'Re-run',
|
||||
processing: 'Processing',
|
||||
},
|
||||
inputField: {
|
||||
create: 'Create user input field',
|
||||
manage: 'Manage',
|
||||
},
|
||||
publishToast: {
|
||||
title: 'This pipeline has not yet been published',
|
||||
desc: 'When the pipeline is not published, you can modify the chunk structure in the knowledge base node, and the pipeline orchestration and changes will be automatically saved as a draft.',
|
||||
},
|
||||
result: {
|
||||
resultPreview: {
|
||||
loading: 'Processing...Please wait',
|
||||
error: 'Error occurred during execution',
|
||||
viewDetails: 'View details',
|
||||
footerTip: 'In test run mode, preview up to {{count}} chunks',
|
||||
},
|
||||
},
|
||||
ragToolSuggestions: {
|
||||
title: 'Suggestions for RAG',
|
||||
noRecommendationPluginsInstalled: 'No recommended plugins installed, find more in <CustomLink>Marketplace</CustomLink>',
|
||||
},
|
||||
}
|
||||
|
||||
export default translation
|
||||
@@ -3,6 +3,7 @@ const translation = {
|
||||
searchTags: 'Search Tags',
|
||||
tags: {
|
||||
agent: 'Agent',
|
||||
rag: 'RAG',
|
||||
search: 'Search',
|
||||
image: 'Image',
|
||||
videos: 'Videos',
|
||||
|
||||
@@ -9,6 +9,7 @@ const translation = {
|
||||
agents: 'Agent Strategies',
|
||||
extensions: 'Extensions',
|
||||
bundles: 'Bundles',
|
||||
datasources: 'Data Sources',
|
||||
},
|
||||
categorySingle: {
|
||||
model: 'Model',
|
||||
@@ -16,6 +17,7 @@ const translation = {
|
||||
agent: 'Agent Strategy',
|
||||
extension: 'Extension',
|
||||
bundle: 'Bundle',
|
||||
datasource: 'Data Source',
|
||||
},
|
||||
search: 'Search',
|
||||
allCategories: 'All Categories',
|
||||
@@ -301,6 +303,8 @@ const translation = {
|
||||
credentialUnavailableInButton: 'Credential unavailable',
|
||||
customCredentialUnavailable: 'Custom credentials currently unavailable',
|
||||
unavailable: 'Unavailable',
|
||||
connectedWorkspace: 'Connected Workspace',
|
||||
emptyAuth: 'Please configure authentication',
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -244,6 +244,7 @@ const translation = {
|
||||
publishTip: 'App not published. Please publish the app first.',
|
||||
},
|
||||
},
|
||||
allTools: 'All tools',
|
||||
}
|
||||
|
||||
export default translation
|
||||
|
||||
@@ -46,6 +46,7 @@ const translation = {
|
||||
setVarValuePlaceholder: 'Set variable',
|
||||
needConnectTip: 'This step is not connected to anything',
|
||||
maxTreeDepth: 'Maximum limit of {{depth}} nodes per branch',
|
||||
needAdd: '{{node}} node must be added',
|
||||
needEndNode: 'The End node must be added',
|
||||
needAnswerNode: 'The Answer node must be added',
|
||||
workflowProcess: 'Workflow Process',
|
||||
@@ -93,7 +94,6 @@ const translation = {
|
||||
importWarning: 'Caution',
|
||||
importWarningDetails: 'DSL version difference may affect certain features',
|
||||
importSuccess: 'Import Successfully',
|
||||
parallelRun: 'Parallel Run',
|
||||
parallelTip: {
|
||||
click: {
|
||||
title: 'Click',
|
||||
@@ -215,8 +215,10 @@ const translation = {
|
||||
toolParameterRequired: '{{field}}: parameter [{{param}}] is required',
|
||||
},
|
||||
singleRun: {
|
||||
testRun: 'Test Run ',
|
||||
testRun: 'Test Run',
|
||||
startRun: 'Start Run',
|
||||
preparingDataSource: 'Preparing Data Source',
|
||||
reRun: 'Re-run',
|
||||
running: 'Running',
|
||||
testRunIteration: 'Test Run Iteration',
|
||||
back: 'Back',
|
||||
@@ -240,6 +242,8 @@ const translation = {
|
||||
'agent': 'Agent Strategy',
|
||||
'allAdded': 'All added',
|
||||
'addAll': 'Add all',
|
||||
'sources': 'Sources',
|
||||
'searchDataSource': 'Search Data Source',
|
||||
},
|
||||
blocks: {
|
||||
'start': 'Start',
|
||||
@@ -264,6 +268,8 @@ const translation = {
|
||||
'loop-start': 'Loop Start',
|
||||
'loop': 'Loop',
|
||||
'loop-end': 'Exit Loop',
|
||||
'knowledge-index': 'Knowledge Base',
|
||||
'datasource': 'Data Source',
|
||||
},
|
||||
blocksAbout: {
|
||||
'start': 'Define the initial parameters for launching a workflow',
|
||||
@@ -286,6 +292,8 @@ const translation = {
|
||||
'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.',
|
||||
'agent': 'Invoking large language models to answer questions or process natural language',
|
||||
'knowledge-index': 'Knowledge Base About',
|
||||
'datasource': 'Data Source About',
|
||||
},
|
||||
operator: {
|
||||
zoomIn: 'Zoom In',
|
||||
@@ -393,6 +401,7 @@ const translation = {
|
||||
input: 'Input value',
|
||||
variable: 'Use variable',
|
||||
},
|
||||
inputVars: 'Input Variables',
|
||||
},
|
||||
start: {
|
||||
required: 'required',
|
||||
@@ -927,6 +936,27 @@ const translation = {
|
||||
clickToViewParameterSchema: 'Click to view parameter schema',
|
||||
parameterSchema: 'Parameter Schema',
|
||||
},
|
||||
dataSource: {
|
||||
supportedFileFormats: 'Supported file formats',
|
||||
supportedFileFormatsPlaceholder: 'File extension, e.g. doc',
|
||||
add: 'Add data source',
|
||||
},
|
||||
knowledgeBase: {
|
||||
chunkStructure: 'Chunk Structure',
|
||||
chooseChunkStructure: 'Choose a chunk structure',
|
||||
chunkStructureTip: {
|
||||
title: 'Please choose a chunk structure',
|
||||
message: 'The Dify Knowledge Base supports three chunking structures: General, Parent-child, and Q&A. Each knowledge base can have only one structure. The output from the preceding node must align with the selected chunk structure. Note that the choice of chunking structure affects the available index methods.',
|
||||
learnMore: 'Learn more',
|
||||
},
|
||||
changeChunkStructure: 'Change Chunk Structure',
|
||||
chunksInput: 'Chunks',
|
||||
chunksInputTip: 'The input variable of the knowledge base node is Chunks. The variable type is an object with a specific JSON Schema which must be consistent with the selected chunk structure.',
|
||||
aboutRetrieval: 'about retrieval method.',
|
||||
chunkIsRequired: 'Chunk structure is required',
|
||||
indexMethodIsRequired: 'Index method is required',
|
||||
retrievalSettingIsRequired: 'Retrieval setting is required',
|
||||
},
|
||||
},
|
||||
tracing: {
|
||||
stopBy: 'Stop by {{user}}',
|
||||
@@ -998,6 +1028,10 @@ const translation = {
|
||||
envNode: 'Environment',
|
||||
chatNode: 'Conversation',
|
||||
systemNode: 'System',
|
||||
exportToolTip: 'Export Variable as File',
|
||||
largeData: 'Large data, read-only preview. Export to view all.',
|
||||
largeDataNoExport: 'Large data - partial preview only',
|
||||
export: 'export',
|
||||
},
|
||||
lastOutput: 'Last Output',
|
||||
relations: {
|
||||
|
||||
Reference in New Issue
Block a user