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 的本地模型。