mirror of
https://github.com/farcasclaudiu/Flowise.git
synced 2026-06-28 21:00:58 +03:00
Merge pull request #503 from FlowiseAI/bugfix/ChainToolWithLLMChain
Bugfix/ChainTool with LLMChain
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { INode, INodeData, INodeParams } from '../../../src/Interface'
|
import { INode, INodeData, INodeParams } from '../../../src/Interface'
|
||||||
import { getBaseClasses } from '../../../src/utils'
|
import { getBaseClasses } from '../../../src/utils'
|
||||||
import { ChainTool } from 'langchain/tools'
|
|
||||||
import { BaseChain } from 'langchain/chains'
|
import { BaseChain } from 'langchain/chains'
|
||||||
|
import { ChainTool } from './core'
|
||||||
|
|
||||||
class ChainTool_Tools implements INode {
|
class ChainTool_Tools implements INode {
|
||||||
label: string
|
label: string
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
import { DynamicTool, DynamicToolInput } from 'langchain/tools'
|
||||||
|
import { BaseChain } from 'langchain/chains'
|
||||||
|
|
||||||
|
export interface ChainToolInput extends Omit<DynamicToolInput, 'func'> {
|
||||||
|
chain: BaseChain
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ChainTool extends DynamicTool {
|
||||||
|
chain: BaseChain
|
||||||
|
|
||||||
|
constructor({ chain, ...rest }: ChainToolInput) {
|
||||||
|
super({
|
||||||
|
...rest,
|
||||||
|
func: async (input, runManager) => {
|
||||||
|
// To enable LLM Chain which has promptValues
|
||||||
|
if ((chain as any).prompt && (chain as any).prompt.promptValues) {
|
||||||
|
const values = await chain.call((chain as any).prompt.promptValues, runManager?.getChild())
|
||||||
|
return values?.text
|
||||||
|
}
|
||||||
|
return chain.run(input, runManager?.getChild())
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.chain = chain
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user