YC Idea Matcher

Este projeto permite que você envie sua ideia e obtenha uma lista de idéias semelhantes nas quais o YCombinator investiu antes.
O projeto é construído usando as seguintes tecnologias:
- NEON: PostGres sem servidor
- PGVECTOR: Extensão Postgres de Fonte Aberta para Armazenamento Vettorial e Pesquisa de Similaridade
- Driver sem servidor de neon
- Next.JS: FullStack Framework for React
- Vercel: plataforma de implantação
- API OpenAI: gerando incorporações de vetor
- Tailwindcss: Utility-primeiro CSS Framework
- Upstash Redis: Redis sem servidor para limitação de taxa
- Zod: Validação do Esquema Typescript-First
- Consulta de reação: Biblioteca de dados e cache de dados
- VAUL: Componente da gaveta para reação.
Como funciona o aplicativo
Você encontrará um script chamado generate-embeddings.ts
localizado no diretório raiz deste projeto. Depois de executar npm run generate-embeddings
, o script faz o seguinte:
- Ele cria o esquema de banco de dados e instala a extensão
pgvector
- Ele passa pela API do Ycombinator 'https://api.ycombinator.com/v0.1/companies?page=1' e recebe todas as empresas
- Para cada empresa, gera incorporação usando a longa descrição e, em seguida, armazena os dados da empresa no banco de dados.
Algumas empresas não têm uma longa descrição, por isso precisávamos remover manualmente os do banco de dados, executando delete from companies WHERE embedding = ARRAY[]::real[];
O aplicativo em si é um aplicativo Next.js com uma rota da API localizada em /api/idea
. Sempre que um usuário envia uma ideia, o seguinte acontece:
- A ideia é enviada à API OpenAI para gerar uma incorporação
- Em seguida, usamos o PGVector para recuperar as três principais idéias mais semelhantes