mirror of
https://github.com/hwchase17/langchain.git
synced 2026-01-29 21:30:18 +00:00
WeaviateHybridSearchRetriever option to enable scores. (#7861)
Description: This PR adds the option to retrieve scores and explanations in the WeaviateHybridSearchRetriever. This feature improves the usability of the retriever by allowing users to understand the scoring logic behind the search results and further refine their search queries. Issue: This PR is a solution to the issue #7855 Dependencies: This PR does not introduce any new dependencies. Tag maintainer: @rlancemartin, @eyurtsev I have included a unit test for the added feature, ensuring that it retrieves scores and explanations correctly. I have also included an example notebook demonstrating its use.
This commit is contained in:
@@ -61,6 +61,29 @@ class TestWeaviateHybridSearchRetriever:
|
||||
Document(page_content="bar", metadata={"page": 1}),
|
||||
]
|
||||
|
||||
@pytest.mark.vcr(ignore_localhost=True)
|
||||
def test_get_relevant_documents_with_score(self, weaviate_url: str) -> None:
|
||||
"""Test end to end construction and MRR search."""
|
||||
texts = ["foo", "bar", "baz"]
|
||||
metadatas = [{"page": i} for i in range(len(texts))]
|
||||
|
||||
client = Client(weaviate_url)
|
||||
|
||||
retriever = WeaviateHybridSearchRetriever(
|
||||
client=client,
|
||||
index_name=f"LangChain_{uuid4().hex}",
|
||||
text_key="text",
|
||||
attributes=["page"],
|
||||
)
|
||||
for i, text in enumerate(texts):
|
||||
retriever.add_documents(
|
||||
[Document(page_content=text, metadata=metadatas[i])]
|
||||
)
|
||||
|
||||
output = retriever.get_relevant_documents("foo", score=True)
|
||||
for doc in output:
|
||||
assert "_additional" in doc.metadata
|
||||
|
||||
@pytest.mark.vcr(ignore_localhost=True)
|
||||
def test_get_relevant_documents_with_filter(self, weaviate_url: str) -> None:
|
||||
"""Test end to end construction and MRR search."""
|
||||
|
||||
Reference in New Issue
Block a user