Spaces:
Sleeping
Sleeping
File size: 3,490 Bytes
b38f323 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | 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,
)
|