Context#

class langchain_core.beta.runnables.context.Context[source]#

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[source]#

Create a context scope.

Parameters:

scope (str) – The scope.

Returns:

The context scope.

Return type:

PrefixContext

static getter(key: str | List[str], /) ContextGet[source]#
Parameters:

key (str | List[str])

Return type:

ContextGet

static setter(_key: str | None = None, _value: Runnable[Input, Output] | Callable[[Input], Output] | Callable[[Input], Awaitable[Output]] | Any | None = None, /, **kwargs: Runnable[Input, Output] | Callable[[Input], Output] | Callable[[Input], Awaitable[Output]] | Any) ContextSet[source]#
Parameters:
  • _key (str | None)

  • _value (Runnable[Input, Output] | Callable[[Input], Output] | Callable[[Input], Awaitable[Output]] | Any | None)

  • kwargs (Runnable[Input, Output] | Callable[[Input], Output] | Callable[[Input], Awaitable[Output]] | Any)

Return type:

ContextSet