| ## 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 | |
| ``` |