LuisKazuto23's picture
Deploy assistive robot study app
b38f323
Raw
History Blame Contribute Delete
3.49 kB
from __future__ import annotations
from datetime import datetime
from sqlalchemy import (
Boolean,
Column,
DateTime,
Float,
ForeignKey,
Index,
Integer,
String,
Text,
)
from src.personalization_module.preference_acquisition.preference_memory.db import Base
class DecisionEvent(Base):
__tablename__ = "decision_events"
id = Column(Integer, primary_key=True)
request_id = Column(String, unique=True, nullable=False)
user_node_id = Column(Integer, ForeignKey("nodes.id"), nullable=False, index=True)
task_id = Column(String, nullable=True)
action_input_json = Column(Text, nullable=False, default="{}")
context_input_json = Column(Text, nullable=False, default="{}")
preference_snapshot_json = Column(Text, nullable=False, default="[]")
predicted_decision = Column(String, nullable=False)
class_scores_json = Column(Text, nullable=False, default="{}")
confidence = Column(Float, nullable=True)
runner_up_json = Column(Text, nullable=False, default="{}")
model_name = Column(String, nullable=True)
model_version = Column(String, nullable=True)
feature_schema_version = Column(String, nullable=True)
timestamp_utc = Column(DateTime, nullable=False, default=datetime.utcnow, index=True)
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
Index(
"ix_decision_events_user_created_at",
DecisionEvent.user_node_id,
DecisionEvent.created_at,
)
class FeedbackEvent(Base):
__tablename__ = "feedback_events"
id = Column(Integer, primary_key=True)
request_id = Column(String, nullable=True, index=True)
user_node_id = Column(Integer, ForeignKey("nodes.id"), nullable=False, index=True)
feedback_id = Column(String, nullable=True, unique=True)
predicted_decision = Column(String, nullable=True)
feedback_type = Column(String, nullable=False)
correct_decision = Column(String, nullable=True)
free_text = Column(Text, nullable=True)
preference_updates_json = Column(Text, nullable=False, default="[]")
graph_update_summary_json = Column(Text, nullable=False, default="{}")
timestamp_utc = Column(DateTime, nullable=False, default=datetime.utcnow, index=True)
applied_to_graph = Column(Boolean, nullable=False, default=False)
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
Index(
"ix_feedback_events_user_created_at",
FeedbackEvent.user_node_id,
FeedbackEvent.created_at,
)
class TrainingSample(Base):
__tablename__ = "training_samples"
id = Column(Integer, primary_key=True)
decision_event_id = Column(
Integer,
ForeignKey("decision_events.id"),
nullable=False,
index=True,
)
feedback_event_id = Column(
Integer,
ForeignKey("feedback_events.id"),
nullable=True,
index=True,
)
user_node_id = Column(Integer, ForeignKey("nodes.id"), nullable=False, index=True)
label_action = Column(String, nullable=False)
sample_payload_json = Column(Text, nullable=False, default="{}")
feature_vector_json = Column(Text, nullable=False, default="{}")
split = Column(String, nullable=True)
sample_source = Column(String, nullable=False, default="feedback_builder_v1")
created_at = Column(DateTime, nullable=False, default=datetime.utcnow)
Index(
"ix_training_samples_user_created_at",
TrainingSample.user_node_id,
TrainingSample.created_at,
)