File size: 1,106 Bytes
5ec1ba2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from api.models import FlagOutput, WorkflowQuery
from src.workflows.workflow import workflow
from sqlalchemy import create_engine, text
import os

class FastAPIService:
    def __init__(self):
        self.engine = create_engine(
            os.environ.get("POSTGRE_CONNECTION_STRING")
        )
    
    def answerQuery(self, workflowQueryModel: WorkflowQuery) -> str:
        return workflow.run(workflowQueryModel.query)
    
    def flagResponse(self, likedOrFlaggedModel: FlagOutput) -> str:
        with self.engine.connect() as conn:
            conn.execute(
                text("""
                    INSERT INTO feedback (query, response, flag, feedback)
                    VALUES (:query, :response, :flag, :feedback)
                """),
                {
                    "query": likedOrFlaggedModel.query,
                    "response": likedOrFlaggedModel.response,
                    "flag": likedOrFlaggedModel.flag,
                    "feedback": likedOrFlaggedModel.feedback
                }
            )
            conn.commit()
        return "Data inserted successfully"