計畫簡介
llm-answer-engine利用Next.js, Groq, Mixtral, Langchain, OpenAI, Brave和Serper等技術,構建了一個復雜的回答引擎,可以根據使用者的查詢有效地返回源資訊、回答、圖片、視訊和後續問題。開發者可以透過這個計畫學習如何整合多種技術來建立一個功能全面的搜尋引擎。
掃碼加入交流群
獲得更多技術支持和交流
(請註明自己的職業)
技術套用
· Next.js:一個用於構建伺服器端渲染和靜態Web應用程式的React框架。
· Tailwind CSS:一個以實用性為首的CSS框架,用於快速構建客製的使用者介面。
· Vercel AI SDK:一個用於構建基於AI的流式文本和聊天使用者介面的庫。
· Groq & Mixtral:用於處理和理解使用者查詢的技術。
· Langchain.JS:一個專註於文本操作的JavaScript庫,如文本分割和嵌入。
· Brave Search:一個註重私密的搜尋引擎,用於獲取相關內容和圖片。
· Serper API:用於根據使用者的查詢獲取相關視訊和圖片結果的API。
· OpenAI Embeddings:用於建立文本塊的向量表示。 · Cheerio:用於HTML解析,允許從網頁提取內容。
· Ollama(可選):用於流式推理和嵌入。
· Upstash Redis 限流(可選):用於設定應用程式的限流。
先決條件
· 確保您的機器上安裝了 Node.js 和 npm。
· 從 OpenAI、Groq、Brave Search 和 Serper 獲取 API 金鑰。
安裝
1.複制程式碼庫:
git clone https://github.com/developersdigest/llm-answer-engine.git
2.安裝所需的依賴:
npm install
或者
bun install
3.在計畫的根目錄建立一個 .env 檔,並添加你的 API 金鑰:
OPENAI_API_KEY=your_openai_api_key
GROQ_API_KEY=your_groq_api_key
BRAVE_SEARCH_API_KEY=your_brave_search_api_key
SERPER_API=your_serper_api_key
執行伺服器
要啟動伺服器,請執行:
npm run dev
或者
print f("hello world!");
伺服器將在指定的埠監聽。
編輯配置
配置檔位於 app/config.tsx 檔中。你可以修改以下值:
useOllamaInference: false,
useOllamaEmbeddings: false,
inferenceModel: 'mixtral-8x7b-32768',
inferenceAPIKey:process.env.GROQ_API_KEY,
embeddingsModel:'text-embedding-3-small',textChunkSize: 800,
textChunkOverlap: 200,
numberOfSimilarityResults: 2,
numberOfPagesToScan: 10,
nonOllamaBaseURL: 'https://api.groq.com/openai/v1'useFunctionCalling: true
useRateLimiting: false
Ollama 支持(部份支持)
目前,Ollama 支持流式文本響應,但尚不支持後續問題。
支持嵌入,但是使用本地嵌入模型和本地流式推理模型時,首次生成令牌的時間可能會很長。我建議減少在 app/config.tsx 檔中指定的 RAG 值,以減少使用 Ollama 時的首次生成令牌時間。
要開始使用,請確保您的本地機器上執行了 Ollama 模型,並在配置中設定您希望使用的模型,並將 useOllamaInference 和/或 useOllamaEmbeddings 設定為 true。
註意:當設定 'useOllamaInference' 為 true 時,模型將用於文本生成,但在使用 Ollama 時會跳過後續問題推理步驟。
路線圖
添加 AI 閘道器以支持多個模型和嵌入。(OpenAI, Azure OpenAI, Anyscale, Google Gemini & Palm, Anthropic, Cohere, Together AI, Perplexity, Mistral, Nomic, AI21, Stability AI, DeepInfra, Ollama 等)
https://github.com/Portkey-AI/gateway
添加設定元件,允許使用者從 UI 選擇模型、嵌入模型和其他參數
當使用 Ollama 時增加對後續問題的支持
[完成 - 測試版] 增加對基於使用者查詢動態和條件渲染的 UI 元件的支持
[已完成] 根據使用者的系統偏好添加暗黑模式支持
後端 + 僅限 Node 的 Express API
觀看此 express 教程以獲取有關設定和執行此計畫的詳細指南。除了 Next.JS 版本的計畫外,還有一個僅後端的版本,使用 Node.js 和 Express。位於 'express-api' 目錄中。這是計畫的獨立版本,可以作為構建類似 API 的參考。'express-api' 目錄中還有一個 readme 檔,說明如何執行後端版本。
https://youtu.be/43ZCeBTcsS8
Upstash Redis 限流
觀看此 Upstash Redis 限流教程以獲取有關設定和執行此計畫的詳細指南。Upstash Redis 限流是一個免費層服務,允許您為您的應用程式設定限流。它提供了一個簡單易用的界面,用於配置和管理限流。使用 Upstash,您可以輕松設定每個使用者、IP 地址或其他標準的請求數量限制。這可以幫助防止濫用並確保您的應用程式不會因請求過多而不堪重負。
https://youtu.be/3_aNVu6EU3Y
計畫連結
https://github.com/developersdigest/llm-answer-engine關註「 開源AI計畫落地 」公眾號