Go to file
kennethcheng 05ad8e647c v0.0.8
langchain==0.3.27
langchain-community==0.3.31
langchain-siliconflow==0.1.3
2026-04-14 20:13:01 +08:00
helloworld v0.0.1 2026-04-12 17:39:33 +08:00
memory v0.0.8 2026-04-14 20:13:01 +08:00
ollama v0.0.6 2026-04-14 03:19:18 +08:00
parser v0.0.4 2026-04-13 20:57:38 +08:00
prompt v0.0.2 2026-04-12 19:48:20 +08:00
token v0.0.3 2026-04-12 20:12:56 +08:00
.env v0.0.6 2026-04-14 03:19:18 +08:00
.python-version v0.0.1 2026-04-12 17:39:33 +08:00
main.py v0.0.1 2026-04-12 17:39:33 +08:00
pyproject.toml v0.0.8 2026-04-14 20:13:01 +08:00
README.md v0.0.6 2026-04-14 03:19:18 +08:00
uv.lock v0.0.8 2026-04-14 20:13:01 +08:00

LangChain Learning

LangChain 框架学习项目,集成 SiliconFlow & Ollama API

功能特性

  • 多 LLM 集成:支持 OpenAI API、SiliconFlow、Ollama 及 LangChain 抽象层
  • 流式响应:实时流式输出,带来更好的使用体验
  • Prompt 工程:多种 Prompt 模板构建方式
  • 输出解析:支持 JSON 等格式解析
  • Token 用量追踪:轻松监控 API 调用消耗
  • 内存管理实现对话历史持久化ConversationBufferMemory, SummaryMemory
  • Rich 终端界面:支持 Markdown 渲染、多行输入等高级交互
  • 模型测速工具:测试模型的首字延迟 (TTFT) 和每秒生成速度 (TPS)
  • 实战示例:从基础到进阶的使用模式

快速开始

1. 安装依赖

pip install langchain>=1.2.15 langchain-community>=0.4.1 langchain-siliconflow>=1.0.0 requests>=2.33.1 rich openai

2. 配置环境变量

在项目根目录创建 .env 文件:

# SiliconFlow
SILICONFLOW_API_KEY=your_api_key_here
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1

# Ollama / 本地模型
OLLAMA_BASE_URL=http://localhost:11434/v1
OLLAMA_API_KEY=ollama

3. 运行示例

Hello World 示例

示例 命令 说明
直接调用 API python helloworld/helloworld.py 使用 requests 直接调用 SiliconFlow API
LangChain + ChatOpenAI python helloworld/helloworld_langchain_openai.py 通过 OpenAI 接口调用 LLM
LangChain + ChatSiliconFlow python helloworld/helloworld_siliconflow.py 使用 LangChain SiliconFlow 集成
OpenAI 客户端 + SiliconFlow python helloworld/openai_siliconflow.py OpenAI 客户端兼容 SiliconFlow

Prompt 示例

示例 命令 说明
PromptTemplate python prompt/prompt_demo.py 演示 PromptTemplate 模板构建
Few-shot Learning python prompt/fewshot_demo.py 带示例的少样本提示学习
从文件加载 Prompt python prompt/promt_from_file.py 从 YAML 文件加载提示词模板

输出解析示例

示例 命令 说明
JSON 解析器 python parser/json_parser_demo.py 使用 JsonOutputParser 解析 LLM 输出

Token 用量示例

示例 命令 说明
Token 追踪 python token/token_demo.py 使用 get_openai_callback 追踪 token 消耗

内存管理示例

示例 命令 说明
基础记忆 python memory/memory_desc.py 演示不同类型的 Memory 对象
带内存聊天 python memory/memory_demo.py 使用 ConversationBufferMemory 进行多轮对话
无内存聊天 python memory/without_memory_demo.py 基础 LLM 聊天,无历史上下文
Rich 界面聊天 python memory/without_memory_demo_rich.py 使用 Rich 美化的无内存聊天界面

Ollama 示例

示例 命令 说明
Rich 流式聊天 python ollama/ollama_rich_chat.py 支持 Markdown 渲染、多行输入的流式聊天
模型测速工具 python ollama/tps_monitor.py 测量模型的 TTFT 和 TPS 性能

项目结构

langchain-learning/
├── helloworld/
│   ├── helloworld.py                  # 直接调用 SiliconFlow API
│   ├── helloworld_langchain_openai.py # LangChain + ChatOpenAI
│   ├── helloworld_siliconflow.py      # LangChain + ChatSiliconFlow
│   └── openai_siliconflow.py          # OpenAI 客户端 + SiliconFlow
├── prompt/
│   ├── prompt_demo.py                 # PromptTemplate 模板示例
│   ├── fewshot_demo.py                # Few-shot Learning 示例
│   ├── promt_from_file.py             # 从文件加载 Prompt
│   ├── prompt_from_file.yaml          # Prompt YAML 模板文件
│   └── prompt_from_file.json          # Prompt JSON 模板文件
├── parser/
│   └── json_parser_demo.py            # JSON 输出解析示例
├── token/
│   └── token_demo.py                  # Token 用量追踪示例
├── memory/
│   ├── memory_desc.py                 # 演示 Memory 对象类型
│   ├── memory_demo.py                 # 带内存的对话链示例
│   ├── with_memory_demo.py            # 手动管理内存的聊天示例
│   ├── without_memory_demo.py         # 无内存的基础聊天
│   └── without_memory_demo_rich.py    # Rich 界面的无内存聊天
├── ollama/
│   ├── ollama_rich_chat.py            # Ollama 流式聊天Rich 界面)
│   └── tps_monitor.py                 # 模型性能测速工具
├── main.py                            # 入口文件
├── pyproject.toml                     # 项目配置
└── README.md

可用模型

SiliconFlow

  • deepseek-ai/DeepSeek-R1-0528-Qwen3-8B
  • Qwen/Qwen3.5-4B
  • Qwen/Qwen3-8B

Ollama (本地)

  • gemma4:26b
  • deepseek-v3.1:671b-cloud

技术栈

类别 技术
框架 LangChain
LLM 提供商 SiliconFlow, Ollama
终端美化 Rich
语言 Python 3.11+

许可证

MIT License