【LangChain】LLM基础介绍

LLM基础介绍

    • [1. 什么是大语言模型(LLM)?](#1. 什么是大语言模型(LLM)?)
    • [2. LLM 能做什么?](#2. LLM 能做什么?)
      • [2.1 知识问答](#2.1 知识问答)
      • [2.2 内容生成](#2.2 内容生成)
      • [2.3 逻辑推理](#2.3 逻辑推理)
      • [2.4 代码编写](#2.4 代码编写)
      • [2.5 多模态能力(部分模型)](#2.5 多模态能力(部分模型))
    • [3. 主流大模型一览](#3. 主流大模型一览)
    • [4. 提示工程基础](#4. 提示工程基础)
      • [4.1 什么是提示工程(Prompt Engineering)?](#4.1 什么是提示工程(Prompt Engineering)?)
      • [4.2 CO-STAR 框架](#4.2 CO-STAR 框架)
      • [4.3 零样本 vs 少样本提示](#4.3 零样本 vs 少样本提示)
      • [4.4 思维链(Chain-of-Thought, CoT)](#4.4 思维链(Chain-of-Thought, CoT))
      • [4.5 写好提示词的实用技巧](#4.5 写好提示词的实用技巧)
    • [5. 如何调用大模型](#5. 如何调用大模型)
      • [5.1 API 方式](#5.1 API 方式)
      • [5.2 SDK 方式](#5.2 SDK 方式)
      • [5.3 如何获取 API Key](#5.3 如何获取 API Key)
    • [6. LLM 的局限与解决方案](#6. LLM 的局限与解决方案)
    • [7. 从 LLM 到 AI 应用:整体架构](#7. 从 LLM 到 AI 应用:整体架构)
    • [8. 理解测试](#8. 理解测试)
    • [9. 总结](#9. 总结)

1. 什么是大语言模型(LLM)?

一句话理解

大语言模型(Large Language Model, LLM) 是一个超级"文字接龙"程序------你给它一段文字开头,它就能接着往下写。但它不是随便乱写,而是基于海量训练数据中学到的规律,预测最合适的下一个词。

用生活例子理解

想象一个学霸,他读遍了全世界的书籍、文章、代码,把海量知识都"压缩"进了自己脑子里。当你问他问题时,他不是在"查资料",而是根据他记住的所有知识模式,生成一个合理的回答。

  • 你问:"中国的首都是?" → 他答:"北京"(这是知识记忆)
  • 你问:"2 + 3 =?" → 他答:"5"(这是逻辑推理)
  • 你写:"def hello():" → 他补:" print('Hello, World!')"(这是代码生成)

关键数字

概念 说明 例子
参数量 (Parameters) 模型"大脑"中可调节的数值数量,越多越"聪明" GPT-3 有 1750 亿参数
上下文窗口 (Context Window) 模型一次能"看到"的最大文字量 GPT-5 支持 40万 Token
Token(词元) 模型处理文本的最小单位 1个汉字 ≈ 1.5~2 Token

Python 小知识:什么是 Token?

Token(词元)不是"单词",而是模型切分文本的最小单位。比如 "unbelievable" 可能被切成 "un"、"believe"、"able" 三个 Token。中文中,大多数常用汉字每个占 1~2 个 Token。这就是为什么中英文混合使用时 Token 数量会不同。


2. LLM 能做什么?

2.1 知识问答

  • 回答各种学科知识问题(历史、地理、科学等)
  • 限制:训练数据有截止日期,无法获取实时信息(需要结合搜索工具)

2.2 内容生成

  • 写文章、写诗、写代码、写邮件
  • 翻译、改写、润色文本

2.3 逻辑推理

  • 数学计算、逻辑推理、因果分析
  • 注意:LLM 本身不擅长精确计算,需要结合"工具调用"(后续会学到)

2.4 代码编写

  • 根据需求描述生成 Python/JavaScript/Java 等代码
  • 调试代码、解释代码逻辑

2.5 多模态能力(部分模型)

  • 理解图片内容(GPT-5、Gemini 等)
  • 生成图片、音频(DALL-E、Sora 等)

3. 主流大模型一览

模型 厂商 特点
GPT-5 OpenAI 最强通用能力,40万 Token 窗口
DeepSeek R1 深度求索 强推理能力,128K 窗口,性价比高
Qwen2.5-72B 阿里通义千问 中文能力强,支持结构化输出
Gemini 2.5 Pro Google 多模态最强,原生支持图片/音频/视频
Claude Anthropic 安全性和编程能力强

最新排名查看:Huggingface LLM 排行榜 https://huggingface.co/spaces/ArtificialAnalysis/LLMPerformance-Leaderboard


4. 提示工程基础

4.1 什么是提示工程(Prompt Engineering)?

提示工程就是设计给 LLM 的输入文本(提示词/Prompt),让它输出我们想要的结果。好的提示词就像是给一位超级聪明的实习生下达清晰的任务指令。

4.2 CO-STAR 框架

这是新加坡 GovTech 团队总结的系统化提示词框架:

要素 含义 例子
Context(背景) 提供任务背景 "我是一名 AI 开发者"
Objective(目标) 明确要完成什么 "解释 LLM 的工作原理"
Steps(步骤) 列出具体步骤 "1.先定义 2.举例 3.总结"
Tone(语气) 指定语气风格 "用轻松幽默的语气"
Audience(受众) 描述目标读者 "面向中学生"
Response(响应格式) 指定输出格式 "用 Markdown 表格返回"

示例

复制代码
[Context] 我是一名编程初学者
[Objective] 解释什么是 Python 变量
[Steps] 1.用生活例子比喻 2.给出代码演示 3.总结要点
[Tone] 轻松易懂,像朋友聊天
[Audience] 零基础编程小白
[Response] 不超过200字

4.3 零样本 vs 少样本提示

Python 概念速递:什么是 Few-shot(少样本)?

"Shot" 就是"示例"。"Zero-shot" = 不给例子直接提问;"Few-shot" = 先给几个例子再提问。这和机器学习中的"样本(sample)"是同一个概念。

零样本提示(Zero-shot):直接问,不给示例

复制代码
问题:2 🦜 9 等于多少?
模型:🤷 我不知道 🦜 是什么意思

少样本提示(Few-shot):先给几个例子,再提问

复制代码
例题:2 🦜 2 = 4  →  2 🦜 3 = 5
问题:2 🦜 9 等于多少?
模型:11!因为我从例题中学会了 🦜 代表加法

4.4 思维链(Chain-of-Thought, CoT)

思维链就是让模型"把解题过程说出来",而不是直接给答案。

  • 不用思维链

    复制代码
    问:小明有5个苹果,小红给了他3个,他一共几个?
    答:8个
  • 用思维链(Zero-shot-CoT,零样本思维链):在提示词末尾加上"让我们一步步思考"(Let's think step by step)

  • 用思维链+少样本(Few-shot-CoT):先给一个带推理过程的例题

    复制代码
    例题:问题:树上有3只鸟,飞走2只,还剩几只?
          推理:原来3只 → 飞走2只 → 3-2=1 → 答案:1只
    问题:小明有5个苹果,小红给了他3个,他一共几个?

Python 概念速递:为什么叫 Chain-of-Thought(思维链)?

Chain 就是"链子/链条"。模型把复杂问题拆成一步步(一环扣一环),形成推理链条。后面的 LangChain 框架名字中的 "Chain" 也是同一个词------把多个操作串联起来。

4.5 写好提示词的实用技巧

  1. 说清楚你要什么,而不是你不要什么

    • ❌ "不要写得太短"
    • ✅ "请写300字以上"
  2. 提供结构化的输出格式

    • ❌ "分析这篇文章"
    • ✅ "从以下三个方面分析:1.主要内容 2.写作手法 3.个人评价"
  3. 分步骤下达指令

    • ❌ "帮我写篇关于AI的报告"
    • ✅ "第一步:列出AI的3个应用领域。第二步:每个领域举一个例子。第三步:总结AI的发展趋势。"
  4. 使用分隔符 :用 ###--- 把指令、示例、问题分隔开,帮助模型清晰理解


5. 如何调用大模型

5.1 API 方式

API(应用程序编程接口) 就像餐厅里的"菜单"------你按照菜单格式点菜(发请求),厨房(服务器)就按照菜单给你上菜(返回结果)。

调用 LLM 的标准流程:

  1. 注册并获取 API Key(身份令牌)
  2. 构造 HTTP 请求(包含你的问题和参数)
  3. 发送请求到 API 端点(服务地址)
  4. 接收 JSON 格式的响应

curl 示例(命令行调用 OpenAI API)

bash 复制代码
curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-5",
    "input": "写一个关于独角兽的睡前故事"
  }'

Python 概念速递:什么是 curl?

curl 是命令行下发送 HTTP 请求的工具(Client URL 的缩写)。上面的命令就是:用 POST 方法向 OpenAI 的服务器地址发送一个 JSON 数据,-H 是请求头(Header),-d 是请求体(data)。在 Python 中,我们不会直接用 curl,而是用 requests 库或 LangChain 封装好的方法。

5.2 SDK 方式

SDK(软件开发工具包)把复杂的 API 调用封装成简单的 Python 函数:

python 复制代码
# 使用 OpenAI Python SDK
from openai import OpenAI

client = OpenAI(api_key="your-api-key")
response = client.responses.create(
    model="gpt-5",
    input="写一个关于独角兽的睡前故事"
)
print(response.output_text)

在 LangChain 中,调用会更统一(这就是 LangChain 的价值所在):

python 复制代码
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o-mini")
response = model.invoke("写一个关于独角兽的睡前故事")
print(response.content)

5.3 如何获取 API Key

  1. OpenAI:访问 https://platform.openai.com/ → 注册 → Settings → API Keys → 创建新密钥
  2. DeepSeek:访问 https://platform.deepseek.com/ → 注册 → API Keys 页面
  3. 通义千问:访问 https://dashscope.aliyun.com/ → 注册 → API-KEY 管理
  4. 零一万物 等其他国产模型也提供类似服务

⚠️ 安全提醒 :API Key 就像你的银行卡密码,绝对不能提交到 Git 仓库或公开发布。应该放在 .env 环境变量文件或操作系统的环境变量中。.env 文件要加入 .gitignore


6. LLM 的局限与解决方案

局限 表现 解决方案
知识截止 训练数据有截止日期 RAG(检索增强生成)
幻觉问题 自信地说出错误信息 工具调用验证
数学能力弱 精确计算容易出错 工具调用(计算器)
上下文限制 长文档无法一次性处理 文本分割 + RAG
隐私风险 敏感数据传输到云端 本地部署模型

7. 从 LLM 到 AI 应用:整体架构

复制代码
用户输入
    │
    ▼
[提示词模板] ── 组装完整的 Prompt
    │
    ▼
[LLM 调用] ── 通过 API/SDK 调用大模型
    │
    ▼
[输出解析] ── 把模型输出转成程序可用数据
    │
    ▼
返回给用户

后续 LangChain 和 LangGraph 的学习,本质上就是在这个基本流程之上:

  • LangChain:提供统一接口、链式调用、各类组件
  • LangGraph:提供状态管理、流程编排、持久化

8. 理解测试

问题1

Token 和"字"有什么区别?

答案:Token 是模型处理的最小单位,不等于"字"或"单词"。英文中,一个单词可能被拆成多个 Token(如 "unbelievable" → "un"+"believe"+"able"),中文中一个汉字约等于 1.5~2 个 Token。API 的计费和上下文窗口长度都是以 Token 为单位计算的。

问题2

零样本(Zero-shot)和少样本(Few-shot)有什么区别?

答案:零样本是不给例子直接提问,依赖模型的先验知识。少样本是先给几个"例题+答案",让模型学会规律后再回答新问题。少样本可以大幅提升特定任务的表现,但会消耗更多上下文窗口空间。

问题3

为什么需要 CO-STAR 框架?

答案:因为 LLM 对指令非常"敏感",模糊的指令会导致不稳定、不可预测的输出。CO-STAR 框架提供了系统化的六要素(背景、目标、步骤、语气、受众、响应格式),确保提示词覆盖所有关键信息,从而获得更稳定、更高质量的输出。

问题4

直接调用 API 和使用 LangChain 有什么区别?

答案 :直接调用 API 需要自己处理 HTTP 请求、解析 JSON、管理对话历史等;LangChain 封装了这些底层细节,提供统一的 model.invoke() 接口,并支持链式调用、流式输出、工具绑定等高级功能。简单说:API 是"砖块",LangChain 是"建筑框架"。


9. 总结

  1. LLM 是"文字接龙"高手,基于海量训练数据预测最合适的下一个词。

  2. Token 是 LLM 的基本度量单位,1 个汉字 ≈ 1.5~2 Token。

  3. 提示工程是发挥 LLM 能力的关键,推荐使用 CO-STAR 框架系统化设计提示词。

  4. 少样本提示和思维链 是两个最强的提示技巧,能在不改变模型的情况下大幅提升表现。

  5. LLM 有固有限制(知识截止、幻觉、算不准数),需要在应用中结合 RAG、工具调用等手段来克服。

  6. LangChain 是调用 LLM 的"统一入口",屏蔽了不同厂商 API 的差异,提供一致的开发体验。

相关推荐
Cosolar1 小时前
保姆级 CrewAI 教程:从零构建多智能体协作系统
人工智能·python·架构
Jinkxs1 小时前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
GDAL2 小时前
使用 uv 管理 Python 版本
python·uv·版本
真实的菜2 小时前
Redis 从入门到精通(十二):典型业务场景实战 —— 排行榜、限流器、秒杀系统、Session 共享
数据库·redis·python
cup112 小时前
[开源] Meta Assistant / 告别命令行,我为一堆 Python 脚本做了一个 Windows 任务栏的“家”
windows·python·工具·nuitka·脚本运行
晨曦中的暮雨2 小时前
Golang速通(Javaer版)
java·开发语言·后端·golang
小小编程路3 小时前
Python 还有容器类型互转、进制转换、字符编码转换
开发语言·windows·python
qeen873 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城3 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php