|
|
| ## Reqxtract |
|
|
| ### Dev mode |
|
|
| Export the following env variables to enable debug logs and disable SSL for local dev |
| ```bash |
| export NO_SSL=1 |
| export DEBUG_LOG=1 |
| ``` |
|
|
| ### 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 |
| ``` |