(
self,
input: LanguageModelInput,
config: Optional[RunnableConfig] = None,
*,
stop: Optional[List[str]] = None,
**kwargs: Any,
)
| 402 | ] |
| 403 | |
| 404 | def stream( |
| 405 | self, |
| 406 | input: LanguageModelInput, |
| 407 | config: Optional[RunnableConfig] = None, |
| 408 | *, |
| 409 | stop: Optional[List[str]] = None, |
| 410 | **kwargs: Any, |
| 411 | ) -> Iterator[str]: |
| 412 | if type(self)._stream == BaseLLM._stream: |
| 413 | # model doesn't implement streaming, so use default implementation |
| 414 | yield self.invoke(input, config=config, stop=stop, **kwargs) |
| 415 | else: |
| 416 | prompt = self._convert_input(input).to_string() |
| 417 | config = ensure_config(config) |
| 418 | params = self.dict() |
| 419 | params["stop"] = stop |
| 420 | params = {**params, **kwargs} |
| 421 | options = {"stop": stop} |
| 422 | callback_manager = CallbackManager.configure( |
| 423 | config.get("callbacks"), |
| 424 | self.callbacks, |
| 425 | self.verbose, |
| 426 | config.get("tags"), |
| 427 | self.tags, |
| 428 | config.get("metadata"), |
| 429 | self.metadata, |
| 430 | ) |
| 431 | (run_manager,) = callback_manager.on_llm_start( |
| 432 | dumpd(self), |
| 433 | [prompt], |
| 434 | invocation_params=params, |
| 435 | options=options, |
| 436 | name=config.get("run_name"), |
| 437 | run_id=config.pop("run_id", None), |
| 438 | batch_size=1, |
| 439 | ) |
| 440 | generation: Optional[GenerationChunk] = None |
| 441 | try: |
| 442 | for chunk in self._stream( |
| 443 | prompt, stop=stop, run_manager=run_manager, **kwargs |
| 444 | ): |
| 445 | yield chunk.text |
| 446 | if generation is None: |
| 447 | generation = chunk |
| 448 | else: |
| 449 | generation += chunk |
| 450 | assert generation is not None |
| 451 | except BaseException as e: |
| 452 | run_manager.on_llm_error( |
| 453 | e, |
| 454 | response=LLMResult( |
| 455 | generations=[[generation]] if generation else [] |
| 456 | ), |
| 457 | ) |
| 458 | raise e |
| 459 | else: |
| 460 | run_manager.on_llm_end(LLMResult(generations=[[generation]])) |
| 461 |
nothing calls this directly
no test coverage detected