|
|
|
## Reqxtract |
|
|
|
### API router list |
|
|
|
- `api/docs.py` : Handles documents processing and extraction of requirements |
|
- `api/requirements.py` : Handles requirements processing and operations. |
|
- `api/solutions.py` : Handles solution generation and critique. |
|
|
|
|
|
### General flow |
|
The general use flow for the project is as follows |
|
|
|
```mermaid |
|
|
|
graph LR |
|
RetrievingStep("Selecting pCRs from 3GPP meetings") |
|
ExtractionStep("Extracting requirements from selected pCRs (server-side)") |
|
BootstrapSolutions("Boostrap solutions solving groups of requirements using a LLM (server-side)") |
|
AssessAndRefineSolution("Assess idea for patentability against a virtual patent committee, and refine the idea iteratively (client-side).") |
|
FindRelevantReqs("Find the requirements that are relevant to a given user idea / query") |
|
|
|
RetrievingStep --> ExtractionStep |
|
ExtractionStep --> FindRelevantReqs |
|
ExtractionStep --> BootstrapSolutions |
|
BootstrapSolutions --> AssessAndRefineSolution |
|
``` |
|
|
|
### Flow for solution boostrapping |
|
|
|
```mermaid |
|
|
|
graph LR |
|
CategorizeExtractedRequirements("Group extracted requirements (_/requirements/categorize_requirements_)") |
|
BootstrapSolutions("Bootstrap solutions ideas from requirement groups (_/solutions/bootstrap_solutions_)") |
|
SolutionCritic("Criticize solutions (_/solutions/criticize_solution_)") |
|
RefineSolutions("Refine solutions based on generated critics") |
|
LoopUser("Loop refinement based on user input") |
|
|
|
CategorizeExtractedRequirements --> BootstrapSolutions |
|
BootstrapSolutions --> SolutionCritic |
|
SolutionCritic --> RefineSolutions |
|
RefineSolutions --> LoopUser |
|
LoopUser -- "loop" --> SolutionCritic |
|
|
|
``` |
|
|
|
### Flow for solution assessment |
|
|
|
```mermaid |
|
|
|
graph LR |
|
DraftSolution["Draft a solution for assessment"] |
|
AssessSolution("Assess the solution in plain text using a LLM") |
|
ExtractInsight("Extract a structured output of summary of assessment + insights using a LLM") |
|
RefineSolution("Refine Solution using selected insights") |
|
FtoAnalysis("Perform a FTO analysis") |
|
AssessFto("Assess FTO report") |
|
|
|
DraftSolution -- "starts flow" --> AssessSolution |
|
AssessSolution --> ExtractInsight |
|
ExtractInsight --> RefineSolution |
|
ExtractInsight --> FtoAnalysis |
|
FtoAnalysis --> AssessFto |
|
AssessFto --> ExtractInsight |
|
RefineSolution --> AssessSolution |
|
``` |