我的項目是一個使用ReactJS Vite Framework,用於數據存儲的MongoDB,用於用戶身份驗證和授權的JWT的PDFCHAT應用程序,以及帶有Express.js的Node.js。它還利用各種庫和工具進行有效的開發,包括用於環境變量管理的DotEnv,Langchain及其矢量商店進行語言處理,用於文件上傳的multer以及向後端提出請求的AXIO。該項目的樣式配有尾風CSS和ShadCN框架,可用於光滑的用戶界面。
在後端,我使用帶有Express.js的Node.js來處理請求,並使用MongoDB來存儲用戶信息並管理用戶登錄。為了確保事情安全,我使用JSON Web令牌進行用戶身份驗證,確保只有授權用戶才能訪問項目的某些部分。
對於處理PDF文件,我使用了一個名為Multer的工具將文件及其位置存儲在數據庫中。然後,我處理了上傳的PDF,將它們分解成較小的部分,然後將它們存儲在Langchain提供的HNSW矢量商店中。這次旅程擴大了我的技能,使我更好地了解了Langchain和Rag等先進技術所提供的可能性。
在運行項目之前,您需要設置環境和配置變量:
克隆存儲庫:首先將此存儲庫克隆到本地計算機。
前端設置:
npm install以安裝前端依賴關係。npm run dev啟動前端。後端設置:
npm install以安裝後端依賴關係。.env文件並設置以下變量:PORT :服務器上的端口號將運行。 (默認情況下為8080)username :MongoDB Atlas Connection用戶名。password :MongoDB Atlas連接密碼。JWT_SECRET :JWT代幣生成的秘密。OPENAI_API_KEY :OpenAI API密鑰。數據庫設置:
開始後端:
npm start啟動後端服務器。訪問應用程序:
http://localhost:5173在瀏覽器中訪問該應用程序。http://localhost:8080或http://localhost:PORT以訪問後端部分應用程序。 項目結構分為兩個主要目錄:
frontend :包含帶打字稿的前端的所有ReactJS代碼。backend :使用express.js包含node.js服務器的後端邏輯。 我已經使用JWT(JSON Web令牌)進行用戶身份驗證和授權。當用戶註冊或登錄時,他們會收到一個代幣,必鬚髮送隨後的請求以訪問授權路由。
用戶信息存儲在靈活的NOSQL數據庫MongoDB中。用戶互動可牢固地存儲和檢索用戶數據。
我已經使用Multer,這是一種處理文件上傳的中間件,允許用戶上傳圖像或文檔之類的文件。此功能通過支持多媒體內容來增強用戶體驗。
前端使用尾風CSS和ShadCN框架設計了用戶友好的接口。它為用戶提供了響應迅速且具有視覺吸引力的體驗。
後端提供了各種API端點來管理用戶數據,身份驗證和文件上傳。這些終點是在代碼中記錄的,您可以在後端代碼庫中找到更多詳細信息。