bartjellema/NeoSearch

GitHub: bartjellema/NeoSearch

一款基于 .NET 9 构建的开源 AI 搜索引擎,通过智能摘要、多重视角分组和实时流式传输来提升网页搜索体验,同时坚持无广告、无追踪的隐私保护原则。

Stars: 21 | Forks: 1

# NeoSearch - AI 驱动的搜索引擎 **NeoSearch 是一个 100% 开源、由 AI 驱动的搜索引擎,它通过智能摘要、多重视角和实时流式传输结果来提升网页搜索体验。** 基于 ASP.NET Core 9.0 (.NET 9)、C# 13、Dapper、SQL Server 以及 Vue Petite 前端构建。 ## 🌟 功能 - **100% 隐私 & 无广告**:无用户画像、无广告、无 Cookie、无 IP 日志 - **偏见感知排名**:AI 重新对结果进行排名,优先展示权威、独立的来源 - **即刻清晰**:AI 重写杂乱的网页标题和描述 - **多重视角**:将链接组织成逻辑分组,便于快速导航 - **AI 概览**:在完整结果旁边提供快速的 AI 摘要 - **更智能的回答 & 插件**:为常见查询(天气、单位换算等)提供即时结果 - **通用结果**:将单一服务的链接转换为跨多平台的结果 - **实时流式传输**:结果通过 Server-Sent Events 在生成时进行流式传输 ## 🚀 快速开始 ### 前置条件 - [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0) - SQL Server(或 SQL Server Express) - 各项服务的 API keys(参见配置部分) ### 安装说明 1. **克隆仓库** ``` git clone https://github.com/bartjellema/NeoSearch.git cd NeoSearch ``` 2. **还原依赖项** ``` dotnet restore ``` 3. **配置应用程序** 将 `appsettings.json.example` 复制为 `appsettings.json` 并填入你的 API keys: ``` { "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=NeoSearch;Trusted_Connection=true;TrustServerCertificate=True;" }, "APIKeys": { "GoogleSearch": "your-google-search-api-key", "OpenAI": "your-openai-api-key", // Add other API keys as needed } } ``` 4. **运行数据库迁移** 抱歉,数据库 schema 创建脚本即将推出。 5. **构建并运行** ``` dotnet build dotnet run --project Server ``` 6. **访问应用程序** 在浏览器中打开 `https://localhost:5001`。 ## 🏗️ 架构 NeoSearch 采用模块化、受 microservices 启发的架构构建: ### 核心组件 - **Server/** - 主 ASP.NET Core 应用程序 - **APIs/** - 外部服务集成(YouTube、Spotify、IMDB 等) - **LLM/** - LLM provider 路由和响应生成 - **WebSearchService/** - Google 搜索 API 集成 - **Utils/** - 共享工具和辅助程序 - **ResultHandlers/** - 基于 URL 模式的结果增强器 - **Tests/** - 带有 HTTP 缓存系统的插件测试 ### 关键模式 - **并行执行**:搜索任务并行运行以实现最佳性能 - **流式传输**:结果在生成时通过 SSE 进行流式传输 - **自动注册**:组件通过反射自动注册 - **插件系统**:用于专用功能的可扩展插件架构 ## 🔧 配置 ### 必需的 API Keys 创建账户并获取以下服务的 keys: - **Google Custom Search API** - 核心搜索功能 - **OpenAI API**(或替代的 LLM providers)- AI 功能 - 可选:YouTube、Spotify、IMDB、Wikipedia 等,用于增强结果 ## 🧪 测试 运行所有测试: ``` dotnet test ``` 运行特定测试套件: ``` dotnet test --filter "FullyQualifiedName~StockPricePluginTests" dotnet test --filter "FullyQualifiedName~YouTubeTests" ``` **注意**:测试套件使用 HTTP 缓存 - 首次运行会调用真实 API,后续运行使用缓存。 ## 📚 文档 - [架构概述](docs/web_search_flow.md) - 详细的搜索流程说明 - [API 集成指南](docs/api_integration.md) - 添加新的 API 集成 - [插件开发](docs/plugin_development.md) - 创建自定义插件 - [结果处理器](docs/result_handlers.md) - 增强搜索结果 ## 📜 许可证 本项目基于 Apache License 2.0 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。 ## 🔗 链接 - [官方网站](https://neosearch.org) - [文档](https://neosearch.org/docs) - [Discord 社区](https://discord.gg/n59wbFTpWS) - [GitHub 仓库](https://github.com/bartjellema/NeoSearch) ## 📧 联系方式 - 创始人:Bart Jellema - 邮箱:b@neosearch.org
标签:AI摘要, ASP.NET Core, Dapper, SQL Server, Vue, 人工智能, 搜索引擎, 文件系统扫描, 用户模式Hook绕过