Feature/Add Neo4j GraphRag support (#3686)

* added: Neo4j database connectivity, Neo4j credentials, supports the usage of the GraphCypherQaChain node and modifies the FewShotPromptTemplate node to handle variables from the prefix field.

* Merge branch 'main' of github.com:FlowiseAI/Flowise into feature/graphragsupport

* revert pnpm-lock.yaml

* add: neo4j package

* Refactor GraphCypherQAChain: Update version to 1.0, remove memory input, and enhance prompt handling

- Changed version from 2.0 to 1.0.
- Removed the 'Memory' input parameter from the GraphCypherQAChain.
- Made 'cypherPrompt' optional and improved error handling for prompt validation.
- Updated the 'init' and 'run' methods to streamline input processing and response handling.
- Enhanced streaming response logic based on the 'returnDirect' flag.

* Refactor GraphCypherQAChain: Simplify imports and update init method signature

- Consolidated import statements for better readability.
- Removed the 'input' and 'options' parameters from the 'init' method, streamlining its signature to only accept 'nodeData'.

* add output, format final response, fix optional inputs

---------

Co-authored-by: Henry <hzj94@hotmail.com>
This commit is contained in:
Anthony Bryan Gavilan Vinces
2024-12-22 20:35:53 -05:00
committed by GitHub
parent 93f3a5d98a
commit a7c1ab881c
8 changed files with 34468 additions and 34040 deletions
@@ -0,0 +1,39 @@
import { INodeParams, INodeCredential } from '../src/Interface'
class Neo4jApi implements INodeCredential {
label: string
name: string
version: number
description: string
inputs: INodeParams[]
constructor() {
this.label = 'Neo4j API'
this.name = 'neo4jApi'
this.version = 1.0
this.description =
'Refer to <a target="_blank" href="https://neo4j.com/docs/operations-manual/current/authentication-authorization/">official guide</a> on Neo4j authentication'
this.inputs = [
{
label: 'Neo4j URL',
name: 'url',
type: 'string',
description: 'Your Neo4j instance URL (e.g., neo4j://localhost:7687)'
},
{
label: 'Username',
name: 'username',
type: 'string',
description: 'Neo4j database username'
},
{
label: 'Password',
name: 'password',
type: 'password',
description: 'Neo4j database password'
}
]
}
}
module.exports = { credClass: Neo4jApi }