Starter ini mengambil semua file .mdx di direktori pages dan memprosesnya untuk digunakan sebagai konteks khusus dalam permintaan penyelesaian teks openai.
Menyebarkan starter ini ke Vercel. Integrasi Supabase akan secara otomatis mengatur variabel lingkungan yang diperlukan dan mengkonfigurasi skema database Anda. Yang harus Anda lakukan adalah mengatur OPENAI_KEY Anda dan Anda siap untuk pergi!
[
Membangun chatgpt khusus Anda sendiri melibatkan empat langkah:
.mdx Anda di folder pages Anda). Langkah 1. Dan 2. Terjadi pada waktu pembangunan, misalnya ketika Vercel membangun aplikasi berikutnya.js Anda. Selama waktu ini skrip generate-embeddings sedang dieksekusi yang melakukan tugas-tugas berikut:
Sequencediagram
Peserta Vercel
Peserta DB (PGVector)
Peserta Openai (API)
Loop 1. Pra-Proses Basis Pengetahuan
Vercel->> Vercel: Halaman chunk .mdx menjadi bagian
Loop 2. Buat & Toko Embeddings
Vercel->> OpenAI (API): Buat embedding untuk bagian halaman
OpenAI (API)->> Vercel: Emector Embedding (1536)
Vercel->> DB (PGVector): Store Embedding for Page
akhir
akhir
Selain menyimpan embeddings, skrip ini menghasilkan checksum untuk masing -masing file .mdx Anda dan menyimpannya di tabel database lain untuk memastikan embeddings hanya diregenerasi ketika file telah berubah.
Langkah 3. Dan 4. Terjadi saat runtime, kapan saja pengguna mengajukan pertanyaan. Ketika ini terjadi, urutan tugas berikut dilakukan:
Sequencediagram
klien peserta
fungsi tepi peserta
Peserta DB (PGVector)
Peserta Openai (API)
Klien->> fungsi tepi: {query: lorem ispum}
kritis 3. Lakukan pencarian kesamaan vektor
Fungsi tepi->> OpenAi (API): Buat embedding untuk kueri
OpenAI (API)->> Fungsi tepi: embedding vector (1536)
Fungsi Edge->> DB (PGVector): Pencarian Kesamaan Vektor
DB (PGVector)->> Fungsi Edge: Konten dokumen yang relevan
akhir
kritis 4. menyuntikkan konten ke dalam prompt
Fungsi Edge->> OpenAi (API): Permintaan Penyelesaian Prompt: Kueri + Konten dokumen yang relevan
OpenAI (API)->> Klien: Teks/Event-stream: Respons Penyelesaian
akhir
File yang relevan untuk ini adalah komponen SearchDialog (klien) dan vector-search (fungsi tepi).
Inisialisasi database, termasuk pengaturan ekstensi pgvector disimpan dalam folder supabase/migrations yang secara otomatis diterapkan pada instance postgres lokal Anda saat menjalankan supabase start .
cp .env.example .envOPENAI_KEY Anda di file .env yang baru dibuat.NEXT_PUBLIC_SUPABASE_ANON_KEY dan SUPABASE_SERVICE_ROLE_KEY run:Catatan: Anda harus menjalankan Supabase untuk mengambil kunci.
Pastikan Anda memiliki Docker yang diinstal dan berjalan secara lokal. Lalu jalankan
supabase start Untuk mengambil NEXT_PUBLIC_SUPABASE_ANON_KEY dan SUPABASE_SERVICE_ROLE_KEY run:
supabase statusDi jendela terminal baru, jalankan
pnpm dev.mdx . Ini dapat dilakukan dengan mengganti nama file .md yang ada (atau kompatibel).pnpm run embeddings untuk meregenerasi embeddings.Catatan: Pastikan Supabase sedang berjalan. Untuk memeriksa, jalankan
supabase status. Jika tidak menjalankansupabase start.
pnpm dev lagi untuk menyegarkan NextJs LocalHost: 3000 Rendered Page. Apache 2.0