{"id":26246707,"url":"https://github.com/ayfri/deep-research","last_synced_at":"2025-10-26T09:39:39.318Z","repository":{"id":279258526,"uuid":"938221416","full_name":"Ayfri/Deep-Research","owner":"Ayfri","description":"My own implementation of DeepResearch.","archived":false,"fork":false,"pushed_at":"2025-04-24T09:31:55.000Z","size":953,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T10:24:38.664Z","etag":null,"topics":["ai-chat","deep-research","openai","perplexity"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ayfri.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,"zenodo":null}},"created_at":"2025-02-24T16:01:04.000Z","updated_at":"2025-04-24T09:31:59.000Z","dependencies_parsed_at":"2025-02-24T17:24:47.681Z","dependency_job_id":"10d08c26-99e1-49e8-8f35-052d378984fd","html_url":"https://github.com/Ayfri/Deep-Research","commit_stats":null,"previous_names":["ayfri/deep-research"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ayfri/Deep-Research","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayfri%2FDeep-Research","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayfri%2FDeep-Research/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayfri%2FDeep-Research/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayfri%2FDeep-Research/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ayfri","download_url":"https://codeload.github.com/Ayfri/Deep-Research/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayfri%2FDeep-Research/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281086021,"owners_count":26441337,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-26T02:00:06.575Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai-chat","deep-research","openai","perplexity"],"created_at":"2025-03-13T13:19:54.993Z","updated_at":"2025-10-26T09:39:39.314Z","avatar_url":"https://github.com/Ayfri.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Perplexity Fast Chat 🚀\n\n\u003cdiv align=\"center\"\u003e\n\n![Version](https://img.shields.io/badge/version-1.0.0-blue.svg?cacheSeconds=2592000)\n![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)\n![SvelteKit](https://img.shields.io/badge/SvelteKit-FF3E00?style=flat\u0026logo=svelte\u0026logoColor=white)\n![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=flat\u0026logo=tailwind-css\u0026logoColor=white)\n\n**A modern web interface to interact with Perplexity AI and OpenAI models, featuring a unique deep research mode.**\n\n[Features](#features-) • [Preview](#preview-) • [Installation](#installation-%EF%B8%8F) • [Usage](#usage-) • [Technologies](#technologies-used-) • [Project Structure](#project-structure-) • [Contribution](#contribution-)\n\n\u003c/div\u003e\n\n## Table of Contents 📑\n\n- [Features](#features-)\n- [Preview](#preview-)\n- [Installation](#installation-%EF%B8%8F)\n- [Usage](#usage-)\n- [Technologies Used](#technologies-used-)\n- [Project Structure](#project-structure-)\n- [Deep Research Mode](#deep-research-mode-)\n- [Research Settings](#research-settings-%EF%B8%8F)\n- [Contribution](#contribution-)\n- [License](#license-)\n\n## Features ✨\n\n### Models Support\n- 🤖 **Perplexity AI Models**\n  - Sonar Reasoning Pro\n  - Sonar Reasoning\n  - Sonar Pro\n  - Sonar\n  - R1-1776\n- 🧠 **OpenAI Models for Deep Research**\n  - o3-mini (high reasoning)\n  - o1-mini\n  - o1-preview\n  - o1\n  - 4o\n\n### Core Features\n- 🔍 **Exclusive Deep Research Mode**\n  - Automatic breakdown of complex questions\n  - Multi-step in-depth research\n  - Final synthesis of results\n  - Configurable question count (auto or manual)\n  - Multiple research phases\n- 💬 **Modern Chat Interface**\n  - Conversation history\n  - Markdown support\n  - Citations and references\n  - \"Thinking\" mode with animations\n- 🎨 **Sleek Design**\n  - Responsive interface\n  - Dark mode\n  - Smooth animations\n  - Support for links and references\n  - ⚙️ **Flexible API Key Management**\n    - Configure API keys directly in the UI (stored in `localStorage`)\n    - Fallback to server-side environment variables if UI keys are not set\n\n## Preview 📸\n\n\u003cdiv align=\"center\"\u003e\n\n### Deep Research Mode\n\u003cimg src=\"images/preview1.png\" alt=\"Deep Research Mode\" width=\"80%\"/\u003e\n\n### Settings Modal\n\u003cimg src=\"images/preview3.png\" alt=\"Settings Modal\" width=\"80%\"/\u003e\n\n### Chat Interface\n\u003cimg src=\"images/preview2.png\" alt=\"Chat Interface\" width=\"80%\"/\u003e\n\n\u003c/div\u003e\n\n## Installation 🛠️\n\n### Prerequisites\n- Node.js (v16+)\n- pnpm (v6+)\n- Perplexity API key (Optional, can be set in UI)\n- OpenAI API key (Optional, can be set in UI)\n\n### Setup Steps\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/your-username/perplexity-fast-chat.git\n   cd perplexity-fast-chat\n   ```\n\n2. **Install dependencies**\n   ```bash\n   pnpm install\n   ```\n\n3. **Configure environment variables**\n   \n   Create a `.env` file at the project root:\n   ```env\n   PERPLEXITY_API_KEY=your_perplexity_api_key\n   OPENAI_API_KEY=your_openai_api_key\n   ```\n   *Note: These server-side keys are optional if you plan to configure them via the UI.*\n\n4. **Start the development server**\n   ```bash\n   pnpm dev\n   ```\n   \n   Your app should now be running at [http://localhost:5173](http://localhost:5173)\n\n## Usage 🔮\n\n1. **Select a model** from the dropdown menu\n2. **Choose a mode**:\n   - Regular chat for quick answers\n   - Deep Research for complex questions\n3. **Type your question** or prompt\n4. For Deep Research mode, configure:\n   - OpenAI model for analysis\n   - Question count (auto or manual)\n5. **(Optional) Configure API Keys**: Click the \"API Key Settings\" button in the bottom-left navbar to enter your Perplexity and OpenAI keys. These will be saved in your browser.\n\n## Technologies Used 🧰\n\n\u003cdiv align=\"center\"\u003e\n\n[![SvelteKit](https://img.shields.io/badge/SvelteKit-4A4A55?style=for-the-badge\u0026logo=svelte\u0026logoColor=FF3E00)](https://kit.svelte.dev/)\n[![TailwindCSS](https://img.shields.io/badge/TailwindCSS-38B2AC?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=white)](https://tailwindcss.com/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n\n\u003c/div\u003e\n\n- **[SvelteKit](https://kit.svelte.dev/)** - Web framework\n- **[TailwindCSS](https://tailwindcss.com/)** - CSS framework\n- **[Perplexity AI API](https://docs.perplexity.ai/)** - Chat API\n- **[OpenAI API](https://platform.openai.com/)** - API for Deep Research mode\n- **[Marked](https://marked.js.org/)** - Markdown parsing\n- **[Lucide Icons](https://lucide.dev/)** - Icon set\n\n## Project Structure 📁\n\n```\n/\n├── src/\n│   ├── routes/             # Application routes\n│   │   ├── +page.svelte    # Main page\n│   │   └── api/            # API endpoints\n│   │       ├── chat/       # Standard chat endpoint\n│   │       ├── deep-research/ # Deep Research endpoint\n│   │       └── name/       # Name generation endpoint\n│   └── lib/                # Components and utilities\n│       ├── components/     # Svelte components\n│       │   └── common/     # Common small components\n│       ├── helpers/        # Helper functions\n│       ├── stores/         # Svelte stores\n│       └── types/          # TypeScript types\n├── images/                 # Screenshots and images\n├── .env                    # Environment variables\n└── package.json           # Dependencies and scripts\n```\n\n## Deep Research Mode 🔬\n\n\u003cimg src=\"images/preview1.png\" alt=\"Deep Research Mode\" width=\"250\" align=\"right\"/\u003e\n\nThe Deep Research mode is a unique feature that:\n\n1. **Analyzes** your question using OpenAI models (configurable)\n2. **Breaks down** into relevant sub-questions (auto or manual count)\n3. **Researches** each aspect using Perplexity AI\n4. **Organizes** research into multiple phases when needed\n5. **Synthesizes** the results into a comprehensive answer\n6. **Provides** detailed timing and progress information\n\n\u003cbr clear=\"right\"/\u003e\n\n## Research Settings ⚙️\n\nThe Deep Research mode includes configurable settings:\n\n| Setting | Options | Description |\n|---------|---------|-------------|\n| OpenAI Model | o3-mini, o1-mini, o1-preview, o1, 4o | Select model for question analysis |\n| Question Count | Auto / Manual (3-40) | Control how many sub-questions are generated |\n| Reasoning | High / Standard | Different reasoning approaches based on model |\n\n## Contribution 🤝\n\n### API Key Management\n\nThis application supports two ways to provide API keys:\n\n1.  **UI Configuration (Recommended for Local Use)**: Use the \"API Key Settings\" modal (accessible from the navbar) to enter your Perplexity and OpenAI keys. These are stored securely in your browser's `localStorage` and sent with each request.\n2.  **Server Environment Variables**: Set `PERPLEXITY_API_KEY` and `OPENAI_API_KEY` in a `.env` file at the project root. This is suitable for deployed environments or if you prefer not to store keys in the browser.\n\nThe application prioritizes keys set in the UI. If UI keys are not found, it falls back to using the environment variables.\n\nContributions are welcome! Please follow these steps:\n\n1. **Fork** the project\n2. **Create** a branch (`git checkout -b feature/improvement`)\n3. **Commit** your changes (`git commit -m 'Add feature'`)\n4. **Push** to the branch (`git push origin feature/improvement`)\n5. **Open** a Pull Request\n\nPlease ensure your code follows the project's coding style and include appropriate tests.\n\n## License 📄\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\nMade with ❤️ for AI research enthusiasts\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayfri%2Fdeep-research","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayfri%2Fdeep-research","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayfri%2Fdeep-research/lists"}