The Multi Agent Researcher project is an advanced research tool designed to automate and enhance the process of gathering, analyzing, and synthesizing information from both web and local sources. It integrates various components such as document processing, embeddings, chat history management, and state management, leveraging technologies like OpenAI's language models and PostgreSQL for data persistence.
This project is organized into several modules, each with its own README file providing detailed information:
-
Infrastructure Setup: Contains Terraform configuration files for setting up the necessary AWS infrastructure, including modules for Cognito, S3, and Aurora.
-
API Module: Describes the FastAPI application that handles user authentication, file management, messaging, and research functionalities.
-
Researcher Module: Details the core logic of the Researcher project, including document loading, embeddings, chat history, and state management.
-
Initialization SQL Scripts: Provides SQL scripts for setting up the database schema, including tables for chat history, checkpoints, and user files.
-
Client Module: Describes the client-side components of the project, built using Streamlit, providing a user-friendly interface for interacting with the Researcher project.
- PGEmbeddings: Utilized for PostgreSQL tables, offering superior performance compared to PGVector for storing and querying vector data.
- Streamlit Frontend: Provides an interactive and user-friendly interface for users to manage files, conduct research, and collaborate.
- FastAPI Backend: Handles API requests efficiently, managing user authentication, file operations, and research functionalities.
- Langgraph AI Agent: Implements a cyclic agentic loop for researching any topic, inspired by GPT Researcher
- Vectorstore: Used for storing and searching documents and chat history, ensuring efficient retrieval and management of data.
To install the necessary dependencies, use the pyproject.toml
file with Poetry:
poetry install
Ensure you have Python 3.10 or higher installed, as specified in the pyproject.toml
.
This project is licensed under the Apache License 2.0. See the LICENSE file for more details.
Contributions are welcome! Please follow the guidelines outlined in the project's documentation and ensure that all code is well-documented and tested.
The project supports Langgraph Studio, which allows for visualizing and managing the Langchain graph. The configuration for Langgraph Studio is specified in the langgraph.json file, and the main graph logic is implemented in the langgraph_api/api.py.
This README provides a high-level overview of the Researcher project. For more detailed information, please refer to the individual README files in each module. Adjustments may be necessary for different environments or specific project requirements.