mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 19:00:59 +03:00
Add more nodes for agents, loaders
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
import { INode, INodeData, INodeParams } from '../../../src/Interface'
|
||||
import { getBaseClasses, getInputVariables } from '../../../src/utils'
|
||||
|
||||
class FewShotPromptTemplate_Prompts implements INode {
|
||||
label: string
|
||||
name: string
|
||||
description: string
|
||||
type: string
|
||||
icon: string
|
||||
category: string
|
||||
baseClasses: string[]
|
||||
inputs: INodeParams[]
|
||||
|
||||
constructor() {
|
||||
this.label = 'Few Shot Prompt Template'
|
||||
this.name = 'fewShotPromptTemplate'
|
||||
this.type = 'FewShotPromptTemplate'
|
||||
this.icon = 'prompt.svg'
|
||||
this.category = 'Prompts'
|
||||
this.description = 'Prompt template you can build with examples'
|
||||
this.inputs = [
|
||||
{
|
||||
label: 'Examples',
|
||||
name: 'examples',
|
||||
type: 'string',
|
||||
rows: 5,
|
||||
placeholder: `[
|
||||
{ "word": "happy", "antonym": "sad" },
|
||||
{ "word": "tall", "antonym": "short" },
|
||||
]`
|
||||
},
|
||||
{
|
||||
label: 'Example Prompt',
|
||||
name: 'examplePrompt',
|
||||
type: 'BasePromptTemplate'
|
||||
},
|
||||
{
|
||||
label: 'Prefix',
|
||||
name: 'prefix',
|
||||
type: 'string',
|
||||
rows: 3,
|
||||
placeholder: `Give the antonym of every input`
|
||||
},
|
||||
{
|
||||
label: 'Suffix',
|
||||
name: 'suffix',
|
||||
type: 'string',
|
||||
rows: 3,
|
||||
placeholder: `Word: {input}\nAntonym:`
|
||||
},
|
||||
{
|
||||
label: 'Example Seperator',
|
||||
name: 'exampleSeparator',
|
||||
type: 'string',
|
||||
placeholder: `\n\n`
|
||||
},
|
||||
{
|
||||
label: 'Template Format',
|
||||
name: 'templateFormat',
|
||||
type: 'options',
|
||||
options: [
|
||||
{
|
||||
label: 'f-string',
|
||||
name: 'f-string'
|
||||
},
|
||||
{
|
||||
label: 'jinja-2',
|
||||
name: 'jinja-2'
|
||||
}
|
||||
],
|
||||
default: `f-string`
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
async getBaseClasses(): Promise<string[]> {
|
||||
const { FewShotPromptTemplate } = await import('langchain/prompts')
|
||||
return getBaseClasses(FewShotPromptTemplate)
|
||||
}
|
||||
|
||||
async init(nodeData: INodeData): Promise<any> {
|
||||
const { FewShotPromptTemplate } = await import('langchain/prompts')
|
||||
|
||||
const examplesStr = nodeData.inputs?.examples as string
|
||||
|
||||
const prefix = nodeData.inputs?.prefix as string
|
||||
const suffix = nodeData.inputs?.suffix as string
|
||||
const exampleSeparator = nodeData.inputs?.exampleSeparator as string
|
||||
const templateFormat = nodeData.inputs?.templateFormat
|
||||
const examplePrompt = nodeData.inputs?.examplePrompt
|
||||
|
||||
const inputVariables = getInputVariables(suffix)
|
||||
const examples = JSON.parse(examplesStr.replace(/\s/g, ''))
|
||||
|
||||
try {
|
||||
const prompt = new FewShotPromptTemplate({
|
||||
examples,
|
||||
examplePrompt,
|
||||
prefix,
|
||||
suffix,
|
||||
inputVariables,
|
||||
exampleSeparator,
|
||||
templateFormat
|
||||
})
|
||||
return prompt
|
||||
} catch (e) {
|
||||
throw new Error(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = { nodeClass: FewShotPromptTemplate_Prompts }
|
||||
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-terminal-2" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"></path>
|
||||
<path d="M8 9l3 3l-3 3"></path>
|
||||
<path d="M13 15l3 0"></path>
|
||||
<path d="M3 4m0 2a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2z"></path>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 465 B |
Reference in New Issue
Block a user