feat(core): Add support for building LLM applications (#7235)

This extracts all core and editor changes from #7246 and #7137, so that
we can get these changes merged first.

ADO-1120

[DB Tests](https://github.com/n8n-io/n8n/actions/runs/6379749011)
[E2E Tests](https://github.com/n8n-io/n8n/actions/runs/6379751480)
[Workflow Tests](https://github.com/n8n-io/n8n/actions/runs/6379752828)

---------

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2023-10-02 17:33:43 +02:00
committed by GitHub
parent 04dfcd73be
commit 00a4b8b0c6
93 changed files with 6209 additions and 728 deletions

View File

@@ -131,6 +131,31 @@
"binaryDataDisplay.backToOverviewPage": "Back to overview page",
"binaryDataDisplay.noDataFoundToDisplay": "No data found to display",
"binaryDataDisplay.yourBrowserDoesNotSupport": "Your browser does not support the video element. Kindly update it to latest version.",
"chat.window.title": "Chat Window ({nodeName})",
"chat.window.logs": "Log (for last message)",
"chat.window.noChatNode": "No Chat Node",
"chat.window.noExecution": "Nothing got executed yet",
"chat.window.chat.placeholder": "Type in message",
"chat.window.chat.sendButtonText": "Send",
"chat.window.chat.chatMessageOptions.reuseMessage": "Reuse Message",
"chat.window.chat.chatMessageOptions.repostMessage": "Repost Message",
"chat.window.chat.chatMessageOptions.executionId": "Execution ID",
"chatEmbed.infoTip.description": "Add chat to external applications using the n8n chat package.",
"chatEmbed.infoTip.link": "More info",
"chatEmbed.title": "Embed Chat in your website",
"chatEmbed.close": "Close",
"chatEmbed.install": "First, install the n8n chat package:",
"chatEmbed.paste.cdn": "Paste the following code anywhere in the {code} tag of your HTML file.",
"chatEmbed.paste.cdn.file": "<body>",
"chatEmbed.paste.vue": "Next, paste the following code in your {code} file.",
"chatEmbed.paste.vue.file": "App.vue",
"chatEmbed.paste.react": "Next, paste the following code in your {code} file.",
"chatEmbed.paste.react.file": "App.ts",
"chatEmbed.paste.other": "Next, paste the following code in your {code} file.",
"chatEmbed.paste.other.file": "main.ts",
"chatEmbed.packageInfo.description": "The n8n Chat widget can be easily customized to fit your needs.",
"chatEmbed.packageInfo.link": "Read the full documentation",
"chatEmbed.url": "https://www.npmjs.com/package/{'@'}n8n/chat",
"codeEdit.edit": "Edit",
"codeNodeEditor.askAi": "✨ Ask AI",
"codeNodeEditor.completer.$()": "Output data of the {nodeName} node",
@@ -711,7 +736,10 @@
"ndv.input": "Input",
"ndv.input.nodeDistance": "({count} node back) | ({count} nodes back)",
"ndv.input.noNodesFound": "No nodes found",
"ndv.input.mapping": "Mapping",
"ndv.input.debugging": "Debugging",
"ndv.input.parentNodes": "Parent nodes",
"ndv.input.previousNode": "Previous node",
"ndv.input.tooMuchData.title": "Input data is huge",
"ndv.input.noOutputDataInBranch": "No input data in this branch",
"ndv.input.noOutputDataInNode": "Node did not output any data. n8n stops executing the workflow when a node has no output data.",
@@ -726,6 +754,9 @@
"ndv.input.disabled": "The '{nodeName}' node is disabled and wont execute.",
"ndv.input.disabled.cta": "Enable it",
"ndv.output": "Output",
"ndv.output.ai.empty": "👈 This is {node}s AI Logs. Click on a node to see the input it received and data it outputted.",
"ndv.output.outType.logs": "Logs",
"ndv.output.outType.regular": "Output",
"ndv.output.edit": "Edit Output",
"ndv.output.all": "all",
"ndv.output.branch": "Branch",
@@ -813,6 +844,18 @@
"nodeCreator.subcategoryDescriptions.flow": "IF, Switch, Wait, Compare and Merge data, etc.",
"nodeCreator.subcategoryDescriptions.helpers": "HTTP Requests (API Calls), date and time, scrape HTML, RSS, SSH, etc.",
"nodeCreator.subcategoryDescriptions.otherTriggerNodes": "Runs the flow on workflow errors, file changes, etc.",
"nodeCreator.subcategoryDescriptions.agents": "Autonomous entities that interact and make decisions.",
"nodeCreator.subcategoryDescriptions.chains": "Structured assemblies for specific tasks.",
"nodeCreator.subcategoryDescriptions.documentLoaders": "Handles loading of documents for processing.",
"nodeCreator.subcategoryDescriptions.embeddings": "Transforms text into vector representations.",
"nodeCreator.subcategoryDescriptions.languageModels": "AI models that understand and generate language.",
"nodeCreator.subcategoryDescriptions.memory": "Manages storage and retrieval of information during execution.",
"nodeCreator.subcategoryDescriptions.outputParsers": "Ensures the output adheres to a defined format.",
"nodeCreator.subcategoryDescriptions.retrievers": "Fetches relevant information from a source.",
"nodeCreator.subcategoryDescriptions.textSplitters": "Breaks down text into smaller parts.",
"nodeCreator.subcategoryDescriptions.tools": "Utility components providing various functionalities.",
"nodeCreator.subcategoryDescriptions.vectorStores": "Handles storage and retrieval of vector representations.",
"nodeCreator.subcategoryDescriptions.miscellaneous": "Other AI related nodes.",
"nodeCreator.subcategoryNames.appTriggerNodes": "On app event",
"nodeCreator.subcategoryNames.appRegularNodes": "Action in an app",
"nodeCreator.subcategoryNames.dataTransformation": "Data transformation",
@@ -820,6 +863,18 @@
"nodeCreator.subcategoryNames.flow": "Flow",
"nodeCreator.subcategoryNames.helpers": "Helpers",
"nodeCreator.subcategoryNames.otherTriggerNodes": "Other ways...",
"nodeCreator.subcategoryNames.agents": "Agents",
"nodeCreator.subcategoryNames.chains": "Chains",
"nodeCreator.subcategoryNames.documentLoaders": "Document Loaders",
"nodeCreator.subcategoryNames.embeddings": "Embeddings",
"nodeCreator.subcategoryNames.languageModels": "Language Models",
"nodeCreator.subcategoryNames.memory": "Memory",
"nodeCreator.subcategoryNames.outputParsers": "Output Parsers",
"nodeCreator.subcategoryNames.retrievers": "Retrievers",
"nodeCreator.subcategoryNames.textSplitters": "Text Splitters",
"nodeCreator.subcategoryNames.tools": "Tools",
"nodeCreator.subcategoryNames.vectorStores": "Vector Stores",
"nodeCreator.subcategoryNames.miscellaneous": "Miscellaneous",
"nodeCreator.triggerHelperPanel.addAnotherTrigger": "Add another trigger",
"nodeCreator.triggerHelperPanel.addAnotherTriggerDescription": "Triggers start your workflow. Workflows can have multiple triggers.",
"nodeCreator.triggerHelperPanel.title": "When should this workflow run?",
@@ -834,6 +889,27 @@
"nodeCreator.triggerHelperPanel.selectATriggerDescription": "A trigger is a step that starts your workflow",
"nodeCreator.triggerHelperPanel.workflowTriggerDisplayName": "When called by another workflow",
"nodeCreator.triggerHelperPanel.workflowTriggerDescription": "Runs the flow when called by the Execute Workflow node from a different workflow",
"nodeCreator.aiPanel.aiNodes": "AI Nodes",
"nodeCreator.aiPanel.aiOtherNodes": "Other AI Nodes",
"nodeCreator.aiPanel.aiOtherNodesDescription": "Embeddings, Vector Stores, LLMs and other AI nodes",
"nodeCreator.aiPanel.selectAiNode": "Select an Al Node to add to your workflow",
"nodeCreator.aiPanel.nodesForAi": "Build autonomous agents, summarize or interrogate documents, etc.",
"nodeCreator.aiPanel.langchainAiNodes": "Advanced AI",
"nodeCreator.aiPanel.title": "When should this workflow run?",
"nodeCreator.aiPanel.infoBox": "Check out our <a href=\"/collections/8\" target=\"_blank\">templates</a> for workflow examples and inspiration.",
"nodeCreator.aiPanel.scheduleTriggerDisplayName": "On a schedule",
"nodeCreator.aiPanel.scheduleTriggerDescription": "Runs the flow every day, hour, or custom interval",
"nodeCreator.aiPanel.webhookTriggerDisplayName": "On webhook call",
"nodeCreator.aiPanel.webhookTriggerDescription": "Runs the flow when another app sends a webhook",
"nodeCreator.aiPanel.manualTriggerDisplayName": "Manually",
"nodeCreator.aiPanel.manualTriggerDescription": "Runs the flow on clicking a button in n8n",
"nodeCreator.aiPanel.whatHappensNext": "What happens next?",
"nodeCreator.aiPanel.selectATrigger": "Select an AI Component",
"nodeCreator.aiPanel.selectATriggerDescription": "A trigger is a step that starts your workflow",
"nodeCreator.aiPanel.workflowTriggerDisplayName": "When called by another workflow",
"nodeCreator.aiPanel.workflowTriggerDescription": "Runs the flow when called by the Execute Workflow node from a different workflow",
"nodeCreator.nodeItem.triggerIconTitle": "Trigger Node",
"nodeCreator.nodeItem.aiIconTitle": "LangChain AI Node",
"nodeCredentials.createNew": "Create New Credential",
"nodeCredentials.credentialFor": "Credential for {credentialType}",
"nodeCredentials.credentialsLabel": "Credential to connect with",
@@ -935,6 +1011,8 @@
"nodeView.showError.openWorkflow.title": "Problem opening workflow",
"nodeView.showError.stopExecution.title": "Problem stopping execution",
"nodeView.showError.stopWaitingForWebhook.title": "Problem deleting test webhook",
"nodeView.showError.nodeNodeCompatible.title": "Connection not possible",
"nodeView.showError.nodeNodeCompatible.message": "The node \"{sourceNodeName}\" can't be connected to the node \"{targetNodeName}\" because they are not compatible.",
"nodeView.showMessage.addNodeButton.message": "'{nodeTypeName}' is an unknown node type",
"nodeView.showMessage.addNodeButton.title": "Could not insert node",
"nodeView.showMessage.keyDown.title": "Workflow created",
@@ -1196,6 +1274,10 @@
"runData.editor.save": "Save",
"runData.editor.cancel": "Cancel",
"runData.editor.copyDataInfo": "You can copy data from previous executions and paste it above.",
"runData.aiContentBlock.startedAt": "Started at {startTime}",
"runData.aiContentBlock.tokens": "{count} Tokens",
"runData.aiContentBlock.tokens.prompt": "Prompt:",
"runData.aiContentBlock.tokens.completion": "Completion:",
"saveButton.save": "@:_reusableBaseText.save",
"saveButton.saved": "Saved",
"saveButton.saving": "Saving",
@@ -1616,6 +1698,7 @@
"nodeIssues.credentials.doNotExist.hint": "You can create credentials with the exact name and then they get auto-selected on refresh..",
"nodeIssues.credentials.notIdentified": "Credentials with name {name} exist for {type}.",
"nodeIssues.credentials.notIdentified.hint": "Credentials are not clearly identified. Please select the correct credentials.",
"nodeIssues.input.missing": "No node connected to required input \"{inputName}\"",
"ndv.trigger.moreInfo": "More info",
"ndv.trigger.copiedTestUrl": "Test URL copied to clipboard",
"ndv.trigger.webhookBasedNode.executionsHelp.inactive": "<b>While building your workflow</b>, click the 'listen' button, then go to {service} and make an event happen. This will trigger an execution, which will show up in this editor.<br /> <br /> <b>Once you're happy with your workflow</b>, <a data-key=\"activate\">activate</a> it. Then every time there's a matching event in {service}, the workflow will execute. These executions will show up in the <a data-key=\"executions\">executions list</a>, but not in the editor.",