Postgres Q&A es un proyecto que demuestra cómo utilizar incrustaciones de palabras y Postgres para crear un chatbot. El chatbot se implementa utilizando Vercel Edge Functions y el controlador @neondatabase/serverless, y se basa en la API GPT-3 de OpenAI para generar respuestas.
Para comenzar con este proyecto, necesitará tener:
Una vez que tenga instalados los requisitos previos, siga estos pasos para poner el proyecto en funcionamiento:
Clonar el repositorio:
git clone https://github.com/neondatabase/postgres-qa.git
cd ask-postgres
Esta sección se deriva del ejemplo del libro de cocina de OpenAI. Puede utilizar el código Python aquí para crear un rastreador web y extraer el texto que necesita para crear incrustaciones. Ya hemos creado los archivos de texto basados en https://www.postgresql.org/docs/, que puede encontrar en el directorio data/text
.
Para comenzar, vaya al directorio data
, cree un nuevo entorno e instale las dependencias:
cd data
python -m venv env
source env/bin/activate
pip install -r requirements.txt
Importe el esquema a su base de datos:
psql < database-url > -f database.sql
Ahora agreguemos DATABASE_URL
y OPENAI_API_KEY
a nuestras variables de entorno:
export DATABASE_URL= < YOUR_NEON_CONEECTION_STRING > OPENAI_API_KEY= < YOUR_OPENAI_API_KEY >
Ejecute main.py
para importar la incorporación a su base de datos Neon:
python main.py
¡Relájate y toma una taza de café, ya que esta sección puede tardar 10 minutos en procesarse!
Resultado esperado:
Saving to CSV...
Loading tokenizer...
Embedding text...
Connecting to database...
Done !
Instale las dependencias del proyecto:
cd app
npm install
Crear un archivo .env
touch .env.local
Establezca las siguientes variables de entorno:
OPENAI_API_KEY= Your OpenAI API key.
DATABASE_URL= The connection URL for your Neon database.
Inicie el servidor:
npm run dev
¡Agradecemos las contribuciones a este proyecto! Si encuentra un error, tiene una sugerencia o desea contribuir con código, abra una incidencia o realice una solicitud en el repositorio de GitHub.
Este proyecto está bajo la licencia MIT. Consulte el archivo de LICENCIA para obtener más información.