Azure-Samples/serverless-chat-langchainjs

Build your own serverless AI Chat with Retrieval-Augmented-Generation using LangChain.js, TypeScript and Azure

What it solves

此專案提供一個參考實作,用於建構能根據特定企業文件回答問題的無伺服器 AI 聊天機器人。它簡化了使用 JavaScript/TypeScript 實作檢索增強生成(RAG)的流程,讓開發者能建立可擴展且具成本效益的聊天體驗,且無需管理伺服器。

How it works

此應用採用無伺服器架構,由多個整合元件組成:

  • Frontend:使用 Lit 建置的聊天 Web 元件,部署於 Azure Static Web Apps。
  • Backend API:使用 Azure Functions 與 LangChain.js 建置的無伺服器 API,負責文件匯入與查詢產生。
  • Vector Database:Azure Cosmos DB for NoSQL 儲存抽取的文字與產生的向量,以提升檢索效率。
  • Storage:Azure Blob Storage 保存來源文件。
  • Local Option:系統可完全在本機執行,使用 Ollama 作為 LLM 與嵌入模型,避免開發期間產生雲端費用。

Who it’s for

適合想使用 JavaScript 生態系與 Azure 無伺服器基礎設施建置基於 RAG 的 AI 應用,或需要一個企業級聊天機器人起點的開發者。

Highlights

  • Serverless Deployment:完全無伺服器堆疊,使用 Azure Functions 與 Static Web Apps。
  • RAG Implementation:整合的文件匯入與檢索管線,使用 LangChain.js。
  • Histry Management:為使用者維護個人聊天會話歷史。
  • Flexible Model Hosting:支援 Azure OpenAI 與透過 Ollama 的本機模型。