{"id":23388265,"url":"https://github.com/di37/research-paper-analyst","last_synced_at":"2026-04-29T01:33:53.976Z","repository":{"id":269110013,"uuid":"906457364","full_name":"di37/research-paper-analyst","owner":"di37","description":"A Streamlit-powered web application that leverages the Gemini model’s extensive 2 million token context window to analyze lengthy research papers (PDFs) and answer follow-up questions in real-time.","archived":false,"fork":false,"pushed_at":"2024-12-21T02:25:25.000Z","size":373,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T13:21:16.665Z","etag":null,"topics":["chatbot","google-gemini","google-generative-ai","large-language-models","natural-language-processing","research-assistant","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/di37.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-21T00:43:15.000Z","updated_at":"2024-12-21T02:25:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c7934df-4331-450f-8401-b5815506009e","html_url":"https://github.com/di37/research-paper-analyst","commit_stats":null,"previous_names":["di37/research-paper-analysis-assistant"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/di37/research-paper-analyst","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/di37%2Fresearch-paper-analyst","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/di37%2Fresearch-paper-analyst/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/di37%2Fresearch-paper-analyst/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/di37%2Fresearch-paper-analyst/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/di37","download_url":"https://codeload.github.com/di37/research-paper-analyst/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/di37%2Fresearch-paper-analyst/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32407164,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T19:38:08.556Z","status":"ssl_error","status_checked_at":"2026-04-28T19:37:55.688Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatbot","google-gemini","google-generative-ai","large-language-models","natural-language-processing","research-assistant","streamlit"],"created_at":"2024-12-22T02:18:24.534Z","updated_at":"2026-04-29T01:33:53.962Z","avatar_url":"https://github.com/di37.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AI powered - Research Paper Analyst\n\nThis application uses the Gemini model to provide in-depth analysis of research papers (in PDF format). By leveraging Gemini’s extended context window—capable of handling up to 2 million tokens—this tool can retain and reference large sections of a research paper at once, enabling a more comprehensive understanding and more accurate responses to user queries.\n\n## Features\n\n- **PDF Upload \u0026 Analysis:** Upload a PDF research paper and initiate automatic analysis.\n- **Real-Time Streaming Responses:** View analysis results and Q\u0026A responses as they are generated.\n- **Follow-Up Queries:** After analysis, ask questions about the paper's content.\n- **Model Selection:** Choose from a list of available Gemini models for processing.\n- **API Key Configuration:** Provide your Gemini API key to authenticate and use the chosen model.\n\n## Requirements\n\n- Python 3.8 or higher\n- [Streamlit](https://streamlit.io/) for the web interface\n- Gemini-related Python packages (as defined in `requirements.txt` or the project’s `utilities` module)\n- A Gemini API Key\n\n## Installation\n\n1. **Clone the Repository:**\n\n   ```bash\n   git clone https://github.com/di37/research-paper-analyst\n   cd research-paper-analyst\n   ```\n\n2. **Install Dependencies:**\n   If there is a `requirements.txt` file provided:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n   Make sure all required packages such as `streamlit` and Gemini utilities are installed. If not, install them individually:\n\n   ```bash\n   pip install streamlit\n   # ... any other required packages\n   ```\n\n3. **Set Up Your Gemini API Key:** \n    This project requires a Google API key for authenticated requests which you can get from [Google AI Studio](ai.google.dev). To set this up:\n\n    1. **Locate the `.env` File:**  \n    Copy the provided `.env.example` file to `.env` and open it in your preferred text editor.\n\n    ```bash\n    cp .env.example .env\n    ```\n\n    2. **Add Your Gemini API Key:**  \n    In your newly created `.env` file, replace the placeholder value with your actual Google API key:\n    ```env\n    GOOGLE_API_KEY=your_actual_google_api_key_here\n    ```\n\n    3. **Save and Verify:**  \n    Once saved, the application will load your API key from the `.env` file at runtime. Ensure you keep your key secure and never commit `.env` files containing sensitive information to version control.\n\n---\n\nBy following the steps above, you can ensure the Gemini API key is properly configured before running the application.\n\n## Usage\n\n### Running the Application\n\n1. **Run the Application:**\n\n   ```bash\n   streamlit run main.py\n   ```\n\n   This will start the Streamlit app on a local server. The terminal output will display a local URL (e.g., `http://localhost:8501`).\n\n2. **Open in Browser:**\n   Open the displayed URL in your web browser. You’ll see the app’s interface.\n\n3. **Configure the Application:**\n\n   - In the sidebar, select a Gemini model from the dropdown.\n   - Enter your Gemini API key.\n   - Upload a PDF file that you want to analyze.\n\n4. **Analyze the Paper:**\n   Click the **\"Analyze Paper\"** button after uploading your PDF. The app will:\n\n   - Initialize the selected Gemini model.\n   - Process your PDF and display analysis results in real-time.\n\n5. **Ask Questions:**\n   After analysis, a chat interface is available at the bottom of the main page. Type a question related to the analyzed paper and press **Enter**. The app will provide a streamed response.\n\n6. **Clear Chat (Optional):**\n   To clear all previous messages and start fresh, click the **\"Clear Chat\"** button in the sidebar.\n\n\n### Screenshots\n\n![Screenshot 1](./screenshots/screenshot_1.png)\n\n![Screenshot 2](./screenshots/screenshot_2.png)\n\n## Development Notes\n\n- The main user interface logic resides in `main.py`.\n- Gemini-specific logic is encapsulated in a separate module (e.g., `gemini_interface.py`).\n- Utilities such as model initialization, PDF encoding, and constant definitions (like `GEMINI_MODELS`) are found in the `utilities` module.\n- For local development, ensure that paths and imports are configured correctly.\n\n## Contributing\n\nIf you would like to contribute:\n\n- Fork the repository.\n- Create a new branch for your feature or bug fix.\n- Open a Pull Request with a detailed description of your changes.\n\n## License\n\nThis project is provided under the terms specified by the repository owner (add your license details here, e.g., MIT, Apache 2.0, GPL-3.0, etc.). If no license is specified, the default is \"All Rights Reserved.\"\n\n---\n\n**Disclaimer:** This application relies on the Gemini model and its associated API. Ensure you have the necessary permissions and adhere to the API provider’s usage and billing policies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdi37%2Fresearch-paper-analyst","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdi37%2Fresearch-paper-analyst","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdi37%2Fresearch-paper-analyst/lists"}