Asynchronously invoke the retriever to get relevant documents. Main entry point for asynchronous retriever invocations. Args: input: The query string config: Configuration for the retriever **kwargs: Additional arguments to pass to the retriever
(
self,
input: str,
config: Optional[RunnableConfig] = None,
**kwargs: Any,
)
| 227 | return result |
| 228 | |
| 229 | async def ainvoke( |
| 230 | self, |
| 231 | input: str, |
| 232 | config: Optional[RunnableConfig] = None, |
| 233 | **kwargs: Any, |
| 234 | ) -> List[Document]: |
| 235 | """Asynchronously invoke the retriever to get relevant documents. |
| 236 | |
| 237 | Main entry point for asynchronous retriever invocations. |
| 238 | |
| 239 | Args: |
| 240 | input: The query string |
| 241 | config: Configuration for the retriever |
| 242 | **kwargs: Additional arguments to pass to the retriever |
| 243 | |
| 244 | Returns: |
| 245 | List of relevant documents |
| 246 | |
| 247 | Examples: |
| 248 | |
| 249 | .. code-block:: python |
| 250 | |
| 251 | await retriever.ainvoke("query") |
| 252 | """ |
| 253 | from langchain_core.callbacks.manager import AsyncCallbackManager |
| 254 | |
| 255 | config = ensure_config(config) |
| 256 | callback_manager = AsyncCallbackManager.configure( |
| 257 | config.get("callbacks"), |
| 258 | None, |
| 259 | verbose=kwargs.get("verbose", False), |
| 260 | inheritable_tags=config.get("tags"), |
| 261 | local_tags=self.tags, |
| 262 | inheritable_metadata=config.get("metadata"), |
| 263 | local_metadata=self.metadata, |
| 264 | ) |
| 265 | run_manager = await callback_manager.on_retriever_start( |
| 266 | dumpd(self), |
| 267 | input, |
| 268 | name=config.get("run_name"), |
| 269 | run_id=kwargs.pop("run_id", None), |
| 270 | ) |
| 271 | try: |
| 272 | _kwargs = kwargs if self._expects_other_args else {} |
| 273 | if self._new_arg_supported: |
| 274 | result = await self._aget_relevant_documents( |
| 275 | input, run_manager=run_manager, **_kwargs |
| 276 | ) |
| 277 | else: |
| 278 | result = await self._aget_relevant_documents(input, **_kwargs) |
| 279 | except Exception as e: |
| 280 | await run_manager.on_retriever_error(e) |
| 281 | raise e |
| 282 | else: |
| 283 | await run_manager.on_retriever_end( |
| 284 | result, |
| 285 | ) |
| 286 | return result |
no test coverage detected