MCPcopy
hub / github.com/langchain-ai/langchain / stream

Method stream

libs/core/langchain_core/language_models/llms.py:404–460  ·  view source on GitHub ↗
(
        self,
        input: LanguageModelInput,
        config: Optional[RunnableConfig] = None,
        *,
        stop: Optional[List[str]] = None,
        **kwargs: Any,
    )

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 14

invokeMethod · 0.95
_convert_inputMethod · 0.95
dictMethod · 0.95
_streamMethod · 0.95
ensure_configFunction · 0.90
dumpdFunction · 0.90
LLMResultClass · 0.90
popMethod · 0.80
to_stringMethod · 0.45
configureMethod · 0.45
getMethod · 0.45
on_llm_startMethod · 0.45

Tested by

no test coverage detected