[docs]classCohereRagRetriever(BaseRetriever):"""Cohere Chat API with RAG."""llm:BaseChatModel"""Cohere ChatModel to use."""model_config=ConfigDict(arbitrary_types_allowed=True,)def_get_relevant_documents(self,query:str,*,run_manager:CallbackManagerForRetrieverRun,documents:Optional[List[Dict[str,str]]]=None,**kwargs:Any,)->List[Document]:messages:List[List[BaseMessage]]=[[HumanMessage(content=query)]]res=self.llm.generate(messages,documents=documents,callbacks=run_manager.get_child(),**kwargs,).generations[0][0]return_get_docs(res)asyncdef_aget_relevant_documents(self,query:str,*,run_manager:AsyncCallbackManagerForRetrieverRun,documents:Optional[List[Dict[str,str]]]=None,**kwargs:Any,)->List[Document]:messages:List[List[BaseMessage]]=[[HumanMessage(content=query)]]res=(awaitself.llm.agenerate(messages,documents=documents,callbacks=run_manager.get_child(),**kwargs,)).generations[0][0]return_get_docs(res)