https://github.com/esradag/personal-research-assistant
An AI-powered research assistant Python, Streamlit, Google Cloud, LangChain, LangGraph, LlamaIndex, and OpenAI to automate information discovery, verification, synthesis, and structured report generation.
https://github.com/esradag/personal-research-assistant
googlecloud langchain langgraph llamaindex openai python streamlit
Last synced: 12 months ago
JSON representation
An AI-powered research assistant Python, Streamlit, Google Cloud, LangChain, LangGraph, LlamaIndex, and OpenAI to automate information discovery, verification, synthesis, and structured report generation.
- Host: GitHub
- URL: https://github.com/esradag/personal-research-assistant
- Owner: esradag
- License: other
- Created: 2025-02-27T16:08:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-27T16:28:50.000Z (over 1 year ago)
- Last Synced: 2025-02-27T22:49:37.098Z (over 1 year ago)
- Topics: googlecloud, langchain, langgraph, llamaindex, openai, python, streamlit
- Language: Python
- Homepage:
- Size: 42 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Personal Research Assistant
An AI-powered research assistant designed for efficient information discovery, collection, verification, and synthesis.
## Features
- **Topic Discovery**: Expand and refine research topics to ensure comprehensive coverage.
- **Information Collection**: Retrieve content from multiple sources, including the web, Wikipedia, and academic databases.
- **Verification**: Cross-check information from different sources for reliability and accuracy.
- **Synthesis**: Analyze and integrate collected data to generate meaningful insights.
- **Reporting**: Generate well-structured research reports with proper citations.
## Technology Stack
- **Python**: Core programming language.
- **Streamlit**: Provides a user-friendly interface for topic input, scope selection, and result visualization.
- **Google Cloud**: Utilizes Document AI for document analysis and Cloud Storage for research data.
- **LangChain**: Manages research pipelines, integrating tools like Google Search, Wikipedia, and academic databases.
- **LangGraph**: Implements a state graph to manage research flow (topic discovery → data collection → verification → synthesis → reporting).
- **LlamaIndex**: Enables efficient indexing of research sources for quick querying.
- **OpenAI**: Powers language models for research understanding, summarization, and coherent report generation.
## Installation
### 1. Clone the Repository
```bash
git clone https://github.com/yourusername/personal-research-assistant.git
cd personal-research-assistant
```
### 2. Create and Activate a Virtual Environment
```bash
python -m venv venv
source venv/bin/activate # On Windows, use: venv\Scripts\activate
```
### 3. Install Dependencies
```bash
pip install -r requirements.txt
```
### 4. Set Up Environment Variables
Create a `.env` file and add the following configurations:
```
OPENAI_API_KEY=your_openai_api_key
GOOGLE_APPLICATION_CREDENTIALS=path_to_your_google_credentials.json
GOOGLE_SEARCH_API_KEY=your_google_search_api_key
```
## Usage
### 1. Run the Application
```bash
streamlit run app.py
```
### 2. Access the Interface
Open your web browser and navigate to:
`http://localhost:8501`
### 3. Start Researching
- Enter your research topic.
- Define the scope and parameters.
- Initiate the research process.
### 4. Explore and Download Results
- View collected information.
- Analyze findings.
- Download the generated research report.
## Configuration
Customize the research assistant by modifying the settings in `config.py`:
- Adjust OpenAI model parameters.
- Configure search depth and scope.
- Define preferred academic databases.
- Customize report formatting options.
## Contributing
We welcome contributions! Feel free to submit a pull request to enhance the project.
## License
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) License.