Reqxtract-v2 / doc /doc.md
Lucas ARRIESSE
Random fixes + doc bits
f3bf993

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


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


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


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