Appearance
第一阶段:环境搭建与第一个 LLM 程序
第 1 步:安装基础工具
- Python 3.11(Windows 安装时务必勾选 Add to PATH)
- Git
- VS Code
第 2 步:克隆仓库并创建虚拟环境
bash
git clone https://github.com/<你的用户名>/agent-learning.git # 下载仓库到本地
cd agent-learning # 进入仓库目录
python -m venv .venv # 创建独立的虚拟环境,避免污染系统 Python
.venv\Scripts\activate # Windows 激活虚拟环境
# source .venv/bin/activate # Mac / Linux 用这一行激活
pip install openai python-dotenv # openai:调用接口的 SDK;python-dotenv:读取 .env第 3 步:配置 API Key(.env 与 .gitignore)
在仓库根目录新建 .env:
ini
# 平台给你的真实 Key,不要加引号,不要留中文或空格
LLM_API_KEY=sk-xxxxxxxx
# OpenAI 兼容的中转平台地址
LLM_BASE_URL=https://tokenrhythm.studio/v1
# 使用的模型名,以平台模型列表为准
LLM_MODEL=deepseek-flash再新建 .gitignore,防止 Key 和虚拟环境被传到 GitHub:
text
.env
.venv/注意
.env 里如果还留着“你的key”这类中文占位文字,会报 UnicodeEncodeError,详见 踩坑记录。
第 4 步:第一个程序 01_hello_llm.py
python
import os # 用来读取环境变量
from dotenv import load_dotenv # 把 .env 文件里的配置加载成环境变量
from openai import OpenAI # OpenAI 官方 SDK,兼容接口的平台都能用
load_dotenv() # 读取 .env 里的 LLM_API_KEY / LLM_BASE_URL / LLM_MODEL
# 创建客户端:api_key 用于鉴权,base_url 指向中转平台
client = OpenAI(api_key=os.getenv("LLM_API_KEY"),
base_url=os.getenv("LLM_BASE_URL"))
# 发起一次对话请求
resp = client.chat.completions.create(
model=os.getenv("LLM_MODEL"), # 模型名,例如 deepseek-flash
messages=[
{"role": "system", "content": "你是一位耐心的 AI 老师"}, # 系统提示:设定角色和规矩
{"role": "user", "content": "用三句话解释什么是 Token"}, # 用户的提问
],
temperature=0.7, # 采样温度:越高越有创意,越低越稳定
)
print(resp.choices[0].message.content) # 取出模型的回答文本
print("本次消耗 token:", resp.usage.total_tokens) # 输入 + 输出的 token 总数运行:python 01_hello_llm.py。跑通后提交代码:
bash
git add . # 把所有改动加入暂存区(.env 已被 .gitignore 排除)
git commit -m "01 hello llm" # 生成一次提交
git push # 推送到 GitHub核心概念
messages 的三种角色
- system:定规矩,比如人设、输出格式。
- user:用户的提问。
- assistant:模型之前的回答。
模型本身不记得之前聊过什么。要实现多轮对话,必须每次把完整聊天记录重新发给它——这就是“记忆”最原始的样子。
temperature
- 取 0 时回答最稳定,适合问答、信息提取。
- 接近 1 时更有创意。
- RAG 一般用 0~0.3。
token 与上下文窗口
- 输出的 token 数是输入 + 输出加起来的总数,计费和上下文长度都按 token 算。
- 上下文窗口是一次请求最多能装的 token 数。这也是 RAG 不把整个文档塞给模型、只检索相关片段的原因。
👉 下一节:多轮聊天