一、真零门槛启蒙:到底什么是 "编程" 和 "LLM"?
(一)什么是 "编程"?用最通俗的话讲透
你可能听过 "编程""代码",但不知道它们到底是什么 ------ 其实编程就是「人类用计算机能懂的 "极简语言",给计算机写 "任务清单"」。
举个类比:你给室友写了一张家务清单 ------「1. 倒垃圾 2. 买奶茶 3. 擦桌子」,室友能看懂并执行;编程就是给计算机写一张 **"计算机能看懂的清单"**:比如让计算机重复说 3 次 "我在学习 Python+LLM",用 Python(最接近人类语言的计算机语言)写出来是:
# 这是给人类看的"注释"(说明代码的作用,计算机不会执行)
for i in range(3): # 让计算机"重复做3次"
print("我在学习Python+LLM") # 让计算机"说这句话"
这段代码的逻辑和人类的 "重复 3 次 XX" 完全一致,这就是 Python 的核心优势:小白能直接看懂,无需复杂的专业背景。
(二)什么是 "LLM"?用 "超级管家" 类比讲透
LLM 是「大语言模型(Large Language Model)」的缩写,你可以把它理解成一个 "看过几千万亿文本的超级管家":
- 它 "学习" 了全世界公开的小说、论文、新闻、代码等所有文本,记住了文本的「语义规律」;
- 当你给它发一个「需求文本(业内叫Prompt,比如 "帮我写电商客服的回复")」,它会根据 "学习" 的规律生成符合逻辑的新文本。
但 LLM 有个核心 "小秘密":它不会直接 "读" 汉字 / 英文 ,会把所有文本拆成「语义小片段(业内叫Token )」------ 比如 "我是电商客服" 会拆成['你', '是', '电', '商', '客', '服', ',', '我', '想', '了', '解']这类语义单元,再把每个片段转换成计算机能懂的数字编码。这个 "拆分成 Token 再编码" 的过程,是 LLM 能 "理解" 文本的底层逻辑 ------ 我们后面会用 Python 代码可视化这个过程,让你直观看到 LLM 的 "思维方式"。
(三)为什么 Python 是开发 LLM 的 "首选语言"?
全球 90% 以上的 LLM 开发(包括 ChatGPT、文心一言的后端)都用 Python,核心原因有 3 个:
- 语法最接近自然语言:无需学习复杂的符号,像写作文一样写代码;
- LLM 生态最完善 :有
transformers/openai等现成的工具库,无需从零写 LLM 调用逻辑; - 兼容性最好:支持 Windows/macOS/Linux,能对接所有主流 LLM 平台。
二、LLM 开发环境搭建:100% 成功的零基础配置步骤
(一)Python 3.11 + 安装(必须用 3.11+,兼容所有 LLM 库)
1. Windows 系统步骤
- 步骤 1:打开 Python 官方网站,点击「Download Python 3.11.8」(最新稳定版,兼容所有 LLM 库);
- 步骤 2 :下载完成后双击安装包,必须勾选「Add Python 3.11 to PATH」(否则无法在命令行直接运行 Python);
- 步骤 3:点击「Install Now」,等待安装完成(约 1-2 分钟);
- 步骤 4 :验证安装:按下
Win+R输入cmd打开命令行,输入python --version,显示「Python 3.11.8」则安装成功。
2. macOS 系统步骤
- 步骤 1:打开 Python 官方网站下载「Python 3.11.8 macOS Installer」;
- 步骤 2:双击安装包,默认设置点击「Continue」至安装完成;
- 步骤 3 :验证安装:打开「Terminal」(终端),输入
python3 --version,显示「Python 3.11.8」则安装成功。
3. Linux 系统步骤
- 步骤 1 :打开终端,输入
sudo apt update && sudo apt install python3.11 python3-pip(Ubuntu/Debian 系统); - 步骤 2 :验证安装:输入
python3 --version,显示「Python 3.11.8」则安装成功。
(二)PyCharm 社区版安装(免费的 LLM 开发 IDE)
IDE 是「集成开发环境」,是写 Python 代码的 "专业编辑器",我们选择PyCharm 社区版(免费、功能足够满足 LLM 开发):
- 步骤 1:打开 JetBrains 官网,点击「Download」下载「Community Edition」;
- 步骤 2:双击安装包,默认设置安装完成;
- 步骤 3 :打开 PyCharm,点击「New Project」,选择「Pure Python」,设置项目路径(比如
D:\LLM-Python-Study),点击「Create」创建项目; - 步骤 4:配置 Python 解释器:点击「File」→「Settings」→「Project: LLM-Python-Study」→「Python Interpreter」,选择刚才安装的「Python 3.11.8」,点击「OK」。
(三)LLM 核心库安装(配置国内镜像源,避免下载慢)
默认的 Python 库下载地址在国外,速度很慢,我们先配置国内清华镜像源:
- Windows :命令行输入
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple; - macOS/Linux :终端输入
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple。
然后安装 LLM 开发必须的transformers 库(用来可视化 LLM 的 Token 机制):
- Windows :命令行输入
pip install transformers; - macOS/Linux :终端输入
pip3 install transformers。
安装完成后,在 PyCharm 中新建一个test_llm.py文件,输入以下代码验证:
from transformers import AutoTokenizer # 导入LLM工具包中的Token可视化工具
print("LLM库安装成功!")
点击 PyCharm 右上角的「Run」按钮,输出「LLM 库安装成功!」则配置完成。
三、Python 核心语法 1:注释 ------ 给 LLM 写 "开发说明书"
注释是给人类看的代码说明 ,计算机不会执行,是 LLM 开发中保证代码可维护的核心(比如记录 Prompt 的设计思路、API 参数的含义)。Python 支持两种注释:
(一)单行注释(用#开头)
用于简短说明单句代码的作用,LLM 开发中常用于标注变量、函数的含义:
# LLM的模型名称(ChatGPT的轻量版)
llm_model = "gpt-3.5-turbo"
# LLM的温度参数(0-2,0=严谨,2=随机)
llm_temperature = 0.7
(二)多行注释(用"""或'''包裹)
用于详细说明一段代码的作用 ,LLM 开发中常用于标注复杂的 Prompt 模板设计思路、系统提示词的要求:
"""
多行注释:LLM系统提示词的设计要求
1. 身份:电商客服
2. 规则:仅回答商品相关问题
3. 风格:简洁明了,不超过20字
"""
system_prompt = "你是电商客服,仅回答商品相关问题,回答简洁。"
四、Python 核心语法 2:变量与基础数据类型 ------LLM 的 "数据容器"
变量是给数据起的 "外号" ,不同类型的数据需要用不同的 "容器"(数据类型)存储,LLM 开发中仅用以下 4 种核心数据类型:
(一)数字类型:LLM 的 "计数工具"
用于统计、计算的数值,分为两种:
- 整数(int) :没有小数点的数字,LLM 场景示例:
token_limit = 4096(LLM 的上下文窗口限制,即最多处理 4096 个 Token)api_request_count = 100(LLM 的批量 API 请求次数)
- 浮点数(float) :带小数点的数字,LLM 场景示例:
llm_temperature = 0.7(LLM 的随机性参数)product_price = 29.9(商品价格,用于生成带价格的 Prompt)
LLM 场景示例代码:
# 整数:LLM上下文窗口限制(Token数量)
token_limit = 4096
# 浮点数:LLM温度参数(随机性)
llm_temperature = 0.7
# 浮点数:商品价格
product_price = 29.9
print("LLM上下文窗口限制:", token_limit)
print("LLM温度参数:", llm_temperature)
print("商品价格:", product_price)
运行结果:
LLM上下文窗口限制: 4096
LLM温度参数: 0.7
商品价格: 29.9
(二)布尔值(bool):LLM 的 "开关 / 判断工具"
用于 ** 表示 "是 / 否""真 / 假"** 的逻辑值,只有两个取值:True(真 / 是)和False(假 / 否),LLM 场景示例:
is_token_over_limit = True(判断 Prompt 的 Token 数量是否超过限制)is_api_request_valid = False(判断 LLM API 请求是否有效)
LLM 场景示例代码:
# 布尔值:判断Prompt的Token数量是否超过限制
is_token_over_limit = False
# 布尔值:判断LLM API请求是否有效
is_api_request_valid = True
print("Token是否超限:", is_token_over_limit)
print("API请求是否有效:", is_api_request_valid)
运行结果:
Token是否超限: False
API请求是否有效: True
(三)字符串(str):LLM 的 "文本容器"
用于存储文本 的数据类型,用""或''包裹,是 LLM 开发中最常用的数据类型------ 所有的 Prompt、用户提问、LLM 回答都是字符串:
字符串基础操作(LLM 场景必用):
-
单行字符串 :
user_question = "苹果15手机壳的发货时间" -
多行字符串 :用
"""包裹,用于 LLM 的长 Prompt 模板:# 多行字符串:LLM的长Prompt模板 long_prompt = """ 你是电商客服,回答以下用户问题: 1. 仅回答商品相关问题 2. 回答要简洁明了 3. 包含商品价格信息 """ -
字符串拼接 :用
+或f-string拼接,用于动态生成 LLM Prompt:# 变量:商品名称 product_name = "苹果15手机壳" # 变量:用户问题 user_question = "发货时间" # f-string动态拼接(推荐,Python 3.6+支持) dynamic_prompt = f"帮我查询{product_name}的{user_question}" print("动态生成的LLM Prompt:", dynamic_prompt)运行结果 :
动态生成的LLM Prompt: 帮我查询苹果15手机壳的发货时间
五、Python 核心语法 3:函数 ------LLM 的 "重复操作打包器"
函数是把常用的重复操作 "打包成一个盒子" ,需要时直接调用即可,LLM 开发中常用于封装重复的 Prompt 生成、Token 统计、API 参数构建逻辑,避免重复写代码。
(一)函数的基础语法(零门槛理解)
函数的结构就像 "烤奶茶的机器":
def:告诉计算机 "这是一个函数"函数名:机器的名称(比如make_milk_tea)参数:机器的 "原料入口"(比如tea_type/sugar)::函数的开始标志函数体:机器的 "操作步骤"(必须缩进)return:机器的 "成品出口"(返回结果)
(二)LLM 场景绑定:函数的实战应用
我们用函数封装 LLM 的 Prompt 生成逻辑 ,参数是product_name/user_question,返回值是full_prompt(完整的 LLM Prompt)和token_count(Prompt 的 Token 数量):
1. 函数定义(打包重复操作)
# 导入LLM Token统计工具
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("hfl/chinese-roberta-wwm-ext")
# 定义函数:生成LLM的Prompt并统计Token数量
def generate_llm_prompt(product_name, user_question):
# 函数体1:生成系统提示词
system_prompt = "你是电商客服,仅回答商品相关问题,回答简洁。"
# 函数体2:生成用户提问Prompt
user_prompt = f"我想了解{product_name}的{user_question}"
# 函数体3:拼接完整的LLM Prompt
full_prompt = system_prompt + "\n用户:" + user_prompt + "\nLLM:"
# 函数体4:统计Token数量
token_count = len(tokenizer.tokenize(full_prompt))
# 返回结果(成品出口)
return full_prompt, token_count
2. 函数调用(使用打包好的操作)
# 调用函数:查询苹果15手机壳的发货时间
prompt1, token1 = generate_llm_prompt("苹果15手机壳", "发货时间")
# 调用函数:查询华为Mate60手机壳的价格
prompt2, token2 = generate_llm_prompt("华为Mate60手机壳", "价格")
print("【苹果15手机壳的Prompt】:")
print(prompt1)
print("Token数量:", token1)
print("\n【华为Mate60手机壳的Prompt】:")
print(prompt2)
print("Token数量:", token2)
3. 运行结果
【苹果15手机壳的Prompt】:
你是电商客服,仅回答商品相关问题,回答简洁。
用户:我想了解苹果15手机壳的发货时间
LLM:
Token数量: 42
【华为Mate60手机壳的Prompt】:
你是电商客服,仅回答商品相关问题,回答简洁。
用户:我想了解华为Mate60手机壳的价格
LLM:
Token数量: 41
LLM 落地性 :将生成的full_prompt直接复制到 ChatGPT / 文心一言等平台,即可获得符合要求的回答。
六、LLM 核心底层:用 Python 可视化 Token 机制
我们用transformers 库可视化 LLM 的 Token 拆分过程,让你直观看到 LLM 的 "思维方式":
(一)Token 可视化完整代码
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("hfl/chinese-roberta-wwm-ext")
# LLM的完整Prompt
full_prompt = "你是电商客服,仅回答商品相关问题\n用户:苹果15手机壳的发货时间\nLLM:"
# 1. 拆分Prompt为Token
tokens = tokenizer.tokenize(full_prompt)
# 2. 转换为数字编码
token_ids = tokenizer.convert_tokens_to_ids(tokens)
# 3. 统计Token数量
token_count = len(tokens)
print("LLM拆分的Token:", tokens)
print("Token的数字编码:", token_ids)
print("Prompt的Token数量:", token_count)
(二)运行结果(部分)
LLM拆分的Token: ['你', '是', '电', '商', '客', '服', ',', '仅', '回', '答', '商', '品', '相', '关', '问', '题', '用', '户', ':', '苹', '果', '15', '手', '机', '壳', '的', '发', '货', '时', '间', 'L', 'L', 'M', ':']
Prompt的Token数量: 34
(三)Token 机制的 3 个核心规则(LLM 开发必须记住)
- Token 是语义单元:LLM 会把文本拆成有意义的小片段(比如 "15" 作为一个完整 Token,"电商" 拆成 "电""商");
- 上下文窗口限制:所有 LLM 都有 "最大 Token 数量限制"(比如 GPT-3.5-turbo 是 4096),超过限制的 Prompt 会被截断,导致 LLM 回答错误;
- Token 计数工具 :用
len(tokenizer.tokenize(prompt))可快速计算 Token 数量,这是 LLM 开发的 "必备技能"。
七、实战:用函数封装的 LLM 智能客服 Prompt 系统
我们用前面学的所有语法 (注释、变量类型、函数)构建一个可复用的 LLM 智能客服 Prompt 系统,支持动态修改 LLM 身份、规则、商品名称、用户问题:
(一)实战完整代码
# 导入LLM Token统计工具
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("hfl/chinese-roberta-wwm-ext")
"""
多行注释:LLM智能客服Prompt系统的设计要求
1. 功能:动态生成符合要求的LLM Prompt
2. 输入:LLM身份、规则、商品名称、用户问题
3. 输出:完整Prompt、Token数量、是否超限
"""
# -------------------------- 系统配置(可直接修改) --------------------------
# 布尔值:是否开启Token超限检查
check_token_limit = True
# 整数:Token限制
token_limit = 100
# -------------------------- 函数定义(打包核心逻辑) --------------------------
def create_kefu_prompt(llm_role, llm_rule, product_name, user_question):
# 生成系统提示词
system_prompt = f"你是{llm_role},{llm_rule}"
# 生成用户提问
user_prompt = f"我想了解{product_name}的{user_question}"
# 拼接完整Prompt
full_prompt = f"系统提示:{system_prompt}\n用户:{user_prompt}\nLLM:"
# 统计Token数量
token_count = len(tokenizer.tokenize(full_prompt))
# 判断是否超限
if check_token_limit:
is_over_limit = token_count > token_limit
else:
is_over_limit = False
# 返回结果
return full_prompt, token_count, is_over_limit
# -------------------------- 系统调用(使用核心逻辑) --------------------------
# 测试用例1:苹果15手机壳的发货时间
prompt1, token1, over1 = create_kefu_prompt(
llm_role="专业电商客服",
llm_rule="仅回答商品相关问题,回答简洁明了",
product_name="苹果15手机壳",
user_question="发货时间和快递方式"
)
# 测试用例2:华为Mate60手机壳的材质
prompt2, token2, over2 = create_kefu_prompt(
llm_role="专业电商客服",
llm_rule="仅回答商品相关问题,回答包含细节",
product_name="华为Mate60手机壳",
user_question="材质和防摔性能"
)
# -------------------------- 结果输出 --------------------------
print("【测试用例1:苹果15手机壳】")
print("完整Prompt:", prompt1)
print("Token数量:", token1)
print("是否超限:", over1)
print("\n" + "-"*60 + "\n")
print("【测试用例2:华为Mate60手机壳】")
print("完整Prompt:", prompt2)
print("Token数量:", token2)
print("是否超限:", over2)
print("\n✅ 系统运行完成!")
(二)运行结果
【测试用例1:苹果15手机壳】
完整Prompt: 系统提示:你是专业电商客服,仅回答商品相关问题,回答简洁明了
用户:我想了解苹果15手机壳的发货时间和快递方式
LLM:
Token数量: 48
是否超限: False
------------------------------------------------------------
【测试用例2:华为Mate60手机壳】
完整Prompt: 系统提示:你是专业电商客服,仅回答商品相关问题,回答包含细节
用户:我想了解华为Mate60手机壳的材质和防摔性能
LLM:
Token数量: 50
是否超限: False
✅ 系统运行完成!
(三)实战的核心价值
- 可复用性 :修改
llm_role/llm_rule即可快速切换 LLM 的身份和规则,避免重复写代码; - 合规性:自动检查 Token 数量,避免超过 LLM 的上下文限制;
- 可扩展性:可轻松添加更多功能(比如 API 调用、语料清洗);
- 落地性:直接对接 LLM 平台,可快速生成符合要求的回答。
八、零基础避坑指南:10 个必踩的新手错误
(一)函数定义缺少def或:
错误 :generate_prompt(product_name, user_question);后果 :代码报错(SyntaxError);正确 :def generate_prompt(product_name, user_question):。
(二)字符串拼接时类型不匹配
错误 :prompt = "Token数量:" + 4096(字符串 + 整数);后果 :代码报错(TypeError);正确 :prompt = "Token数量:" + str(4096)(转换为字符串)或prompt = f"Token数量:{4096}"(f-string 自动转换)。
(三)布尔值拼写错误
错误 :is_valid = true(小写);后果 :代码报错(NameError);正确 :is_valid = True(首字母大写)。
(四)函数调用时参数数量不匹配
错误 :generate_prompt("苹果15手机壳")(缺少用户问题参数);后果 :代码报错(TypeError);正确 :generate_prompt("苹果15手机壳", "发货时间")(参数数量与定义一致)。
(五)多行注释的引号不匹配
错误 :"""LLM系统提示词(缺少闭合引号);后果 :代码报错(SyntaxError);正确 :"""LLM系统提示词"""(首尾引号一致)。
九、本文核心总结
- 零门槛理解:编程是给计算机写 "自动化操作手册",LLM 是 "超级文案专员",Python 是最适合的开发语言;
- 核心语法补全 :
- 注释 :单行(
#)、多行("""),用于记录 LLM 的开发说明; - 变量类型:数字(整数 / 浮点数,用于统计 Token、API 参数)、布尔值(用于判断是否超限 / 有效)、字符串(用于存储 Prompt、用户提问);
- 函数:封装重复的 LLM 操作(Prompt 生成、Token 统计),提高代码复用性;
- 注释 :单行(
- LLM 场景绑定:所有语法都直接对接 LLM 的真实开发需求(Prompt 生成、Token 统计、API 参数);
- 实战落地 :构建了可复用的 LLM 智能客服 Prompt 系统,代码可直接用于 ChatGPT / 文心一言等平台;
- 避坑指南:掌握了 10 个零基础必踩的错误,避免后续开发出错。
下一篇我们将学习《Python 数据类型:LLM 语料与 API 参数的底层处理逻辑》,讲解如何用 Python 处理批量 LLM 语料和 API 请求参数。