mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-15 14:36:54 +00:00
community[patch]: Add the ability to pass maps to neo4j retrieval query (#19758)
Makes it easier to flatten complex values to text, so you don't have to use a lot of Cypher to do it.
This commit is contained in:
@@ -741,3 +741,29 @@ def test_retrieval_params() -> None:
|
||||
Document(page_content="test", metadata={"test": "test1"}),
|
||||
Document(page_content="test", metadata={"test": "test1"}),
|
||||
]
|
||||
|
||||
|
||||
def test_retrieval_dictionary() -> None:
|
||||
"""Test if we use parameters in retrieval query"""
|
||||
docsearch = Neo4jVector.from_texts(
|
||||
texts=texts,
|
||||
embedding=FakeEmbeddings(),
|
||||
pre_delete_collection=True,
|
||||
retrieval_query="""
|
||||
RETURN {
|
||||
name:'John',
|
||||
age: 30,
|
||||
skills: ["Python", "Data Analysis", "Machine Learning"]} as text,
|
||||
score, {} AS metadata
|
||||
""",
|
||||
)
|
||||
expected_output = [
|
||||
Document(
|
||||
page_content=(
|
||||
"skills:\n- Python\n- Data Analysis\n- "
|
||||
"Machine Learning\nage: 30\nname: John\n"
|
||||
)
|
||||
)
|
||||
]
|
||||
output = docsearch.similarity_search("Foo", k=1)
|
||||
assert output == expected_output
|
||||
|
@@ -1,6 +1,9 @@
|
||||
"""Test Neo4j functionality."""
|
||||
|
||||
from langchain_community.vectorstores.neo4j_vector import remove_lucene_chars
|
||||
from langchain_community.vectorstores.neo4j_vector import (
|
||||
dict_to_yaml_str,
|
||||
remove_lucene_chars,
|
||||
)
|
||||
|
||||
|
||||
def test_escaping_lucene() -> None:
|
||||
@@ -43,3 +46,22 @@ def test_escaping_lucene() -> None:
|
||||
remove_lucene_chars("It is the end of the world. Take shelter~")
|
||||
== "It is the end of the world. Take shelter"
|
||||
)
|
||||
|
||||
|
||||
def test_converting_to_yaml() -> None:
|
||||
example_dict = {
|
||||
"name": "John Doe",
|
||||
"age": 30,
|
||||
"skills": ["Python", "Data Analysis", "Machine Learning"],
|
||||
"location": {"city": "Ljubljana", "country": "Slovenia"},
|
||||
}
|
||||
|
||||
yaml_str = dict_to_yaml_str(example_dict)
|
||||
|
||||
expected_output = (
|
||||
"name: John Doe\nage: 30\nskills:\n- Python\n- "
|
||||
"Data Analysis\n- Machine Learning\nlocation:\n city: Ljubljana\n"
|
||||
" country: Slovenia\n"
|
||||
)
|
||||
|
||||
assert yaml_str == expected_output
|
||||
|
Reference in New Issue
Block a user