AskAITools 社区版
概述
AskAITools (https://askaitools.ai) 是一个专为AI产品领域量身定制的尖端搜索引擎项目。我们的使命是通过提供最准确、全面、快速和智能的搜索体验,彻底改变用户发现AI产品的方式。有了AskAITools,找到完美的AI解决方案变得前所未有的简单。
AskAITools 桌面网页截图:
AskAITools 移动网页截图:
该项目有两个版本:功能丰富的商业版和社区版。社区版提供了一个基础的前端界面和搜索功能的坚实基础,其代码在本仓库中完全开源。开发者可以轻松地在这个框架上集成自己的数据,使他们能够快速构建专业的垂直搜索引擎或组织内部的文档搜索系统。
在底层,AskAITools采用了混合搜索引擎架构,无缝结合了关键词搜索(全文搜索)和语义搜索(向量搜索/嵌入搜索)功能。通过利用统计数据和加权融合技术,它实现了相关性和流行度之间的平衡。
项目架构和技术栈
- 前端:Next.js
- 部署:Vercel
- 样式:Tailwind CSS
- 数据库:Supabase
- 关键词搜索:PostgreSQL / Supabase 全文搜索引擎
- 语义搜索:Pgvector / Supabase 向量数据库
- 语义向量生成:OpenAI text-embedding-3 模型
入门指南
- 收集并整理你的领域数据。参考我们的数据表结构了解所需字段。
- 根据需要修改
item
表结构。在Supabase中创建表并导入数据。 - 复制环境变量模板
.env.local.example
并重命名为.env.local
。填写你的Supabase和OpenAI配置详情。如有需要,提供代理信息。 - 根据你的需求调整
./app/pages/index.tsx
、./app/pages/api/embedding_search.ts
和./supabase/migrations/20240506_init.sql
中的搜索参数和策略。 - 参考
20240506_init.sql
在Supabase中创建两个搜索函数。 - 在
app
目录下运行yarn install
安装依赖,然后运行yarn dev
启动本地开发环境进行代码调试。 - 按照Vercel官方文档在Vercel上部署你的项目。
- 部署完成后,庆祝你的成就 🎉
使用限制
- 所有基于本项目衍生的项目必须在用户界面首页或文档首页prominently显示AskAITools的名称和开源地址。最简单的方法是保留页脚中的"Powered by AskAITools"组件。
- 在部署基于本开源项目的衍生项目时,请避免使用AskAITools品牌名称作为你的产品/项目名称。这个限制不适用于"AskAITools商业版" (https://askaitools.ai)。
- 如果你想使用这个开源项目作为基础开发AI产品搜索平台、AI产品目录站点或其他与AskAITools商业版极为相似的项目,请重新设计和开发前端页面。否则,由于格式和内容相似,后续推出的网站可能会被谷歌识别为抄袭,可能会影响其吸引搜索流量的能力。