J-Ravuri/langchain-tutorial
GitHub: J-Ravuri/langchain-tutorial
一个基于 LangChain v0.3+ 和 Streamlit 的实战教程,通过企业事件响应场景演示 LCEL 编排、提示词设计与并行 AI 简报生成。
Stars: 0 | Forks: 0
# LangChain Streamlit 教程
此仓库包含用于使用 Streamlit 构建现代 LangChain `v0.3+` 应用的小型、独立的教程章节。
当前项目包含两个章节:
- `chapter-1`:原始的企业事件控制中心应用,作为一个独立可运行的项目进行组织。
- `chapter-2`:一个更清晰、专注于教程的版本,重点展示了使用 `RunnableParallel` 的分叉 LCEL 数据流。
每个章节都有自己的 `app.py`、`requirements.txt`、`README.md`、prompt 文档和本地 `.venv`。
## 仓库布局
```
.
├── README.md
├── .env.example
├── .gitignore
├── chapter-1
│ ├── README.md
│ ├── PROMPTS.md
│ ├── app.py
│ └── requirements.txt
└── chapter-2
├── README.md
├── PROMPTS.md
├── app.py
└── requirements.txt
```
`.venv` 文件夹被 git 特意忽略了。请根据每个章节的 `requirements.txt` 在本地重新创建它们。
## 前置条件
- Python 3.9 或更高版本
- 一个名为 `OPENAI_API_KEY` 的系统环境变量中可用的 OpenAI API 密钥
检查您的密钥:
```
echo "$OPENAI_API_KEY"
```
为当前终端会话设置密钥:
```
export OPENAI_API_KEY="your-api-key"
```
## 运行第 1 章
```
cd chapter-1
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m streamlit run app.py
```
## 运行第 2 章
```
cd chapter-2
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
python -m streamlit run app.py
```
## 各章节的教学内容
第 1 章讲解了由 LangChain 驱动的 Streamlit 应用的核心结构:
- 从环境变量中读取密钥,而不是将它们硬编码在代码中
- 创建 `ChatOpenAI` 模型
- 使用 `ChatPromptTemplate`
- 使用 `StrOutputParser` 解析模型输出
- 在 Streamlit 中渲染模型输出
第 2 章讲解了编排:
- 使用 LCEL 管道语法:`prompt | model | parser`
- 将一个输入分叉为两个协同的工作流
- 使用 `RunnableParallel` 运行这些工作流
- 为多个业务受众设计同一个技术输入
- 向工作中的专业人士讲解 LangChain 数据流
## Git 提交注意事项
可以安全提交的文件:
- `README.md`
- `.env.example`
- `.gitignore`
- `chapter-1/app.py`
- `chapter-1/README.md`
- `chapter-1/PROMPTS.md`
- `chapter-1/requirements.txt`
- `chapter-2/app.py`
- `chapter-2/README.md`
- `chapter-2/PROMPTS.md`
- `chapter-2/requirements.txt`
请勿提交的文件:
- `.venv/`
- `.env`
- `.streamlit/secrets.toml`
- `__pycache__/`
- 本地日志或临时文件
## 验证
在仓库根目录下执行:
```
PYTHONPYCACHEPREFIX=/tmp/langchain-tutorial-pycache chapter-1/.venv/bin/python -m py_compile chapter-1/app.py
PYTHONPYCACHEPREFIX=/tmp/langchain-tutorial-pycache chapter-2/.venv/bin/python -m py_compile chapter-2/app.py
```
该应用仅在点击 Streamlit 按钮后才会调用 OpenAI。
## 故障排除
如果您的终端提示 `zsh: command not found: streamlit`,请使用模块形式运行:
```
python -m streamlit run app.py
```
该命令会使用活动虚拟环境中的 Python,而不依赖于 shell 去查找 `streamlit` 控制台脚本。
标签:AI教程, Kubernetes, LangChain, LCEL, Petitpotam, Streamlit, 应急响应模拟, 访问控制, 轻量级, 逆向工具