The ToolBoss application is designed to provide a platform for autonomous compliance and claims verification. It utilizes a combination of natural language processing (NLP) and machine learning algorithms to analyze user input and provide a verdict based on a set of predefined rules and policies.
The application features two main components: LEXA AI and Meeting Summarizer. LEXA AI is a digital arbitrator that uses NLP to analyze user input and provide a verdict based on a set of predefined rules and policies. The Meeting Summarizer is a tool that uses speech recognition and NLP to summarize meetings and extract action items.
The application is built using a microservices architecture, with each component communicating with the others through RESTful APIs. The LEXA AI component uses a state machine to manage the workflow, while the Meeting Summarizer uses a pipeline approach to process audio files.
The project is structured into several directories, including modules for the LEXA AI and Meeting Summarizer components, pages for the web application, and app.py for the main application entry point.
The application uses a range of technologies, including Python, Streamlit, and Langchain, as well as several NLP and machine learning libraries.
The main components of the application include app.py, which is the main entry point for the application, modules/lexa/engine.py, which manages the LEXA AI workflow, and pages/summarizer_page.py, which handles the Meeting Summarizer functionality.
To install the application, clone the repository and run pip install -r requirements.txt. Then, run streamlit run app.py to start the application.
The application uses environment variables to configure the LEXA AI and Meeting Summarizer components. These variables can be set in a .env file or through the command line.
To use the application, navigate to the web interface and select either the LEXA AI or Meeting Summarizer component. Follow the prompts to input data and receive a verdict or summary.
The workflow for the LEXA AI component involves the following steps:
- User input: The user inputs a story or claim.
- Intake: The input is processed and structured into a JSON object.
- Analysis: The JSON object is analyzed using NLP and machine learning algorithms.
- Verdict: A verdict is generated based on the analysis.
The workflow for the Meeting Summarizer component involves the following steps:
- Audio input: The user uploads an audio file.
- Transcription: The audio file is transcribed using speech recognition.
- Summary: The transcript is summarized using NLP algorithms.
- Action items: Action items are extracted from the summary.
The ToolBoss application is built using a microservices architecture, with each component communicating with the others through RESTful APIs.
flowchart TD
A[User Input] -->|input| B[LEXA AI]
B -->|verdict| C[User Feedback]
D[Audio Input] -->|input| E[Meeting Summarizer]
E -->|summary| F[User Feedback]
G[Database] -->|data| B
G -->|data| E
The application is designed to be scalable and flexible, with each component able to be updated or replaced independently.
The project is structured into several directories, including modules for the LEXA AI and Meeting Summarizer components, pages for the web application, and app.py for the main application entry point.
The execution flow for the LEXA AI component involves the following steps:
- User input: The user inputs a story or claim.
- Intake: The input is processed and structured into a JSON object.
- Analysis: The JSON object is analyzed using NLP and machine learning algorithms.
- Verdict: A verdict is generated based on the analysis.
The execution flow for the Meeting Summarizer component involves the following steps:
- Audio input: The user uploads an audio file.
- Transcription: The audio file is transcribed using speech recognition.
- Summary: The transcript is summarized using NLP algorithms.
- Action items: Action items are extracted from the summary.
The data flow for the application involves the following steps:
- User input: The user inputs data into the application.
- Processing: The input data is processed and analyzed using NLP and machine learning algorithms.
- Storage: The processed data is stored in a database.
- Retrieval: The stored data is retrieved and used to generate a verdict or summary.
The modules in the application are related as follows:
app.pyis the main entry point for the application and imports theLEXA AIandMeeting Summarizercomponents.modules/lexa/engine.pymanages the LEXA AI workflow and imports theinterviewerandauditorcomponents.pages/summarizer_page.pyhandles the Meeting Summarizer functionality and imports thetranscriptionandsummarycomponents.
The application uses several AI and ML components, including:
langchainfor NLP and machine learning tasksstreamlitfor building the web applicationwhisperfor speech recognition
The application uses a database to store processed data and retrieve it for generating verdicts or summaries.
The application does not use any external services.
The application uses a range of technologies, including Python, Streamlit, and Langchain, as well as several NLP and machine learning libraries.