nextjs openai doc search
1.0.0
該啟動器在pages目錄中獲取所有.mdx文件,並將其處理以在OpenAI文本完成提示中用作自定義上下文。
將此起動器部署到Vercel。 Supabase Integration將自動設置所需的環境變量並配置數據庫架構。您要做的就是設置OPENAI_KEY ,您就可以開始了!
[
構建自己的自定義Chatgpt涉及四個步驟:
pages文件夾中的.mdx文件)。步驟1和2。發生在構建時間,例如,當Vercel構建您的下一個js應用程序時。 generate-embeddings此期間
測序圖
參與者Vercel
參與者DB(PGVECTOR)
參與者OpenAI(API)
循環1。預處理知識庫
vercel- >> vercel:塊.mdx頁面
循環2。創建和存儲嵌入
Vercel- >> OpenAI(API):為頁面創建嵌入
OpenAI(API) - >> VERCEL:嵌入向量(1536)
Vercel- >> DB(PGVECTOR):頁面部分的存儲嵌入
結尾
結尾
除了存儲嵌入式外,此腳本還為您的每個.mdx文件生成校驗和存儲在另一個數據庫表中,以確保僅在文件更改時才能再生嵌入。
步驟3和4。在用戶提交問題時,在運行時發生。發生這種情況時,執行以下任務序列:
測序圖
參與者客戶
參與者邊緣功能
參與者DB(PGVECTOR)
參與者OpenAI(API)
客戶端 - >>邊緣函數:{查詢:lorem ispum}
關鍵3。執行矢量相似性搜索
邊緣功能 - >> OpenAI(API):創建查詢的嵌入
OpenAI(API) - >>邊緣功能:嵌入向量(1536)
邊緣功能 - >> db(pgvector):向量相似性搜索
db(pgvector) - >>邊緣功能:相關文檔內容
結尾
關鍵4。將內容注入提示
邊緣功能 - >> OpenAI(API):完成請求提示:查詢 +相關文檔內容
OpenAI(API) - >>客戶端:文本/事件流:完成響應
結尾
有關此的相關文件是SearchDialog (client)組件和vector-search (邊緣函數)。
數據庫的初始化,包括pgvector擴展程序的設置,存儲在supabase/migrations文件夾中,該文件夾在運行supabase start時自動應用於您的本地Postgres實例。
cp .env.example .envOPENAI_KEY設置在新創建的.env文件中。NEXT_PUBLIC_SUPABASE_ANON_KEY和SUPABASE_SERVICE_ROLE_KEY run:注意:您必須運行supabase才能檢索鑰匙。
確保您在本地安裝並運行Docker。然後運行
supabase start要檢索NEXT_PUBLIC_SUPABASE_ANON_KEY和SUPABASE_SERVICE_ROLE_KEY run:
supabase status在新的終端窗口中,運行
pnpm dev.mdx格式為.mdx。這可以通過重命名現有(或兼容)Markdown .md文件來完成。pnpm run embeddings到再生嵌入。注意:確保supabase正在運行。要檢查,請運行
supabase status。如果不運行supabase start。
pnpm dev以刷新nextjs localhost:3000渲染頁。 Apache 2.0