Rsr2425 commited on
Commit
5d81b34
·
1 Parent(s): c3c7abe

Added new feedback endpoint

Browse files
Files changed (1) hide show
  1. backend/app/main.py +20 -2
backend/app/main.py CHANGED
@@ -3,7 +3,8 @@ from fastapi.staticfiles import StaticFiles
3
  from fastapi.middleware.cors import CORSMiddleware
4
  from fastapi.responses import FileResponse
5
  from pydantic import BaseModel
6
- from backend.app.problem_generator import ProblemGenerator
 
7
 
8
  app = FastAPI()
9
 
@@ -21,6 +22,11 @@ class UrlInput(BaseModel):
21
  class UserQuery(BaseModel):
22
  user_query: str
23
 
 
 
 
 
 
24
  @app.post("/api/crawl/")
25
  async def crawl_documentation(input_data: UrlInput):
26
  print(f"Received url {input_data.url}")
@@ -28,9 +34,21 @@ async def crawl_documentation(input_data: UrlInput):
28
 
29
  @app.post("/api/problems/")
30
  async def generate_problems(query: UserQuery):
31
- problems = ProblemGenerator().generate_problems(query.user_query)
32
  return {"Problems": problems}
33
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  # Serve static files
35
  app.mount("/static", StaticFiles(directory="/app/static/static"), name="static")
36
 
 
3
  from fastapi.middleware.cors import CORSMiddleware
4
  from fastapi.responses import FileResponse
5
  from pydantic import BaseModel
6
+ from backend.app.problem_generator import ProblemGenerationPipeline
7
+ from typing import Dict, List
8
 
9
  app = FastAPI()
10
 
 
22
  class UserQuery(BaseModel):
23
  user_query: str
24
 
25
+ class FeedbackInput(BaseModel):
26
+ user_query: str
27
+ problems: list[str]
28
+ user_answers: list[str]
29
+
30
  @app.post("/api/crawl/")
31
  async def crawl_documentation(input_data: UrlInput):
32
  print(f"Received url {input_data.url}")
 
34
 
35
  @app.post("/api/problems/")
36
  async def generate_problems(query: UserQuery):
37
+ problems = ProblemGenerationPipeline().generate_problems(query.user_query)
38
  return {"Problems": problems}
39
 
40
+ @app.post("/api/feedback/")
41
+ async def submit_feedback(feedback: FeedbackInput):
42
+ # check if problems len is equal to user_answers len
43
+ if len(feedback.problems) != len(feedback.user_answers):
44
+ raise HTTPException(status_code=400, detail="Problems and user answers must have the same length")
45
+
46
+ for problem, user_answer in zip(feedback.problems, feedback.user_answers):
47
+ print(f"Problem: {problem}")
48
+ print(f"User answer: {user_answer}")
49
+
50
+ return {"status": "success"}
51
+
52
  # Serve static files
53
  app.mount("/static", StaticFiles(directory="/app/static/static"), name="static")
54