【AI大模型应用开发工程师特训讲义】第04讲(第3章):常量、变量与基础数据类型
目录
本章将学习 Python 中最核心的基础知识:变量、常量与基础数据类型。所有示例均围绕 AI 大模型 的实际场景展开——例如定义模型参数、处理提示词、解析 API 返回结果等。学完本章,你将为后续编写 AI 应用脚本打下扎实基础。
第一章:变量
1.1 什么是变量?
在编程中,变量 是一个用来存储数据的“容器”,你可以给这个容器起一个名字,之后通过名字来使用里面的数据。
AI 场景举例:
你希望记住当前使用的大模型名称、温度系数、最大生成长度等,这些信息都可以存放在变量中。
model_name = "gpt-4" # 存储模型名称
temperature = 0.7 # 存储温度系数(控制创造性)
max_tokens = 2048 # 存储最大输出长度
-
model_name、temperature、max_tokens就是变量名。 -
=是赋值运算符,把右边的值赋给左边的变量。 -
我们以后只要写
model_name,Python 就知道你要使用字符串"gpt-4"。
1.2 变量命名规则(必须遵守)
(1)只能由 字母、数字、下划线 组成,不能以数字开头。
-
✅
prompt,temperature,top_p,max_tokens,response_text_1 -
❌
123model,model-name,token#
(2)区分大小写:ModelName 和 modelname 是两个不同的变量。
(3)不能使用 Python 保留字(if, for, while, def, class, import 等)。
(4)推荐命名风格:使用有意义的英文单词,多个单词用下划线连接(snake_case)。
-
✅
system_prompt,api_timeout,total_tokens_used -
❌
a,tmp,x1(虽然合法,但含义不明)
💡 AI 开发惯例:常用变量名包括
model,prompt,max_length,temperature,top_k,stop_sequences等,见名知意。
1.3 Python 变量的动态类型特性
Python 中变量无需预先声明类型,同一个变量可以先后存储不同类型的值。
context = "Hello" # 先是字符串
context = 123 # 现在变成整数(完全允许)
context = [1, 2, 3] # 现在变成列表
但在真实的 AI 项目中,建议一个变量始终存放同一种类型的数据,以免造成混乱。
1.4 同时为多个变量赋值
# 一行给多个变量赋值
model, temperature, max_tokens = "gpt-3.5", 0.8, 1000
# 多个变量赋同一个初始值
timeout = retry_times = 3
实用技巧:交换两个变量的值(AI 中常用于模型版本对比)
model_a, model_b = "gpt-4", "claude-3"
model_a, model_b = model_b, model_a # 交换
print(model_a, model_b) # claude-3 gpt-4
第二章:常量
Python 中没有强制不可修改的常量,但程序员们约定:使用全大写字母命名的变量视为常量,表示其值不应被修改。
AI 场景举例:API 密钥、模型的最大上下文长度、默认超时时间等。
API_KEY = "sk-xxxxxxxxxxxxx" # API 密钥(不应硬编码,此处仅示例)
MAX_CONTEXT_TOKENS = 8192 # 模型最大上下文 token 数
DEFAULT_TEMPERATURE = 1.0
⚠️ 注意:如果你意外修改了
API_KEY = "new",Python 不会报错,但按规则你不应该这样做。对于真正的配置管理,应使用环境变量或配置文件,这里只是理解概念。
第三章:基础数据类型
计算机中的数据有不同的类型,Python 中最常用的几种类型,在 AI 开发中几乎天天见。
3.1 整型(int)
整型 用于表示整数:正数、负数、0。
AI 应用场景:模型参数量(如 70 亿)、最大输出 token 数、已使用 token 数、第几轮对话等。
params_billion = 70 # 模型参数量(亿)
input_tokens = 1200 # 输入消耗的 token 数
output_tokens = 350 # 输出 token 数
total_tokens = input_tokens + output_tokens # 总计
turn_number = 3 # 第几轮对话
整型运算(与数学一致):
a = 10
b = 3
print(a + b) # 加法 -> 13
print(a - b) # 减法 -> 7
print(a * b) # 乘法 -> 30
print(a / b) # 除法(结果为浮点数)-> 3.333...
print(a // b) # 整除(取整数部分)-> 3
print(a % b) # 取余 -> 1
print(a ** b) # 幂运算 10^3 -> 1000
🧠 记忆点:单斜杠
/结果是小数,双斜杠//只保留整数部分。
3.2 浮点型(float):温度系数、概率值
浮点型 表示带小数点的数字。
AI 应用场景:温度系数(temperature,通常 0~2)、top_p 核采样阈值、模型输出某个 token 的概率、损失值等。
temperature = 0.85 # 控制随机性,越高越天马行空
top_p = 0.95 # 核采样阈值
penalty = 1.2 # 重复惩罚系数
confidence = 0.9975 # 模型对某个结果的置信度
⚠️ 注意精度:浮点数运算可能产生微小误差,例如
0.1 + 0.2可能会输出0.30000000000000004。在 AI 中一般不影响最终判断,但比较时常用abs(a-b) < 1e-9。
3.3 布尔型(bool):是否流式输出、是否使用缓存
布尔型 只有两个值:True(真)和 False(假)。
AI 应用场景:是否使用流式输出、是否启用缓存、是否结束对话(stop)、是否包含历史记录等。
is_streaming = True # 是否流式返回结果
use_cache = False # 是否使用缓存
is_finished = False # 模型是否输出结束标志
比较运算得到布尔值:
max_tokens_limit = 4096
user_request_tokens = 5000
exceeds_limit = user_request_tokens > max_tokens_limit # True
逻辑运算(and, or, not):
has_api_key = True
has_quota = False
can_call = has_api_key and has_quota # False(两者都真才真)
error_flag = not can_call # True
3.4 字符串(str):提示词、模型回复、系统指令
字符串:是由字符组成的文本,用单引号 ' 或双引号 " 括起来。
AI 应用场景:系统提示词(system prompt)、用户输入(user prompt)、模型生成的回复、API 请求的 JSON 字符串等。
system_prompt = "你是一个乐于助人的AI助手。"
user_input = "请解释一下什么是大语言模型?"
assistant_reply = "大语言模型是基于Transformer架构的深度学习模型..."
常用字符串操作
拼接(用 +):
prompt = "请用中文回答:" + " " + user_input
重复(用 *):
separator = "-" * 30 # 输出 "------------------------------"
长度(len()):
prompt = "你好,AI"
length = len(prompt) # 5(注意:中文按字符数算,不是字节数)
索引与切片(从 0 开始):
model_name = "gpt-4"
first_char = model_name[0] # 'g'
last_char = model_name[-1] # '4'(-1 表示倒数第一个)
short_name = model_name[0:3] # 'gpt'(从索引0到2)
常用方法(返回新字符串,原字符串不变):
text = " GPT-4 Turbo "
print(text.strip()) # 去除两端空格 -> "GPT-4 Turbo"
print(text.lower()) # 全小写 -> " gpt-4 turbo "
print(text.upper()) # 全大写 -> " GPT-4 TURBO "
print(text.replace("GPT-4", "Claude")) # 替换
f-string 格式化(最推荐,Python 3.6+):
model = "gpt-4"
temp = 0.7
print(f"当前模型:{model},温度系数:{temp}") # 非常直观
转义字符(以反斜杠 \ 开头):
-
\n换行 -
\t制表符 -
\\表示一个反斜杠 -
\"或\'在字符串内使用引号
multi_line = "第一行\n第二行\n第三行"
path = "C:\\Users\\ai_engine\\config.json"
3.5 空值(None):表示“尚未获取”或“无结果”
None 是一个特殊的空值,表示“什么都没有”。
AI 应用场景:API 调用失败时返回 None、某些可选参数不提供时默认为 None、占位变量等。
response = None # 还没有请求结果
if response is None:
print("请先调用API获取回复")
✅ 判断是否为 None 推荐使用
is而不是==:if value is None:。
3.6 类型检查与类型转换
3.6.1 查看变量类型:type()
print(type(70)) # <class 'int'>
print(type(0.85)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type("gpt-4")) # <class 'str'>
print(type(None)) # <class 'NoneType'>
3.6.2 类型转换(非常实用!)
从 input() 函数获取的用户输入默认是字符串,如果要用作数值必须转换。
转换为整数 int():
max_tokens_str = input("请输入最大token数:") # 比如 "1000"
max_tokens = int(max_tokens_str) # 转为整数 1000
⚠️
int("3.14")会报错,因为字符串包含小数点。应先用float()转换为浮点数,再用int()取整。
转换为浮点数 float():
temperature_str = input("温度系数:") # "0.8"
temperature = float(temperature_str) # 0.8
转换为字符串 str():
token_count = 350
message = "本次消耗了 " + str(token_count) + " 个 token"
转换为布尔值 bool():
-
以下值转为
False:0,0.0,""(空字符串),None,[],{}等空容器 -
其他值几乎都是
True
print(bool(0)) # False
print(bool("")) # False
print(bool(None)) # False
print(bool("hello")) # True
print(bool(-1)) # True
3.7 用户输入:与 AI 模型交互的第一步
使用 input() 函数从键盘获取用户输入,返回类型永远是字符串。
user_question = input("请问您想问什么?")
print(f"用户的问题是:{user_question}")
完整示例:AI 对话温度系数调节器
# 1. 用户输入
model = input("请输入模型名称(例如 gpt-4):")
raw_temp = input("请输入温度系数(0-2之间,常用0.7):")
# 2. 类型转换
temperature = float(raw_temp)
# 3. 业务逻辑判断
if temperature < 0.5:
creative_level = "保守,输出更确定"
elif temperature <= 1.2:
creative_level = "平衡"
else:
creative_level = "非常具有创造性"
# 4. 输出
print(f"模型:{model},温度:{temperature} -> {creative_level}")
3.8 综合实战:手写一个“AI 调用参数配置器”
将本章所有知识融合成一个实用小脚本。该脚本模拟向大模型发起请求前的参数设置。
# AI 参数配置脚本
# 1. 常量(约定不变)
DEFAULT_MAX_TOKENS = 2048
API_ENDPOINT = "https://api.openai.com/v1/chat/completions" # 示例地址
# 2. 用户输入(变量)
model = input("请选择模型 (gpt-4 / gpt-3.5 / claude-3):")
prompt = input("请输入你的提问:")
temp_str = input("温度 (0~2,默认0.7):")
max_tokens_str = input(f"最大输出token数 (默认{DEFAULT_MAX_TOKENS}):")
# 3. 类型转换与默认值处理
temperature = float(temp_str) if temp_str != "" else 0.7
max_tokens = int(max_tokens_str) if max_tokens_str != "" else DEFAULT_MAX_TOKENS
# 4. 布尔选项
stream_str = input("是否流式输出 (y/n):")
is_stream = (stream_str.lower() == 'y') # 得到 True 或 False
# 5. 构建最终输出信息
print("\n" + "="*40)
print("🌟 参数配置完成 🌟")
print(f"模型:{model}")
print(f"提示词:{prompt[:50]}..." if len(prompt) > 50 else f"提示词:{prompt}")
print(f"温度:{temperature},最大token数:{max_tokens}")
print(f"流式输出:{'是' if is_stream else '否'}")
print("="*40)
# 6. 简单逻辑:判断是否超过上下文限制
CONTEXT_LIMIT = 8192 # 常量
if max_tokens > CONTEXT_LIMIT:
print(f"⚠️ 警告:设置的 max_tokens={max_tokens} 超过了模型上下文限制 {CONTEXT_LIMIT}。")
else:
print("✅ 参数合法,可以调用API。")
3.9 本章小结
|
概念 |
核心要点 |
AI 开发典型示例 |
|---|---|---|
|
变量 |
存储数据,可重新赋值 |
|
|
常量 |
全大写,约定不变 |
|
|
整型 int |
整数 |
参数量、token 计数 |
|
浮点型 float |
小数 |
温度、概率 |
|
布尔型 bool |
True/False |
是否流式、是否结束 |
|
字符串 str |
文本数据 |
提示词、回复内容 |
|
空值 None |
表示无 |
|
|
类型转换 |
|
从输入或配置中转换 |
|
用户输入 |
|
让用户自定义提问、参数 |
更多推荐




所有评论(0)