写给刚把 print('hello') 跑通的你
写在前面
这个系列是为一种很具体的人写的:你刚学完 Python 的基础语法,知道什么是变量、函数、列表、字典、if/else、for,能把一段 print('hello') 跑起来,但对什么是"AI 应用"、怎么调大模型、RAG 和 Agent 到底是啥,还完全摸不着头脑。
网上关于 AI 的教程有两种极端:一种是偏理论的,上来就是 Transformer、Attention、梯度下降,把人直接劝退;另一种是无脑调包的,十行代码跑个 demo 就结束,根本没讲底层发生了什么。这个系列走中间路线——每一个概念都落到你能在命令行里跑起来的代码,但每一段代码我都会告诉你它背后发生了什么、为什么这样写。
学完整个系列,你应该可以独立完成下面这些事:
- 准备一个干净的 Python 开发环境,不再被"环境坏了"反复劝退
- 用 Python 调通各家大模型的 API,理解
messages协议和流式输出 - 写出稳定可靠的 Prompt,让模型按你想要的格式输出
- 把一堆自己的文档做成"知识库",让 AI 基于你的数据回答问题(RAG)
- 让 AI 自己调用你写的函数去做事(Function Calling / Agent)
- 用 Streamlit 做一个自己的聊天页面,支持流式输出和多轮对话
前置要求只有一个:别怕报错。这个系列里你会看到非常多报错,每一个我都会解释原因和解法。报错不是失败,是你正在真正学东西的证据。
第一件事:把 Python 环境搞定
在学任何 AI 之前,我们先花十分钟把开发环境彻底搞干净。后面几乎所有奇怪的问题都来自环境,这一步花的时间最值得。
先检查 Python 版本。打开终端(macOS/Linux 是 Terminal,Windows 建议用 PowerShell 或 Windows Terminal),输入:
python3 --version
推荐版本是 Python 3.10 或更高(我自己用 3.11)。太老的版本(3.8 及以下)有些 AI 相关的库装不了,很痛苦。
如果版本过低或者根本没装,按你的系统来:
- macOS:装 Homebrew 之后
brew install [email protected],或者用pyenv管理多版本 - Windows:去 python.org 下载安装包,安装时一定要勾选 "Add Python to PATH",否则命令行找不到它
- Linux(Ubuntu/Debian):
sudo apt install python3.11 python3.11-venv
装好之后再 python3 --version 确认一下。
虚拟环境:Python 项目的"独立沙盒"
这个概念对新手最绕,但它是你以后少掉头发的关键。
问题是这样:假设你 A 项目需要某个库的 1.0 版本,B 项目需要同一个库的 2.0 版本,如果都装在系统 Python 里,两个项目必然打架。解决方案就是——每个项目用一个独立的虚拟环境,里面装的库只影响这个项目。
Python 自带一个叫 venv 的工具来做这件事。我们现在就建一个,后面整个系列都用它:
mkdir ai-hello
cd ai-hello
python3 -m venv .venv
这一步会在 ai-hello/ 下创建一个 .venv/ 文件夹,里面是一个完全独立的 Python 解释器。然后激活它:
# macOS / Linux
source .venv/bin/activate
# Windows PowerShell
.venv\Scripts\Activate.ps1
激活成功后你会看到命令行前面多了一个 (.venv) 的前缀,这就说明你现在用的是虚拟环境里的 Python,不是系统 Python。以后这个项目里所有的 pip install 都只影响这个虚拟环境。
不想用的时候 deactivate 退出即可。
补一条经验:.venv 文件夹通常很大(几十 MB 到几百 MB),不要提交到 Git。在项目根目录建一个 .gitignore,加一行 .venv/ 就好。
pip 和 requirements.txt
pip 是 Python 的包管理器,装第三方库用它。在激活的虚拟环境里试一下:
pip install requests
requests 是 Python 最常用的 HTTP 库,后面我们会大量用到。装完之后写个小脚本试试:
# test.py
import requests
resp = requests.get('https://httpbin.org/get')
print(resp.status_code)
print(resp.json())
跑 python test.py,能打印出 200 和一段 JSON,说明你的环境已经完全可用了。
项目变大之后,别人(或者未来的你)怎么知道装了哪些库?用 requirements.txt:
pip freeze > requirements.txt
这会把当前环境里所有库和版本写进文件。别人拿到你的项目之后只要:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
就能还原出一模一样的环境。这是 Python 项目的标配。
什么是 LLM
环境搞完了,回到正题。
LLM(Large Language Model,大语言模型)听起来很玄,但你可以用 Python 的视角把它想成一个超级简单的函数:
def llm(input_text: str) -> str:
# 它的内部是一个有几千亿参数的神经网络
# 但对你来说,它就干一件事:
# 给定一段文本,预测下一个最可能出现的"词"
return next_token
然后把这个函数的输出拼回到输入后面,再调一次,再拼,再调……循环下来,就得到了 ChatGPT 那种"一句一句蹦出来"的完整回答。
这里有个非常重要的理解:LLM 不是在"思考"。它做的事情本质上是——在海量互联网语料训练出的概率分布上,挑一个最可能接下来出现的词。它看起来"懂"你,是因为人类语言本身高度结构化,预测下一个词这件事做到极致,就长得像理解了。
这一点搞清楚,能帮你避免一堆后面会遇到的问题:幻觉(瞎编)、输出不稳定、对训练数据之外的事情一无所知,都是这个底层机制直接导致的。
Token:AI 世界的基本单位
LLM 不是按"字"处理文本的,而是按 Token。你可以粗略理解成"词的碎片":
- 英文:1 个 Token 大约是 0.75 个单词(像
understanding可能会被切成under+standing) - 中文:1 个 Token 大约是 1~2 个汉字
Python 里可以粗略估算:
chinese_text = "你好,我在学 AI 应用开发"
estimated_tokens = int(len(chinese_text) * 1.5)
print(estimated_tokens) # 大概 20
更精确的算法我们后面会用 tiktoken 库做,不过现在先知道它的存在。
为什么你要关心 Token?两个原因:
- 计费按 Token。比如 DeepSeek 输入每百万 Token 大概 1 块钱,GPT-4o 要 20 多块。差一个数量级。
- 上下文窗口按 Token。每个模型能"看到"的文本总长度是有限的,超过这个长度前面的就会被截断或忘掉。GPT-4o 是 128K Tokens,Claude 是 200K,开源的一些小模型可能只有 8K。
可以去 OpenAI Tokenizer 在线看一段文字会被切成什么样,非常直观。
主流模型速览(2026 年初)
| 厂商 | 代表模型 | 特点 |
|---|---|---|
| OpenAI | GPT-4o / GPT-4.1 | 综合能力强,生态最成熟,价格偏贵 |
| Anthropic | Claude Opus 4 / Sonnet 4 | 长文本、代码能力顶级,国内访问不便 |
| Gemini 2.0 Pro | 多模态、超长上下文(2M) | |
| DeepSeek | DeepSeek-V3 / R1 | 国产开源,性价比极高,首选练手 |
| 阿里 | Qwen 系列 | 中文最好,开源可本地部署 |
| 月之暗面 | Kimi | 长文本处理强,国内 API 方便 |
一个建议:先学用,不要先研究原理。你不需要懂内燃机也能开车,不需要懂 CPython 也能写 Python。后面等你写过几个真实应用,再回头看原理会豁然开朗。
本系列的代码会以 DeepSeek 为默认后端,因为它便宜、稳定、协议和 OpenAI 完全兼容,切换成其它家只需要改两行配置。
一个 AI 应用长什么样
所有你看到的产品型 AI 应用(ChatGPT 网页版、Cursor、Perplexity、豆包、各种企业知识库……)本质上都是这样分层的:
┌─────────────────────────────────────┐
│ UI 层(网页 / 桌面 / 移动端) │
├─────────────────────────────────────┤
│ 应用层(Prompt / Agent / RAG) │ ← 这个系列重点讲
├─────────────────────────────────────┤
│ 模型接入层(OpenAI SDK / 自部署) │ ← 这个系列也会讲
├─────────────────────────────────────┤
│ 模型层(LLM 本身) │
└─────────────────────────────────────┘
作为一个 Python 开发者,你主要的战场是中间两层。底层的 LLM 我们直接调大厂 API 就好(除非你想本地部署,后面有专门一篇);最上层的 UI 我们会用 Streamlit 简单搞一下,不用会前端。
这也回答了一个很多人的困惑:"要做 AI 应用是不是必须先去学机器学习?" 不需要。应用层和模型层是完全解耦的,就像写 Web 应用不需要你自己实现 HTTP 协议一样。
四个必须打破的错觉
这几条是我自己踩过坑之后总结的,越早破除越好。
"LLM 真的理解我"——并没有。它只是基于训练数据做概率预测。遇到训练里没见过的内容,它会一本正经地编造,这就是"幻觉"。所以永远不要把 LLM 当作事实来源,它说的一切都要你自己复核。
"同样的问题会得到同样的答案"——默认不会。LLM 输出有随机性,由一个叫 temperature 的参数控制。同一个问题问两次,回答大概率不同。这既是它的特点,也是它难以被当作传统"函数"使用的原因。
"越大的模型越好"——看场景。简单的分类、提取、改写任务,小模型又快又便宜(几毫秒、几厘钱)。只有复杂推理、多步规划才值得上旗舰模型。工程师的功夫很大一部分在"为任务选对模型"。
"AI 能自己联网、运行代码"——原生 LLM 只会生成文本,别的什么都不会。它之所以看起来能联网、查数据、跑 Python,是因为外面套了一层叫 Agent 的框架——给它一套工具,让它用文本"指挥"你的程序去调用这些工具。这部分我们在第 6、7 篇会彻底讲清楚。
你需要准备的
-Python 3.10+:上面已经搞定
-一个 API Key:强烈建议从 DeepSeek 开放平台 注册,新用户送几块钱额度,跑完整个系列几毛钱足够。想用 OpenAI 也可以,但要科学上网+国外信用卡
-一个趁手的编辑器:VS Code + Python 扩展(免费,推荐新手)/ PyCharm Community(老牌 IDE)/ Cursor(AI 友好的 VS Code 分支)
-Python 的基础语法:变量、函数、列表、字典、if/else、for、import、f-string,知道这些就够了。async/await 和装饰器我们用到的时候现讲
就这么多。看起来门槛比想象中低很多——这正是 2026 年做 AI 应用最好的时代:难的事情大厂替你做了,你只要学会怎么组合这些能力。
下一步
下一篇我们立刻开始动手:用不到 20 行 Python 调通第一个大模型 API,理解 messages 协议到底是什么,实现 ChatGPT 那种一个字一个字往外蹦的流式输出效果。把这些搞明白之后,后面所有的 AI 应用本质上都是在这个基础上做组合。
到时见。
参考资料
- What Is ChatGPT Doing ... and Why Does It Work? — Wolfram 的经典科普,长但值得
- Andrej Karpathy: Intro to LLMs — 前特斯拉 AI 总监一小时入门演讲
- 3Blue1Brown: 神经网络可视化系列 — 用动画讲 Transformer
- Python 官方教程(中文) — 如果你基础还不稳,这是最权威的补课材料
- Real Python — Python 实战教程集合,英文
- DeepSeek API 文档
- OpenAI API 文档
版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:AI 入门:Python 新手的第一课
本文链接:https://www.sshipanoo.com/blog/ai/ai-for-python/01-AI入门/
本文最后一次更新为 天前,文章中的某些内容可能已过时!