File size: 2,375 Bytes
6edfd36
 
 
f3bf993
 
 
 
 
 
4036d98
 
6edfd36
 
 
 
 
 
 
 
 
 
 
 
 
4036d98
6edfd36
4036d98
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6edfd36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

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