# langchain-demo **Repository Path**: LinYsss/langchain-demo ## Basic Information - **Project Name**: langchain-demo - **Description**: 一个基于LangChain技术的开源演示项目,旨在通过实际案例展示链式语言模型的应用,帮助开发者快速理解和上手。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-06 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain 演示项目 本项目演示了 LangChain 的核心功能,包括 LCEL(LangChain 表达式语言)的异步流式调用和聊天消息历史管理。 ## 项目结构 ``` langchain-demo/ ├── src/ │ ├── langchain-lcel/ # LCEL 异步流式调用示例 │ │ ├── astream_chain.py # 异步流式链调用 │ │ ├── astream_chain_json.py # 异步流式 JSON 处理 │ │ ├── astream_event.py # 异步事件流 │ │ ├── astream_llm.py # 异步 LLM 流式输出 │ │ ├── astream_llm_mult.py # 异步多任务并发 │ │ └── stream_llm.py # 同步 LLM 流式输出 │ │ │ └── langchain-message/ # 聊天消息历史管理 │ ├── chat_history_config.py # 配置式会话历史 │ ├── chat_history_memory.py # 内存会话历史 │ ├── chat_history_redis.py # Redis 会话历史 │ ├── chatbot_clear_history.py # 消息清理 │ ├── chatbot_summarize_history.py # 消息摘要 │ └── chatbot_update_history.py # 消息更新 │ ├── tests/ # 测试目录 ├── pyproject.toml # 项目配置 └── poetry.lock # 依赖锁定文件 ``` ## 主要功能 ### 1. LCEL 异步流式调用 支持多种异步流式调用模式: - **单任务流式调用** - 使用 `astream_llm.py` 实现单个 LLM 调用的流式输出 - **链式流式调用** - 使用 `astream_chain.py` 实现多个处理步骤的流式串联 - **JSON 流式处理** - 使用 `astream_chain_json.py` 实现结构化数据的流式解析 - **事件流** - 使用 `astream_event.py` 实现基于事件的流式处理 - **多任务并发** - 使用 `astream_llm_mult.py` 实现多个异步任务的并发执行 - **同步流式** - 使用 `stream_llm.py` 实现传统的同步流式调用 ### 2. 聊天消息历史管理 提供多种消息历史存储后端: - **内存存储** - 适用于开发和测试场景 - **Redis 存储** - 适用于生产环境的分布式部署 - **配置式管理** - 支持灵活的会话配置 - **消息处理** - 支持消息清理、摘要和更新功能 ## 快速开始 ### 环境要求 - Python 3.10+ - Poetry(推荐) ### 安装依赖 ```bash poetry install ``` ### 运行示例 #### 异步流式调用示例 ```bash # 运行单个 LLM 流式调用 python -m src.langchain-lcel.astream_llm # 运行多任务并发示例 python -m src.langchain-lcel.astream_llm_mult ``` #### 聊天历史管理示例 ```bash # 使用内存存储 python -m src.langchain-message.chat_history_memory # 使用 Redis 存储 python -m src.langchain-message.chat_history_redis # 使用配置式会话 python -m src.langchain-message.chat_history_config ``` ## 依赖配置 主要依赖包括: - `langchain` - LangChain 核心库 - `langchain-openai` - OpenAI 集成 - `redis` - Redis 客户端(用于消息历史存储) - 其他 LangChain 相关依赖 详细依赖请查看 `pyproject.toml` 文件。 ## 测试 项目包含测试用例,位于 `tests/` 目录下。运行测试: ```bash poetry run pytest ``` ## License 本项目遵循开源许可证。