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

Method astream

libs/core/langchain_core/language_models/llms.py:462–522  ·  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

460 run_manager.on_llm_end(LLMResult(generations=[[generation]]))
461
462 async def astream(
463 self,
464 input: LanguageModelInput,
465 config: Optional[RunnableConfig] = None,
466 *,
467 stop: Optional[List[str]] = None,
468 **kwargs: Any,
469 ) -> AsyncIterator[str]:
470 if (
471 type(self)._astream is BaseLLM._astream
472 and type(self)._stream is BaseLLM._stream
473 ):
474 yield await self.ainvoke(input, config=config, stop=stop, **kwargs)
475 return
476
477 prompt = self._convert_input(input).to_string()
478 config = ensure_config(config)
479 params = self.dict()
480 params["stop"] = stop
481 params = {**params, **kwargs}
482 options = {"stop": stop}
483 callback_manager = AsyncCallbackManager.configure(
484 config.get("callbacks"),
485 self.callbacks,
486 self.verbose,
487 config.get("tags"),
488 self.tags,
489 config.get("metadata"),
490 self.metadata,
491 )
492 (run_manager,) = await callback_manager.on_llm_start(
493 dumpd(self),
494 [prompt],
495 invocation_params=params,
496 options=options,
497 name=config.get("run_name"),
498 run_id=config.pop("run_id", None),
499 batch_size=1,
500 )
501 generation: Optional[GenerationChunk] = None
502 try:
503 async for chunk in self._astream(
504 prompt,
505 stop=stop,
506 run_manager=run_manager,
507 **kwargs,
508 ):
509 yield chunk.text
510 if generation is None:
511 generation = chunk
512 else:
513 generation += chunk
514 assert generation is not None
515 except BaseException as e:
516 await run_manager.on_llm_error(
517 e,
518 response=LLMResult(generations=[[generation]] if generation else []),
519 )

Callers

nothing calls this directly

Calls 14

ainvokeMethod · 0.95
_convert_inputMethod · 0.95
dictMethod · 0.95
_astreamMethod · 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