法律文件來源:https://github.com/LawRefBook/Laws
項目模板:https://github.com/supabase-community/nextjs-openai-doc-search
這個項目從pages目錄中獲取所有的.mdx文件,並將其處理成自定義上下文,以在OpenAI 文本自動補全提示中使用。
![]() 智能寫作助手 | ![]() AI 百科全書 | ![]() Prompt 生成器 |
![]() AI 翻譯專家 | ❤️ 打賞贊助❤️ |
部署此starter 到Vercel。 Supabase 集成將自動設置所需的環境變量並配置您的數據庫概要。您只需要設置OPENAI_KEY ,然後就可以開始了!
樓主太懶了,感謝GoJun 幫忙寫了教程:https://eibot3u32o.feishu.cn/docx/L46Pdp3fjouPUvxaNzPckKctno3
構建您自己的自定義ChatGPT 涉及四個步驟:
pages文件夾中的.mdx文件)。步驟1 和2 發生在構建時間,例如當Vercel 構建您的Next.js 應用程序時。此時執行generate-embeddings腳本,該腳本執行以下任務:
sequenceDiagram
participant Vercel
participant DB (pgvector)
participant OpenAI (API)
loop 1. 預處理知識庫Vercel->>Vercel: 將.mdx 頁面劃分為部分loop 2. 創建並存儲嵌入Vercel->>OpenAI (API): 為頁面部分創建嵌入OpenAI (API)->>Vercel: 嵌入向量(1536)
Vercel->>DB (pgvector): 存儲頁面部分的嵌入end
end
除了存儲嵌入向量之外,此腳本還為每個.mdx文件生成一個校驗和,並將其存儲在另一個數據庫表中,以確保僅當文件更改時才重新生成嵌入向量。
步驟3 和4 在運行時發生,即用戶提交問題時。發生這種情況時,執行以下一系列任務:
sequenceDiagram
participant Client
participant Edge Function
participant DB (pgvector)
participant OpenAI (API)
Client->>Edge Function: { query: lorem ispum }
critical 3. 執行向量相似性搜索Edge Function->>OpenAI (API): 為查詢創建嵌入OpenAI (API)->>Edge Function: 嵌入向量(1536)
Edge Function->>DB (pgvector): 向量相似性搜索DB (pgvector)->>Edge Function: 相關文檔內容end
critical 4. 將內容注入到提示中Edge Function->>OpenAI (API): 完成請求提示:查詢+相關文檔內容OpenAI (API)-->>Client: text/event-stream:自動補全響應end
此為SearchDialog(客户端)組件和vector-search(边缘函数)負責的相關文件。
數據庫的初始化,包括pgvector擴展的設置存儲在supabase/migrations文件夾中,並在運行supabase start時自動應用於本地PostgreSQL 實例。
cp .env.example .env.env文件中設置OPENAI_KEY 。確保已安裝並在本地運行Docker。然後運行
npx supabase start在新的終端窗口中運行
pnpm dev僅需將此starter 部署到Vercel。 Supabase 集成將自動設置所需的環境變量並配置您的數據庫Schema。您只需設置OPENAI_KEY並開始使用即可!
此文件由 ChatGPT 提供翻译