Toggle Menu
Prev Up Next

# `langchain_core.beta.runnables.context`.Context

class langchain_core.beta.runnables.context.Context

  Context for a runnable.

  The Context class provides methods for creating context scopes, getters, and setters within a runnable. It allows for managing and accessing contextual information throughout the execution of a program.

  Example

      from langchain_core.beta.runnables.context import Context
      from langchain_core.runnables.passthrough import RunnablePassthrough
      from langchain_core.prompts.prompt import PromptTemplate
      from langchain_core.output_parsers.string import StrOutputParser
      from tests.unit_tests.fake.llm import FakeListLLM

      chain = (
          Context.setter("input")
          | {
              "context": RunnablePassthrough()
                      | Context.setter("context"),
              "question": RunnablePassthrough(),
          }
          | PromptTemplate.from_template("{context} {question}")
          | FakeListLLM(responses=["hello"])
          | StrOutputParser()
          | {
              "result": RunnablePassthrough(),
              "context": Context.getter("context"),
              "input": Context.getter("input"),
          }
      )

      # Use the chain
      output = chain.invoke("What's your name?")
      print(output["result"])  # Output: "hello"
      print(output["context"])  # Output: "What's your name?"
      print(output["input"])  # Output: "What's your name?

  Methods

  `__init__`() |
  `create_scope`(scope, /) | Create a context scope.
  `getter`(key, /) |
  `setter`([_key, _value]) |

  __init__()
  static create_scope(scope: str, /) → PrefixContext

    Create a context scope.

    Parameters

      scope (str) – The scope.

    Returns

      The context scope.

    Return type

      PrefixContext

  static getter(key: Union[str, List[str]], /) → ContextGet
    Parameters

      key (Union[str, List[str]]) –

    Return type

      ContextGet

  static setter(_key: Optional[str] = None, _value: Optional[Union[Runnable[Input, Output], Callable[[Input], Output], Callable[[Input], Awaitable[Output]], Any]] = None, /, **kwargs: Union[Runnable[Input, Output], Callable[[Input], Output], Callable[[Input], Awaitable[Output]], Any]) → ContextSet
    Parameters

      - _key (Optional[str]) –

      - _value (Optional[Union[Runnable[Input, Output], Callable[[Input], Output], Callable[[Input], Awaitable[Output]], Any]]) –

      - kwargs (Union[Runnable[Input, Output], Callable[[Input], Output], Callable[[Input], Awaitable[Output]], Any]) –

    Return type

      ContextSet