大模型应用开源技术

chat-langchain

作者头像
项目作者langchain-ai

这个工程将 LangChain 与 FastAPI 相结合,方便用户搭建 web 接口,让项目快速衔接 AI 能力。

chat-langchain 预览图

chat-langchain 介绍

了解项目的详细信息和使用方法

🦜️🔗 Chat LangChain

Chat LangChain是一个专注于问题解答的本地聊天机器人实现,主要针对LangChain文档进行问答。它使用了LangChainFastAPINext.js构建。

部署版本:chat.langchain.com

该应用程序利用了LangChain的流媒体支持和异步API,实时更新页面,供多个用户使用。

✅ 本地运行

  1. 安装后端依赖:poetry install
  2. 确保输入环境变量来配置应用程序:
export OPENAI_API_KEY=
export WEAVIATE_URL=
export WEAVIATE_API_KEY=
export RECORD_MANAGER_DB_URL=

# for tracing
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_ENDPOINT="https://api.smith.langchain.com"
export LANGCHAIN_API_KEY=
export LANGCHAIN_PROJECT=
  1. 运行python ingest.py将LangChain文档数据导入Weaviate向量存储(只需要执行一次)。
    1. 您可以使用其他文档加载器将自己的数据加载到向量存储中。
  2. 使用poetry run make start启动Python后端。
  3. 运行cd chat-langchain,然后运行yarn安装前端依赖。
  4. 运行yarn dev启动前端。
  5. 在浏览器中打开localhost:3000

☕ 本地运行(使用JS后端)

  1. 按照上面的前三个步骤将LangChain文档数据导入向量存储。
  2. 运行cd chat-langchain,然后运行yarn安装前端依赖。
  3. chat-langchain/.env.local文件中填入来自chat-langchain/.env.example文件的自定义密钥,并将NEXT_PUBLIC_API_BASE_URL设置为"http://localhost:3000/api"
  4. 使用yarn dev运行应用程序。
  5. 在浏览器中打开localhost:3000

📚 技术描述

Chat LangChain有两个组件:数据导入和问题回答。

数据导入包括以下步骤:

  1. 从文档站点和Github代码库中抓取html。
  2. 使用LangChain的RecursiveURLLoaderSitemapLoader加载html。
  3. 使用LangChain的RecursiveCharacterTextSplitter将文档拆分成段落。
  4. 使用LangChain的Weaviate向量存储包装器(使用OpenAI的嵌入向量)创建一个嵌入向量存储。

问题回答包括以下步骤:

  1. 根据聊天历史和用户的新输入,使用GPT-3.5确定一个独立的问题。
  2. 根据这个独立的问题,在向量存储中查找相关的文档。
  3. 将独立的问题和相关文档传递给模型,生成并流式传输最终的答案。
  4. 为当前的聊天会话生成一个跟踪URL,以及用于收集反馈的端点。

🚀 部署

通过在Vercel上将前端Next.js应用作为无服务器边缘函数部署b点击此处。 您需要使用您部署了后端的基本URL(没有尾部斜杠!)填充NEXT_PUBLIC_API_BASE_URL环境变量。

MIT License
更新于 2025年3月24日
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。

相关项目

探索更多类似的开源项目