ChainContext#

class council.contexts.ChainContext(store: AgentContextStore, execution_context: ExecutionContext, name: str, budget: Budget, messages: Iterable[ChatMessage] | None = None)[source]#

Bases: ContextBase, MessageCollection

Represents the data context for a council.chains.Chain

append(message: ChatMessage) None[source]#

adds the message to the context

property budget: Budget#

returns the budget

property cancellation_token: CancellationToken#

returns the cancellation token

property chain_histories: Iterable[MessageCollection]#

returns the collections of all messages generated by the current chain, grouped by execution iteration

property chat_history: ChatHistory#

the chat history

property current: MessageCollection#

Returns the MessageCollection for the current execution of a Chain

Returns:

a collection of messages

Return type:

MessageCollection

static empty() ChainContext[source]#

helper function that creates a new empty instance.

For test purpose only.

execution_log_to_dict() Dict[str, Any]#

returns the execution log as a dictionary

execution_log_to_json() str#

returns the execution as a JSON string

extend(messages: Iterable[ChatMessage]) None[source]#

adds many message to the context

fork_for(monitored: Monitored, budget: Budget | None = None) ChainContext[source]#

forks the context for the given object, adjust the execution context appropriately

static from_agent_context(context: AgentContext, monitored: Monitored, name: str, budget: Budget | None = None)[source]#

creates a new instance from an AgentContext, adjust the execution context appropriately.

static from_chat_history(history: ChatHistory, budget: Budget | None = None) ChainContext[source]#

helper function that creates a new instance from a ChatHistory.

For test purpose only.

static from_user_message(message: str, budget: Budget | None = None) ChainContext[source]#

creates a new instance from a user message. The ChatHistory contains only the user message

property iteration_count: int#

the number of iteration for this execution

property last_agent_message: ChatMessage | None#

Returns the last message of kind ChatMessageKind.Agent, if any, otherwise None

Return type:

Optional[ChatMessage]

property last_message: ChatMessage | None#

Returns the last message, if any, otherwise None.

Return type:

Optional[ChatMessage]

last_message_from_skill(skill_name: str) ChatMessage | None#

Returns the last message generated by a given skill, if any, otherwise None

Parameters:

skill_name (str) – Name of the skill

Return type:

Optional[ChatMessage]

property last_user_message: ChatMessage | None#

Returns the last message of kind ChatMessageKind.User, if any, otherwise None

Return type:

Optional[ChatMessage]

property log_entry: ExecutionLogEntry#

the log entry

merge(contexts: List[ChainContext]) None[source]#

merge the given context to the context

property messages: Iterable[ChatMessage]#

returns all the visible messages for the chain, ordered by execution iteration (oldest first). This contains:

  • the ChatHistory

  • all messages from previous iterations

  • visible messages from current iteration

new_log_entry(monitored: Monitored) ExecutionLogEntry#

creates a new log entry from this context

property reversed: Iterable[ChatMessage]#

similar to messages(), but in reverse order (most recent first).

should_stop() bool[source]#

returns True is the execution of the chain should be stopped. False otherwise. :returns: True is either the budget is expired or the cancellation token is set :rtype: bool

property try_last_agent_message: Option[ChatMessage]#

Returns the last message of kind ChatMessageKind.Agent wrapped into an Option

Returns:

Option[ChatMessage]

property try_last_message: Option[ChatMessage]#

Returns the last message, wrapped into an Option

Return type:

Option[ChatMessage]

try_last_message_from_skill(skill_name: str) Option[ChatMessage]#

Returns the last message generated by a given skill, wrapped into an Option

Parameters:

skill_name (str) – Name of the skill

Return type:

Option[ChatMessage]

property try_last_user_message: Option[ChatMessage]#

Returns the last message of kind ChatMessageKind.User, wrapped into an :class:`Option

Return type:

Option[ChatMessage]