RetrieversIntegrationTests#
- class langchain_tests.integration_tests.retrievers.RetrieversIntegrationTests[source]#
Base class for retrievers integration tests.
Attributes
num_results_arg_name
Returns the name of the parameter for the number of results returned.
retriever_constructor
A
BaseRetriever
subclass to be tested.retriever_constructor_params
Returns a dictionary of parameters to pass to the retriever constructor.
retriever_query_example
Returns a str representing the
query
of 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.Document
objects. Please confirm that your_get_relevant_documents
method returns a list ofDocument
objects.- 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_name
property.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
xfail
on 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 (
k
of 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_name
property.Note
If the retriever doesn’t support configuring the number of results returned via the constructor, this test can be skipped using a pytest
xfail
on 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