RetrieversIntegrationTests#
- class langchain_tests.integration_tests.retrievers.RetrieversIntegrationTests[source]#
Base class for retrievers integration tests.
Attributes
num_results_arg_nameReturns the name of the parameter for the number of results returned.
retriever_constructorA
BaseRetrieversubclass to be tested.retriever_constructor_paramsReturns a dictionary of parameters to pass to the retriever constructor.
retriever_query_exampleReturns a str representing the
queryof an example retriever call.Methods
test_ainvoke_returns_documents(retriever)Test ainvoke returns documents.
test_invoke_returns_documents(retriever)Test invoke returns documents.
test_invoke_with_k_kwarg(retriever)Test the number of results parameter in
invoke().Test the number of results constructor parameter.
- async test_ainvoke_returns_documents(
- retriever: BaseRetriever,
Test ainvoke returns documents.
If ainvoked with the example params, the retriever should return a list of Documents.
See
test_invoke_returns_documents()for more information on troubleshooting.- Parameters:
retriever (BaseRetriever)
- Return type:
None
- test_invoke_returns_documents(
- retriever: BaseRetriever,
Test invoke returns documents.
If invoked with the example params, the retriever should return a list of Documents.
Troubleshooting
If this test fails, the retriever’s invoke method does not return a list of
langchain_core.document.Documentobjects. Please confirm that your_get_relevant_documentsmethod returns a list ofDocumentobjects.- Parameters:
retriever (BaseRetriever)
- Return type:
None
- test_invoke_with_k_kwarg(
- retriever: BaseRetriever,
Test the number of results parameter in
invoke().Test that the invoke method accepts a parameter representing the number of documents to return.
By default, the parameter is named
, but it can be overridden by setting the ``num_results_arg_nameproperty.Note
If the retriever doesn’t support configuring the number of results returned via the invoke method, this test can be skipped using a pytest
xfailon the test class:@pytest.mark.xfail( reason="This retriever doesn't support setting " "the number of results in the invoke method." ) def test_invoke_with_k_kwarg(self) -> None: raise NotImplementedError
Troubleshooting
If this test fails, the retriever’s invoke method does not accept a number of results parameter, or the retriever does not return the correct number of documents (
kof the one set innum_results_arg_name) when it is set.For example, a retriever like
MyRetriever().invoke("query", k=3)
should return 3 documents when invoked with a query.
- Parameters:
retriever (BaseRetriever)
- Return type:
None
- test_k_constructor_param() None[source]#
Test the number of results constructor parameter.
Test that the retriever constructor accepts a parameter representing the number of documents to return.
By default, the parameter tested is named
k, but it can be overridden by setting thenum_results_arg_nameproperty.Note
If the retriever doesn’t support configuring the number of results returned via the constructor, this test can be skipped using a pytest
xfailon the test class:@pytest.mark.xfail( reason="This retriever doesn't support setting " "the number of results via the constructor." ) def test_k_constructor_param(self) -> None: raise NotImplementedError
Troubleshooting
If this test fails, the retriever constructor does not accept a number of results parameter, or the retriever does not return the correct number of documents ( of the one set in
num_results_arg_name) when it is set.For example, a retriever like
MyRetriever(k=3).invoke("query")
should return 3 documents when invoked with a query.
- Return type:
None