Tanya Jawab Postgres adalah proyek yang mendemonstrasikan cara menggunakan penyematan kata dan Postgres untuk membuat chatbot. Chatbot diimplementasikan menggunakan Vercel Edge Functions dan driver @neondatabase/serverless, dan mengandalkan API GPT-3 OpenAI untuk menghasilkan respons.
Untuk memulai proyek ini, Anda harus memiliki:
Setelah Anda menginstal prasyarat, ikuti langkah-langkah berikut untuk menjalankan dan menjalankan proyek:
Kloning repositori:
git clone https://github.com/neondatabase/postgres-qa.git
cd ask-postgres
Bagian ini berasal dari contoh buku masak OpenAI. Anda dapat menggunakan kode Python di sini untuk membuat perayap web dan mengekstrak teks yang Anda perlukan untuk membuat penyematan. Kami telah membuat file teks berdasarkan https://www.postgresql.org/docs/, yang dapat Anda temukan di direktori data/text
.
Untuk memulai, pindah ke direktori data
, buat lingkungan baru dan instal dependensi:
cd data
python -m venv env
source env/bin/activate
pip install -r requirements.txt
Impor skema ke database Anda:
psql < database-url > -f database.sql
Sekarang mari tambahkan DATABASE_URL
dan OPENAI_API_KEY
ke variabel lingkungan kita:
export DATABASE_URL= < YOUR_NEON_CONEECTION_STRING > OPENAI_API_KEY= < YOUR_OPENAI_API_KEY >
Jalankan main.py
untuk mengimpor emembeding ke database Neon Anda:
python main.py
Bersantailah dan nikmati secangkir kopi karena bagian ini mungkin memerlukan waktu 10 menit untuk diproses!
Hasil yang diharapkan:
Saving to CSV...
Loading tokenizer...
Embedding text...
Connecting to database...
Done !
Instal dependensi proyek:
cd app
npm install
Buat file .env
touch .env.local
Tetapkan variabel lingkungan berikut:
OPENAI_API_KEY= Your OpenAI API key.
DATABASE_URL= The connection URL for your Neon database.
Mulai server:
npm run dev
Kami menyambut kontribusi untuk proyek ini! Jika Anda menemukan bug, mempunyai saran, atau ingin menyumbangkan kode, silakan buka masalah atau tarik permintaan di repositori GitHub.
Proyek ini dilisensikan di bawah Lisensi MIT. Lihat file LISENSI untuk informasi lebih lanjut.