heymenn commited on
Commit
e602ae8
·
verified ·
1 Parent(s): c4e41ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -14
app.py CHANGED
@@ -11,7 +11,7 @@ app = FastAPI(
11
  description="Find relevant technologies from a problem",
12
  )
13
 
14
- class InputData(BaseModel):
15
  problem: str
16
 
17
  class InputConstraints(BaseModel):
@@ -27,37 +27,47 @@ class Technology(BaseModel):
27
  limitations: str
28
  id: int
29
 
30
- class PriorArt(BaseModel):
31
  """Represents the search of prior art using the technology combinations"""
32
  content: str
33
  uris: List
34
 
 
 
 
 
 
 
 
 
 
 
 
35
  # This schema defines the root structure of the JSON
36
  class TechnologyData(BaseModel):
37
  """Represents the top-level object containing a list of technologies."""
38
  technologies: List[Technology]
39
 
40
  @app.post("/process", response_model=TechnologyData)
41
- async def process(data: InputData):
42
- result = process_input(data, global_tech, global_tech_embeddings, "problem")
43
- return {"technologies": result}
44
 
45
  @app.post("/process-constraints", response_model=TechnologyData)
46
  async def process_constraints(constraints: InputConstraints):
47
- result = process_input(constraints.constraints, global_tech, global_tech_embeddings, "constraints")
48
- return {"technologies": result}
49
 
50
- @app.post("/prior-art-constraints", response_model=PriorArt)
51
- async def prior_art_search(TechnologyData, InputConstraints, type: str):
52
- prior_art = process_prior_art(TechnologyData, InputConstraints, type)
53
  return prior_art
54
 
55
- @app.post("/prior-art-problems", response_model=PriorArt)
56
- async def prior_art_search_problems(technologies: TechnologyData, problems: InputData, type: str):
57
- prior_art = process_prior_art(technologies, problems, type)
58
  return prior_art
59
 
60
-
61
  def make_json_serializable(data):
62
  if isinstance(data, dict):
63
  return {k: make_json_serializable(v) for k, v in data.items()}
 
11
  description="Find relevant technologies from a problem",
12
  )
13
 
14
+ class InputProblem(BaseModel):
15
  problem: str
16
 
17
  class InputConstraints(BaseModel):
 
27
  limitations: str
28
  id: int
29
 
30
+ class OutputPriorArt(BaseModel):
31
  """Represents the search of prior art using the technology combinations"""
32
  content: str
33
  uris: List
34
 
35
+ class InputPriorArtConstraints(BaseModel):
36
+ technologies: List[Technology]
37
+ constriants: List[InputConstraints]
38
+ data_type: str
39
+
40
+ class InputPriorArtProblems(BaseModel):
41
+ technologies: List[Technology]
42
+ constriants: List[InputProblem]
43
+ data_type: str
44
+
45
+
46
  # This schema defines the root structure of the JSON
47
  class TechnologyData(BaseModel):
48
  """Represents the top-level object containing a list of technologies."""
49
  technologies: List[Technology]
50
 
51
  @app.post("/process", response_model=TechnologyData)
52
+ async def process(data: InputProblem):
53
+ result, prior_art = process_input(data, global_tech, global_tech_embeddings, "problem")
54
+ return {"technologies": result, "prior_art": prior_art}
55
 
56
  @app.post("/process-constraints", response_model=TechnologyData)
57
  async def process_constraints(constraints: InputConstraints):
58
+ result, prior_art = process_input(constraints.constraints, global_tech, global_tech_embeddings, "constraints")
59
+ return {"technologies": result, "prior_art": prior_art}
60
 
61
+ @app.post("/prior-art-constraints", response_model=OutputPriorArt)
62
+ async def prior_art_search(data: InputPriorArtConstraints):
63
+ prior_art = process_prior_art(InputPriorArtConstraints.technologies, InputPriorArtConstraints.constriants, InputPriorArtConstraints.data_type)
64
  return prior_art
65
 
66
+ @app.post("/prior-art-problems", response_model=OutputPriorArt)
67
+ async def prior_art_search(data: InputPriorArtProblems):
68
+ prior_art = process_prior_art(InputPriorArtProblems.technologies, InputPriorArtProblems.problems, InputPriorArtProblems.data_type)
69
  return prior_art
70
 
 
71
  def make_json_serializable(data):
72
  if isinstance(data, dict):
73
  return {k: make_json_serializable(v) for k, v in data.items()}