Invoke the retriever to get relevant documents. Main entry point for synchronous retriever invocations. Args: input: The query string config: Configuration for the retriever **kwargs: Additional arguments to pass to the retriever Returns
(
self, input: str, config: Optional[RunnableConfig] = None, **kwargs: Any
)
| 171 | ) |
| 172 | |
| 173 | def invoke( |
| 174 | self, input: str, config: Optional[RunnableConfig] = None, **kwargs: Any |
| 175 | ) -> List[Document]: |
| 176 | """Invoke the retriever to get relevant documents. |
| 177 | |
| 178 | Main entry point for synchronous retriever invocations. |
| 179 | |
| 180 | Args: |
| 181 | input: The query string |
| 182 | config: Configuration for the retriever |
| 183 | **kwargs: Additional arguments to pass to the retriever |
| 184 | |
| 185 | Returns: |
| 186 | List of relevant documents |
| 187 | |
| 188 | Examples: |
| 189 | |
| 190 | .. code-block:: python |
| 191 | |
| 192 | retriever.invoke("query") |
| 193 | """ |
| 194 | from langchain_core.callbacks.manager import CallbackManager |
| 195 | |
| 196 | config = ensure_config(config) |
| 197 | callback_manager = CallbackManager.configure( |
| 198 | config.get("callbacks"), |
| 199 | None, |
| 200 | verbose=kwargs.get("verbose", False), |
| 201 | inheritable_tags=config.get("tags"), |
| 202 | local_tags=self.tags, |
| 203 | inheritable_metadata=config.get("metadata"), |
| 204 | local_metadata=self.metadata, |
| 205 | ) |
| 206 | run_manager = callback_manager.on_retriever_start( |
| 207 | dumpd(self), |
| 208 | input, |
| 209 | name=config.get("run_name"), |
| 210 | run_id=kwargs.pop("run_id", None), |
| 211 | ) |
| 212 | try: |
| 213 | _kwargs = kwargs if self._expects_other_args else {} |
| 214 | if self._new_arg_supported: |
| 215 | result = self._get_relevant_documents( |
| 216 | input, run_manager=run_manager, **_kwargs |
| 217 | ) |
| 218 | else: |
| 219 | result = self._get_relevant_documents(input, **_kwargs) |
| 220 | except Exception as e: |
| 221 | run_manager.on_retriever_error(e) |
| 222 | raise e |
| 223 | else: |
| 224 | run_manager.on_retriever_end( |
| 225 | result, |
| 226 | ) |
| 227 | return result |
| 228 | |
| 229 | async def ainvoke( |
| 230 | self, |
no test coverage detected