[TOC]
概念
LangChain 是一个开源框架,旨在简化基于大型语言模型(LLM,如 GPT、Llama、Claude、通义千问等)的应用程序开发。它的核心思想是:将语言模型与外部数据、工具和逻辑流程结合起来,构建更强大、更智能、可落地的 AI 应用。
主要是框架,集成,经验性
- 与LLM交互
- 有很多组件
- 功能拓展
git使用
新建项目
本地项目文件
↓
git init → 创建本地 Git 仓库
↓
git remote add origin … → 绑定 GitHub 仓库
↓
git add . → 选中要提交的文件
↓
git commit -m “…” → 打包成一个版本
↓
git branch -M main → 确保分支名叫 main
↓
git push -u origin main → 推送到 GitHub + 设置默认关联
基础命令
| 场景 | 命令 | 说明 |
|---|---|---|
| 查看当前状态 | git status |
看哪些文件改了、哪些没提交 |
| 提交代码 | git add . → git commit -m "xxx" |
保存一个版本 |
| 推送到 GitHub | git push |
同步到云端(首次需 -u) |
| 从 GitHub 拉最新代码 | git pull |
获取别人或自己其他设备的更新 |
| 查看提交历史 | git log --oneline |
看所有 commit 记录 |
密钥管理
使用python-dotenv库进行key管理
在根目录下新建.env 输入DASHSCOPE_API_KEY=xxx
一定要记得把.env加入到.gitignore中 防止泄露
1 | from dotenv import load_dotenv |
langchain简单交互
基础问答
1 | from dotenv import load_dotenv # 加载 .env 文件 |
多轮对话
1 | from langchain_core.messages import HumanMessage, AIMessage |
流式输出
1 | # 用户问题 |
提示词模板
1 | # 模板中有两个占位符:{language} 和 {task} |
定制参数
| 参数 | 类型 | 默认值 | 作用 | 示例 |
|---|---|---|---|---|
model |
str |
"gpt-3.5-turbo" |
指定模型名称 | "qwen-turbo", "qwen-max" |
temperature |
float |
0.7 |
控制随机性/创造性 • 0 = 确定性最强 • 1 = 最有创意(也更乱) openai允许1-2 但是不建议 |
temperature=0.2(写代码用低值)temperature=0.9(写诗用高值) |
max_tokens |
int |
模型最大上下文 | 限制模型最多生成多少 token | max_tokens=256(避免长篇大论) |
api_key |
str |
— | API 密钥 | 从 .env 读取 |
base_url |
str |
— | 自定义 API 地址(对接 DashScope/Ollama 等必需)国外调OpenAI不用写 | "https://dashscope.aliyuncs.com/compatible-mode/v1" |
top_p |
float |
1.0 |
核采样(nucleus sampling) 通常和 temperature 二选一调 |
top_p=0.9 |
streaming |
bool |
False |
是否启用流式(但推荐直接用 .stream() 方法) |
一般不用设 |
构建简单的聊天机器人
LCEL链式语法
LCEL 的核心思想是:用 | 把组件像管道一样连起来,比如:输入 → 提示模板 → 模型 → 输出解析
