add metacognitions
This commit is contained in:
parent
5f838e0f9c
commit
b4a41378ae
|
|
@ -40,10 +40,32 @@ def create_session(db: Session, user_id: str, session: schemas.SessionCreate):
|
|||
def create_message(db: Session, message: schemas.MessageCreate, session_id: int):
|
||||
db_message = models.Message(
|
||||
session_id=session_id,
|
||||
message_type=message.message_type,
|
||||
is_user=message.is_user,
|
||||
content=message.content,
|
||||
)
|
||||
db.add(db_message)
|
||||
db.commit()
|
||||
db.refresh(db_message)
|
||||
return db_message
|
||||
|
||||
|
||||
def get_metacognitions(db: Session, message_id: int):
|
||||
return (
|
||||
db.query(models.Metacognitions)
|
||||
.filter(models.Metacognitions.message_id == message_id)
|
||||
.all()
|
||||
)
|
||||
|
||||
|
||||
def create_metacognition(
|
||||
db: Session, metacognition: schemas.MetacognitionsCreate, message_id: int
|
||||
):
|
||||
db_metacognition = models.Metacognitions(
|
||||
message_id=message_id,
|
||||
metacognition_type=metacognition.metacognition_type,
|
||||
content=metacognition.content,
|
||||
)
|
||||
db.add(db_metacognition)
|
||||
db.commit()
|
||||
db.refresh(db_metacognition)
|
||||
return db_metacognition
|
||||
|
|
|
|||
|
|
@ -47,3 +47,30 @@ def create_message_for_session(
|
|||
db: Session = Depends(get_db),
|
||||
):
|
||||
return crud.create_message(db, message, session_id)
|
||||
|
||||
|
||||
@app.get(
|
||||
"/users/{user_id}/sessions/{session_id}/messages/{message_id}/metacognitions/",
|
||||
response_model=list[schemas.Metacognitions],
|
||||
)
|
||||
def get_metacognitions_for_message(
|
||||
user_id: str,
|
||||
session_id: int,
|
||||
message_id: int,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return crud.get_metacognitions(db, message_id)
|
||||
|
||||
|
||||
@app.post(
|
||||
"/users/{user_id}/sessions/{session_id}/messages/{message_id}/metacognitions/",
|
||||
response_model=schemas.Metacognitions,
|
||||
)
|
||||
def create_metacognition_for_message(
|
||||
user_id: str,
|
||||
session_id: int,
|
||||
message_id: int,
|
||||
metacognition: schemas.MetacognitionsCreate,
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
return crud.create_metacognition(db, metacognition, message_id)
|
||||
|
|
|
|||
|
|
@ -21,10 +21,19 @@ class Message(Base):
|
|||
__tablename__ = "messages"
|
||||
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
|
||||
session_id = Column(Integer, ForeignKey("sessions.id"))
|
||||
message_type = Column(String, index=True)
|
||||
is_user = Column(Boolean)
|
||||
content = Column(String)
|
||||
|
||||
session = relationship("Session", back_populates="messages")
|
||||
metacognitions = relationship("Metacognitions", back_populates="message")
|
||||
|
||||
|
||||
# TODO: add metacognitive data to messages
|
||||
class Metacognitions(Base):
|
||||
__tablename__ = "metacognitions"
|
||||
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
|
||||
message_id = Column(Integer, ForeignKey("messages.id"))
|
||||
metacognition_type = Column(String, index=True)
|
||||
content = Column(String)
|
||||
|
||||
message = relationship("Message", back_populates="metacognitions")
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from pydantic import BaseModel
|
|||
|
||||
class MessageBase(BaseModel):
|
||||
content: str
|
||||
message_type: str
|
||||
is_user: bool
|
||||
|
||||
|
||||
class MessageCreate(MessageBase):
|
||||
|
|
@ -34,3 +34,19 @@ class Session(SessionBase):
|
|||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
||||
|
||||
class MetacognitionsBase(BaseModel):
|
||||
metacognition_type: str
|
||||
content: str
|
||||
|
||||
|
||||
class MetacognitionsCreate(MetacognitionsBase):
|
||||
pass
|
||||
|
||||
|
||||
class Metacognitions(MetacognitionsBase):
|
||||
id: int
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
|
|
|
|||
Loading…
Reference in New Issue