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