[docs]classFakeListLLM(LLM):"""Fake LLM for testing purposes."""responses:List[str]sleep:Optional[float]=Nonei:int=0@propertydef_llm_type(self)->str:"""Return type of llm."""return"fake-list"def_call(self,prompt:str,stop:Optional[List[str]]=None,run_manager:Optional[CallbackManagerForLLMRun]=None,**kwargs:Any,)->str:"""Return next response"""response=self.responses[self.i]ifself.i<len(self.responses)-1:self.i+=1else:self.i=0returnresponseasyncdef_acall(self,prompt:str,stop:Optional[List[str]]=None,run_manager:Optional[AsyncCallbackManagerForLLMRun]=None,**kwargs:Any,)->str:"""Return next response"""response=self.responses[self.i]ifself.i<len(self.responses)-1:self.i+=1else:self.i=0returnresponse@propertydef_identifying_params(self)->Mapping[str,Any]:return{"responses":self.responses}
[docs]classFakeStreamingListLLM(FakeListLLM):"""Fake streaming list LLM for testing purposes."""