Skip to content

Conversation metadata

conversation_assistant_run_association_table = Table('conversation_assistant_run_association', Model.metadata, Column('conversation_id', ForeignKey('conversation_metadatas.id'), primary_key=True), Column('assistant_run_id', ForeignKey('assistant_runs.id'), primary_key=True)) module-attribute

conversation_message_association_table = Table('conversation_message_association', Model.metadata, Column('conversation_id', ForeignKey('conversation_metadatas.id'), primary_key=True), Column('message_id', ForeignKey('messages.id'), primary_key=True)) module-attribute

conversation_pending_assistant_run_association_table = Table('conversation_pending_assistant_run_association', Model.metadata, Column('conversation_id', ForeignKey('conversation_metadatas.id'), primary_key=True), Column('assistant_run_id', ForeignKey('assistant_runs.id'), primary_key=True)) module-attribute

conversation_sub_assistant_run_info_association_table = Table('conversation_sub_assistant_run_info_association', Model.metadata, Column('conversation_id', ForeignKey('conversation_metadatas.id'), primary_key=True), Column('sub_assistant_run_info_id', ForeignKey('sub_assistant_run_infos.id'), primary_key=True)) module-attribute

ConversationMetadataModel

Bases: CrudMixin, ModelWithSchema

Metadata for a conversation.

__table_args__ = (UniqueConstraint('conversation_uid', 'version', name='unique_conversation_uid_version'),) class-attribute instance-attribute

__tablename__ = 'conversation_metadatas' class-attribute instance-attribute

assistant_id = mapped_column(ForeignKey(f'{AssistantSchema.tablename()}.id')) class-attribute instance-attribute

assistant_runs = relationship(lazy='raise', secondary=conversation_assistant_run_association_table, order_by='asc(AssistantRunModel.created_at)') class-attribute instance-attribute

conversation_uid = mapped_column(index=True) class-attribute instance-attribute

created_at = mapped_column(DateType) class-attribute instance-attribute

default_assistant = relationship(lazy='raise') class-attribute instance-attribute

id = mapped_column(primary_key=True) class-attribute instance-attribute

last_updated_at = mapped_column(DateType) class-attribute instance-attribute

message_history = relationship(lazy='selectin', secondary=conversation_message_association_table, order_by=MessageModel.conversation_position, collection_class=ordering_list('conversation_position')) class-attribute instance-attribute

next_run_index instance-attribute

pending_assistant_runs = relationship(lazy='raise', secondary=conversation_pending_assistant_run_association_table, order_by='asc(AssistantRunModel.created_at)') class-attribute instance-attribute

schema_class = ConversationMetadataSchema class-attribute instance-attribute

sub_assistant_run_info = relationship(lazy='raise', secondary=conversation_sub_assistant_run_info_association_table, uselist=False) class-attribute instance-attribute

title instance-attribute

user = relationship(back_populates='conversations', lazy='raise') class-attribute instance-attribute

user_id = mapped_column(ForeignKey('users.id')) class-attribute instance-attribute

fully_load_model_options() classmethod

model_from_schema(schema) classmethod

to_schema()

SubAssistantDataModel

Bases: CrudMixin, ModelWithSchema

Data for sub-assistants.

__tablename__ = 'sub_assistant_datas' class-attribute instance-attribute

all_messages = relationship(lazy='selectin') class-attribute instance-attribute

earlier_conv_summary instance-attribute

schema_class = SubAssistantData class-attribute instance-attribute

sub_assistant_name instance-attribute

sub_assistant_run_info_id = mapped_column(ForeignKey('sub_assistant_run_infos.id')) class-attribute instance-attribute

sub_assistant_type instance-attribute

sub_assistant_user_id instance-attribute

uid = mapped_column() class-attribute instance-attribute

fully_load_model_options() classmethod

model_from_schema(schema) classmethod

to_schema()

SubAssistantRunInfoModel

Bases: CrudMixin, ModelWithSchema

Info/Data from sub-assistant runs that should persist between runs.

__tablename__ = 'sub_assistant_run_infos' class-attribute instance-attribute

schema_class = SubAssistantRunInfo class-attribute instance-attribute

sub_assistant_datas = relationship(lazy='selectin') class-attribute instance-attribute

fully_load_model_options() classmethod

model_from_schema(schema) classmethod

to_schema()

check_assistant_runs(assistant_runs, allow_not_loaded=False)

check_assistant_runs(
    assistant_runs: Any, allow_not_loaded: Literal[False]
) -> TypeGuard[list[AssistantRunSchema]]
check_assistant_runs(
    assistant_runs: Any, allow_not_loaded: Literal[True]
) -> TypeGuard[list[AssistantRunSchema] | NotLoaded]

check_messages(messages, allow_not_loaded=False)

check_messages(
    messages: Any, allow_not_loaded: Literal[False]
) -> TypeGuard[list[MessageSchema]]
check_messages(
    messages: Any, allow_not_loaded: Literal[True]
) -> TypeGuard[list[MessageSchema] | NotLoaded]