项目介绍:YC Idea Matcher
YC Idea Matcher 是一个帮助用户提交想法并获取与其相似的 YCombinator 投资过的项目列表的应用程序。这款应用提供了一种创新的方式来帮助创业者找到已有的类似项目,从而更好地了解市场和竞争情况。
项目技术栈
YC Idea Matcher 项目采用了一系列先进的技术来实现其功能:
- Neon:使用无服务器的 Postgres 数据库来存储和管理数据。
- pgvector:开源的 Postgres 扩展,用于向量存储和相似度搜索。
- Neon Serverless Driver:连接数据库的驱动程序。
- Next.js:用于构建应用的全栈 React 框架。
- Vercel:应用的部署平台,保证了高效的上线与持续发布。
- OpenAI API:用于生成向量嵌入,提高数据处理的智能化。
- TailwindCSS:采用实用优先的 CSS 框架,确保应用的界面美观和响应式设计。
- Upstash Redis:无服务器的 Redis 数据库,用于实现速率限制。
- Zod:用于确保数据类型安全的 TypeScript 验证库。
- React Query:提供数据获取与缓存功能的库,提升数据请求效率。
- Vaul:React 的抽屉组件,为应用提供了更好的用户界面交互。
应用工作原理
应用通过 Next.js 实现,拥有一个 API 路由 /api/idea
,用于处理用户提交的想法。其工作流程如下:
- 用户在应用中提交一个想法。
- 应用将该想法发送至 OpenAI API 来生成一个向量嵌入。
- 通过使用
pgvector
扩展,从数据库中检索与该向量相似度最高的前三个想法。
此外,项目包含一个位于根目录的脚本 generate-embeddings.ts
。执行 npm run generate-embeddings
将执行以下过程:
- 创建数据库架构并安装
pgvector
扩展。 - 通过调用 YCombinator 的 API
https://api.ycombinator.com/v0.1/companies?page=1
获取所有公司的数据。 - 对每个公司生成长描述的嵌入,并将公司数据存储在数据库中。
值得注意的是,一些公司可能没有长描述,因此需要手动从数据库中删除这些记录(执行
delete from companies WHERE embedding = ARRAY[]::real[];
)。
YC Idea Matcher 不仅实现了技术上的创新,同时为创业者和投资者提供了一个极具价值的信息交流平台。系统的智能匹配功能有助于用户更好地掌握市场信息,开拓发展机遇。