YC Idea Matcher

Este proyecto le permite enviar su idea y obtener una lista de ideas similares en las que Ycombinator ha invertido antes.
El proyecto se crea utilizando las siguientes tecnologías:
- Neon: Postgres sin servidor
- PGVECTOR: Extensión Postgres de código abierto para el almacenamiento vectorial y la búsqueda de similitud
- Controlador sin servidor de neón
- Next.js: FullStack Marco para React
- VERCEL: plataforma de implementación
- API de OpenAI: generación de integridades vectoriales
- Tailwindcss: marco CSS de utilidad de utilidad
- Upstash Redis: Serverless Redis para la limitación de tarifas
- ZOD: Validación de esquema TypeScript-First
- REACT Consuly: Biblioteca de obtención de datos y almacenamiento en caché
- Vaul: componente del cajón para React.
Cómo funciona la aplicación
Encontrará un script llamado generate-embeddings.ts ubicado en el directorio raíz de este proyecto. Después de ejecutar npm run generate-embeddings , el script hace lo siguiente:
- Crea el esquema de la base de datos e instala la extensión
pgvector - Pasa por la API YCombinator 'https://api.ycombinator.com/v0.1/companies?page=1' y obtiene todas las empresas
- Para cada empresa genera integridades utilizando la descripción larga y luego almacena los datos de la compañía en la base de datos.
Algunas compañías no tienen una descripción larga, por lo que necesitábamos eliminar manualmente las de la base de datos ejecutando delete from companies WHERE embedding = ARRAY[]::real[];
La aplicación en sí es una aplicación Next.js con una ruta API ubicada AT /api/idea . Siempre que un usuario envíe una idea, se produce lo siguiente:
- La idea se envía a la API de OpenAI para generar una incrustación
- Luego usamos PGVector para recuperar las 3 ideas más similares.