conversation
Adapted from the Griptape AI Framework documentation.
Source Code in griptape/utils/conversation.py
@define(frozen=True) class Conversation: memory: Optional[BaseConversationMemory] = field() @memory.validator # pyright: ignore[reportAttributeAccessIssue, reportOptionalMemberAccess] def validate_memory(self, attribute: Attribute, value: Optional[BaseConversationMemory]) -> None: if value is None: raise ValueError("Conversation memory must not be None.") def lines(self) -> list[str]: from griptape.memory.structure import SummaryConversationMemory lines = [] for run in self.memory.runs if self.memory is not None else []: lines.extend((f"Q: {run.input}", f"A: {run.output}")) if isinstance(self.memory, SummaryConversationMemory): lines.append(f"Summary: {self.memory.summary}") return lines def prompt_stack(self) -> list[str]: from griptape.memory.structure import SummaryConversationMemory lines = [] for stack in self.memory.to_prompt_stack().messages if self.memory is not None else []: lines.append(f"{stack.role}: {stack.to_text()}") if isinstance(self.memory, SummaryConversationMemory): lines.append(f"Summary: {self.memory.summary}") return lines def __str__(self) -> str: return str.join("\n", self.lines())
memory = field()
class-attribute instance-attribute
str()
Source Code in griptape/utils/conversation.py
def __str__(self) -> str: return str.join("\n", self.lines())
lines()
Source Code in griptape/utils/conversation.py
def lines(self) -> list[str]: from griptape.memory.structure import SummaryConversationMemory lines = [] for run in self.memory.runs if self.memory is not None else []: lines.extend((f"Q: {run.input}", f"A: {run.output}")) if isinstance(self.memory, SummaryConversationMemory): lines.append(f"Summary: {self.memory.summary}") return lines
prompt_stack()
Source Code in griptape/utils/conversation.py
def prompt_stack(self) -> list[str]: from griptape.memory.structure import SummaryConversationMemory lines = [] for stack in self.memory.to_prompt_stack().messages if self.memory is not None else []: lines.append(f"{stack.role}: {stack.to_text()}") if isinstance(self.memory, SummaryConversationMemory): lines.append(f"Summary: {self.memory.summary}") return lines
validate_memory(attribute, value)
Source Code in griptape/utils/conversation.py
@memory.validator # pyright: ignore[reportAttributeAccessIssue, reportOptionalMemberAccess] def validate_memory(self, attribute: Attribute, value: Optional[BaseConversationMemory]) -> None: if value is None: raise ValueError("Conversation memory must not be None.")
Could this page be better? Report a problem or suggest an addition!