mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-24 15:43:54 +00:00
Add precedence for input params over env variables in neo4j integration (#18581)
input parameters take precedence over env variables
This commit is contained in:
parent
c8a171a154
commit
353248838d
@ -1,6 +1,6 @@
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from langchain_core.utils import get_from_env
|
||||
from langchain_core.utils import get_from_dict_or_env
|
||||
|
||||
from langchain_community.graphs.graph_document import GraphDocument
|
||||
from langchain_community.graphs.graph_store import GraphStore
|
||||
@ -154,7 +154,7 @@ class Neo4jGraph(GraphStore):
|
||||
url: Optional[str] = None,
|
||||
username: Optional[str] = None,
|
||||
password: Optional[str] = None,
|
||||
database: str = "neo4j",
|
||||
database: Optional[str] = None,
|
||||
timeout: Optional[float] = None,
|
||||
sanitize: bool = False,
|
||||
) -> None:
|
||||
@ -167,10 +167,16 @@ class Neo4jGraph(GraphStore):
|
||||
"Please install it with `pip install neo4j`."
|
||||
)
|
||||
|
||||
url = get_from_env("url", "NEO4J_URI", url)
|
||||
username = get_from_env("username", "NEO4J_USERNAME", username)
|
||||
password = get_from_env("password", "NEO4J_PASSWORD", password)
|
||||
database = get_from_env("database", "NEO4J_DATABASE", database)
|
||||
url = get_from_dict_or_env({"url": url}, "url", "NEO4J_URI")
|
||||
username = get_from_dict_or_env(
|
||||
{"username": username}, "username", "NEO4J_USERNAME"
|
||||
)
|
||||
password = get_from_dict_or_env(
|
||||
{"password": password}, "password", "NEO4J_PASSWORD"
|
||||
)
|
||||
database = get_from_dict_or_env(
|
||||
{"database": database}, "database", "NEO4J_DATABASE", "neo4j"
|
||||
)
|
||||
|
||||
self._driver = neo4j.GraphDatabase.driver(url, auth=(username, password))
|
||||
self._database = database
|
||||
|
@ -17,7 +17,7 @@ from typing import (
|
||||
|
||||
from langchain_core.documents import Document
|
||||
from langchain_core.embeddings import Embeddings
|
||||
from langchain_core.utils import get_from_env
|
||||
from langchain_core.utils import get_from_dict_or_env
|
||||
from langchain_core.vectorstores import VectorStore
|
||||
|
||||
from langchain_community.vectorstores.utils import DistanceStrategy
|
||||
@ -155,7 +155,7 @@ class Neo4jVector(VectorStore):
|
||||
password: Optional[str] = None,
|
||||
url: Optional[str] = None,
|
||||
keyword_index_name: Optional[str] = "keyword",
|
||||
database: str = "neo4j",
|
||||
database: Optional[str] = None,
|
||||
index_name: str = "vector",
|
||||
node_label: str = "Chunk",
|
||||
embedding_node_property: str = "embedding",
|
||||
@ -186,11 +186,19 @@ class Neo4jVector(VectorStore):
|
||||
# Handle if the credentials are environment variables
|
||||
|
||||
# Support URL for backwards compatibility
|
||||
url = os.environ.get("NEO4J_URL", url)
|
||||
url = get_from_env("url", "NEO4J_URI", url)
|
||||
username = get_from_env("username", "NEO4J_USERNAME", username)
|
||||
password = get_from_env("password", "NEO4J_PASSWORD", password)
|
||||
database = get_from_env("database", "NEO4J_DATABASE", database)
|
||||
if not url:
|
||||
url = os.environ.get("NEO4J_URL")
|
||||
|
||||
url = get_from_dict_or_env({"url": url}, "url", "NEO4J_URI")
|
||||
username = get_from_dict_or_env(
|
||||
{"username": username}, "username", "NEO4J_USERNAME"
|
||||
)
|
||||
password = get_from_dict_or_env(
|
||||
{"password": password}, "password", "NEO4J_PASSWORD"
|
||||
)
|
||||
database = get_from_dict_or_env(
|
||||
{"database": database}, "database", "NEO4J_DATABASE", "neo4j"
|
||||
)
|
||||
|
||||
self._driver = neo4j.GraphDatabase.driver(url, auth=(username, password))
|
||||
self._database = database
|
||||
|
Loading…
Reference in New Issue
Block a user