{"id":23430864,"url":"https://github.com/chatchat-space/langgraph-chatchat","last_synced_at":"2025-04-09T08:07:53.371Z","repository":{"id":264995356,"uuid":"865125224","full_name":"chatchat-space/LangGraph-Chatchat","owner":"chatchat-space","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-07T09:06:46.000Z","size":25473,"stargazers_count":99,"open_issues_count":6,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-02T07:07:36.885Z","etag":null,"topics":["agent","agents","fastapi","langchain","langchain-agent","langchain-agents","langchain-python","langgraph","langgraph-python","llm","llm-ops"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chatchat-space.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-30T02:43:20.000Z","updated_at":"2025-04-02T02:40:39.000Z","dependencies_parsed_at":"2025-02-17T09:39:33.648Z","dependency_job_id":null,"html_url":"https://github.com/chatchat-space/LangGraph-Chatchat","commit_stats":null,"previous_names":["chatchat-space/langgraph-chatchat"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatchat-space%2FLangGraph-Chatchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatchat-space%2FLangGraph-Chatchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatchat-space%2FLangGraph-Chatchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chatchat-space%2FLangGraph-Chatchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chatchat-space","download_url":"https://codeload.github.com/chatchat-space/LangGraph-Chatchat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999859,"owners_count":21031046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agents","fastapi","langchain","langchain-agent","langchain-agents","langchain-python","langgraph","langgraph-python","llm","llm-ops"],"created_at":"2024-12-23T09:47:40.532Z","updated_at":"2025-04-09T08:07:53.352Z","avatar_url":"https://github.com/chatchat-space.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](chatchat-server/chatchat/img/logo-long-langraph-chatchat.jpg)\n\n[![Generic badge](https://img.shields.io/badge/python-3.9%7C3.10%7C3.11%7C3.12-blue.svg)](https://pypi.org/project/pypiserver/)\n\n📃 **LangGraph-Chatchat**\n\n基于 ChatGLM 等大语言模型与 LangGraph 等应用框架实现，开源、可离线部署的 RAG 与 Agent 应用项目。\n\n---\n\n## 概述\n\n🤖️ 一种利用 [LangGraph](https://langchain-ai.github.io/langgraph/)\n思想实现的基于本地知识库的问答应用，目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。\n\n💡 受 [GanymedeNil](https://github.com/GanymedeNil) 的项目 [document.ai](https://github.com/GanymedeNil/document.ai)\n和 [AlexZhangji](https://github.com/AlexZhangji)\n创建的 [ChatGLM-6B Pull Request](https://github.com/THUDM/ChatGLM-6B/pull/216)\n启发，建立了全流程可使用开源模型实现的本地知识库问答应用。本项目的最新版本中可使用 [Xinference](https://github.com/xorbitsai/inference)、[Ollama](https://github.com/ollama/ollama)\n等框架接入 [GLM-4-Chat](https://github.com/THUDM/GLM-4)、 [Qwen2-Instruct](https://github.com/QwenLM/Qwen2)、 [Llama3](https://github.com/meta-llama/llama3)\n等模型，使用基于 [Streamlit](https://github.com/streamlit/streamlit) 的 WebUI 进行操作。\n\n![](docs/img/langchain_chatchat_0.3.0.png)\n\n✅ 本项目支持市面上主流的开源 LLM、 Embedding 模型与向量数据库，可实现全部使用**开源**模型**离线私有部署**。与此同时，本项目也支持\nOpenAI GPT API 的调用，并将在后续持续扩充对各类模型及模型 API 的接入。\n\n⛓️ 本项目实现原理如下图所示，过程包括加载文件 -\u003e 读取文本 -\u003e 文本分割 -\u003e 文本向量化 -\u003e 问句向量化 -\u003e\n在文本向量中匹配出与问句向量最相似的 `top k`个 -\u003e 匹配出的文本作为上下文和问题一起添加到 `prompt`中 -\u003e 提交给 `LLM`生成回答。\n\n📺 [原理介绍视频](https://www.bilibili.com/video/BV13M4y1e7cN/?share_source=copy_web\u0026vd_source=e6c5aafe684f30fbe41925d61ca6d514)\n\n![实现原理图](docs/img/langchain+chatglm.png)\n\n从文档处理角度来看，实现流程如下：\n\n![实现原理图2](docs/img/langchain+chatglm2.png)\n\n🚩 本项目未涉及微调、训练过程，但可利用微调或训练对本项目效果进行优化。\n\n🧑‍💻 如果你想对本项目做出贡献，欢迎提交 pr。\n\n## 项目优势与定位\n\n### 项目定位\n一款面向`开发者`的`轻量级`的囊括了`RAG`,`Agent`等场景的`LLM`应用`微服务`.\n\n### 与 `LangChain-Chatchat` 的主要联系与自身特色\n\n1. 与 `LangChain-Chatchat` 的联系 \n- 开发人员相同, 属于原项目人员新拓展方向\n- RAG 检索逻辑不变\n- 知识库 功能不变\n- 模型和配置架构不变(少量关于 `Agent` 和 `Tool` 的配置有变化) \n\nps: 保持这么多的联系的目的: 方便大家在两个项目间平滑切换\n\n2. `LangGraph-Chatchat` 的项目特色\n- 背靠 `LangChain` 生态链, `LangGraph` 项目活跃, 有向无环图功能强大, 可供开发者根据不同场景定制各种不同的 `graph` 使用;\n- `LangChain` 的 `agent_executor` 过度封装, 可定制性差, 社区目前全力推广 `LangGraph`;\n- `LangGraph` 可与 `LangSmith` 搭配使用, 让 `Agent` 开发可视化性更强, 更直观;\n- `LangChain-Chatchat` 的历史消息存在前端管理, `LangGraph-Chatchat` 历史消息存在 `sqlite`(默认, 支持异步) 或 `PostgreSQL`(支持连接池+异步) 中, 方便开发者统一管理(UI 管理待支持);\n- `LangGraph-Chatchat` 提供了 `graph` 注册器和 `tool` 注册器, 并提供了几种 `demo` 和规范供开发者参考, 开发者可以像组装变形金刚一样开发 `graph`, 并且也都是异步;\n- `LangGraph-Chatchat` 对话的全部流程(`agent`和`rag`)均采用 `LangGraph` 来构建, 需要模型具备 `function call` 的能力.\n- `LangGraph-Chatchat` 计划只保留一个对话接口, 如: `/chat`, 其他操作全部通过 UI, 如有其他接口需求可随时与开发者讨论. \n\n## 快速上手\n\n### Docker 安装部署 (一定要看)\n\n查看 [Docker 安装指南](docs/install/README_docker_install.md)\n\n### 源码安装部署/开发部署\n\n查看 [开发部署指南](docs/install/README_dev_install.md)\n\n### 旧版本迁移\n\n- 首先按照 `安装部署` 中的步骤配置运行环境，修改配置文件\n- 将 `Langchain-Chatchat` 项目的 `knowledge_base` 目录拷贝到配置的 `DATA` 目录下\n\n---\n\n## 协议\n\n本项目代码遵循 [Apache-2.0](LICENSE) 协议。\n\n## 联系我们\n\n### Telegram\n\n[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=for-the-badge\u0026logo=telegram\u0026logoColor=white \"langchain-chatchat\")](https://t.me/+RjliQ3jnJ1YyN2E9)\n\n### 项目交流群\n\n\u003cimg src=\"docs/img/wx_01.jpg\" alt=\"二维码\" width=\"300\" /\u003e\n\n🎉 LangGraph-Chatchat 项目微信交流群，如果你也对本项目感兴趣，欢迎加入群聊参与讨论交流。\n\n## 引用\n\n如果本项目有帮助到您的研究，请引用我们：\n\n```\n@software{LangGraph-Chatchat,\n    title        = {{LangGraph-Chatchat}},\n    author       = {Zhang, Yuehua},\n    year         = 2025,\n    journal      = {GitHub repository},\n    publisher    = {GitHub},\n    howpublished = {\\url{https://github.com/chatchat-space/LangGraph-Chatchat}}\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatchat-space%2Flanggraph-chatchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchatchat-space%2Flanggraph-chatchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchatchat-space%2Flanggraph-chatchat/lists"}