{"id":28160023,"url":"https://github.com/aryprogrammer/searchai","last_synced_at":"2025-05-15T10:13:34.247Z","repository":{"id":289831919,"uuid":"972545158","full_name":"ARYPROGRAMMER/SearchAI","owner":"ARYPROGRAMMER","description":"SearchAI – A Flutter-powered, Gemini-enhanced app for real-time news, reports, and intelligent web search.","archived":false,"fork":false,"pushed_at":"2025-04-26T15:57:29.000Z","size":108,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-26T16:39:45.445Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Dart","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/ARYPROGRAMMER.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-04-25T08:53:34.000Z","updated_at":"2025-04-26T15:57:32.000Z","dependencies_parsed_at":"2025-04-26T16:39:48.607Z","dependency_job_id":null,"html_url":"https://github.com/ARYPROGRAMMER/SearchAI","commit_stats":null,"previous_names":["aryprogrammer/seacherai","aryprogrammer/searchai"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FSearchAI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FSearchAI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FSearchAI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARYPROGRAMMER%2FSearchAI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARYPROGRAMMER","download_url":"https://codeload.github.com/ARYPROGRAMMER/SearchAI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254319685,"owners_count":22051076,"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","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":[],"created_at":"2025-05-15T10:12:19.174Z","updated_at":"2025-05-15T10:13:34.235Z","avatar_url":"https://github.com/ARYPROGRAMMER.png","language":"Dart","readme":"# SearchAI\n\nSearchAI is a modern, sleek Flutter-powered application enhanced with Gemini AI capabilities for intelligent web search, real-time news aggregation, and comprehensive report generation. Built with a focus on user experience and information accuracy, SearchAI helps users discover, organize, and process online information efficiently.\n\n## Features\n\n- **Intelligent Web Search**: Leverages Tavily API to perform targeted web searches with content extraction and processing\n- **AI-Powered Analysis**: Uses Google's Gemini 2.5 Pro API to comprehensively analyze and synthesize search results\n- **Real-time Content Streaming**: WebSocket implementation for streaming AI responses as they're generated\n- **Clean, Modern UI**: Built with Flutter using a sleek dark theme interface with collapsible sidebar and responsive design\n- **Smart Content Processing**: Extracts and processes web content using Trafilatura for clean, readable information\n- **Cross-Platform**: Available for iOS, Android, and Web platforms\n- **Similarity-Based Content Ranking**: Uses cosine similarity with Sentence Transformers to sort search results by relevance\n\n## Project Structure\n\nThe project is organized into two main parts:\n\n### Frontend (Flutter)\n\n- Modern, responsive UI with dark theme\n- Collapsible sidebar navigation\n- Search interface with focus and attachment options\n- Google Fonts integration for typography\n- Material design components\n\n### Backend (Python)\n\n- FastAPI server for handling search requests and WebSockets\n- Tavily integration for high-quality web searches\n- Trafilatura for web content extraction\n- Sentence Transformer for semantic content similarity ranking\n- Google Gemini API integration for AI-powered responses\n\n## Getting Started\n\n### Prerequisites\n\n- Flutter SDK (^3.7.2)\n- Python 3.8+\n- Tavily API key\n- Google Gemini API key\n\n### Setup\n\n1. **Clone the repository**\n\n```bash\ngit clone https://github.com/yourusername/searchai.git\ncd searchai\n```\n\n2. **Set up backend**\n\n```bash\ncd server\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install fastapi uvicorn sentence_transformers trafilatura google-generativeai python-dotenv pydantic\n```\n\n3. **Configure environment**\n   Create a `.env` file in the server directory:\n\n```\nTAVILY_API_KEY=your_tavily_api_key_here\nGEMINI_API_KEY=your_gemini_api_key_here\n```\n\n4. **Set up Flutter frontend**\n\n```bash\nflutter pub get\n```\n\n5. **Run the application**\n\n```bash\n# Start the backend server\ncd server\nuvicorn main:app --reload\n\n# In another terminal, run the Flutter app\nflutter run\n```\n\n## Technical Details\n\n### Backend Services\n\n- **SearchService**: Performs web searches using Tavily API and extracts content with Trafilatura\n- **SortSourceService**: Ranks search results by relevance using Sentence Transformers and cosine similarity\n- **LLMService**: Generates AI responses using Google's Gemini 2.5 Pro model\n\n### API Endpoints\n\n- **WebSocket `/ws/chat`**: Streams search results and AI-generated content in real-time\n- **REST `/chat`**: Provides non-streaming responses with complete search results and AI analysis\n\n## Development\n\n- The frontend is built with Flutter using a modular component architecture\n- Backend services are organized following best practices for FastAPI applications\n- State management follows modern Flutter patterns\n- WebSocket communication for real-time content streaming\n\n## Contribution\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n**Explore More:**\n\n- [Flutter Documentation](https://flutter.dev/docs) for more details on how to use Flutter\n- [Tavily Documentation](https://app.tavily.com/home) for more details on the Tavily API\n- [Sentence Transformers](https://sbert.net/docs/sentence_transformer/pretrained_models.html) for more on Sentence Transformers\n- [Trafilatura](https://trafilatura.readthedocs.io/en/latest/) for web content extraction\n- [Gemini AI](https://aistudio.google.com/prompts/new_chat) for more on Google's Gemini API\n\n---\n\n## Crafted with ❤️ by Arya Singh\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryprogrammer%2Fsearchai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faryprogrammer%2Fsearchai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faryprogrammer%2Fsearchai/lists"}