评论
暂时还没有评论。
理解 LLM(大语言模型)的工作原理,掌握与 LLM 交互的基本方式,完成第一个 Python LLM 调用程序。
预计时间:2 小时
LLM(Large Language Model)是基于 Transformer 架构的深度学习模型,通过海量文本训练获得语言理解和生成能力。
核心概念:
Token:文本的基本单位(英文约 1 token = 0.75 单词,中文约 1 token = 1.5 字)Context Window:模型单次能处理的 token 数量(如 Qwen3.5 支持 256K)Temperature:控制输出随机性(0=确定,1=创造性)System/User/Assistant:三种消息角色┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Client │ ───► │ LLM API │ ───► │ Response │
│ (你的代码) │ │ (模型服务) │ │ (生成文本) │
└─────────────┘ └──────────────┘ └─────────────┘
请求结构:
{
"model": "qwen3.5-plus",
"messages": [
{"role": "system", "content": "你是一个助手"},
{"role": "user", "content": "你好"}
],
"temperature": 0.7
}
| 方面 | Java | Python |
|---|---|---|
| HTTP 调用 | HttpClient/OkHttp | requests |
| JSON 处理 | Jackson/Gson | json |
| 异步 | CompletableFuture | asyncio |
| 生态 | 较少 LLM 库 | 丰富(LangChain、LlamaIndex 等) |
# 1. 创建项目目录
mkdir -p ~/ai-agent-learning/day1
cd ~/ai-agent-learning/day1
# 2. 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 3. 安装依赖
pip install requests python-dotenv
创建文件 chat_bot.py:
import os
import requests
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv("DASHSCOPE_API_KEY")
API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
def chat(message: str) -> str:
"""调用 LLM API 进行对话"""
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": "qwen-plus",
"messages": [
{"role": "system", "content": "你是一个友好的 AI 助手"},
{"role": "user", "content": message}
],
"temperature": 0.7
}
response = requests.post(API_URL, json=payload, headers=headers)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
if __name__ == "__main__":
# 测试对话
user_input = "请用一句话介绍你自己"
reply = chat(user_input)
print(f"用户:{user_input}")
print(f"AI: {reply}")
创建 .env 文件配置 API Key:
DASHSCOPE_API_KEY=你的 API_KEY
将上述代码重构为类结构,参考 Java 的 Service 模式:
class LLMService:
def __init__(self, api_key: str, model: str = "qwen-plus"):
self.api_key = api_key
self.model = model
self.api_url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
def chat(self, message: str, system_prompt: str = "你是一个助手") -> str:
# 实现聊天逻辑
pass
def chat_with_history(self, messages: list) -> str:
# 支持多轮对话
pass
chat_bot.py 能成功调用 API 并返回响应LLMService 类可通过单元测试requests 库和你熟悉的 Java HttpClient 有什么异同?哪种更简洁?LLMService 做成 Spring Boot 的 Service,你会如何设计接口和实现?在 ~/ai-agent-learning/day1/ 目录下创建 学习总结.md,结构如下:
# Day 1 学习总结
## 今日学习目标
(简述今天的学习目标)
## 学习内容总结
(用自己的话总结学到的知识点)
## 核心知识点
- Token 是什么
- Context Window 的含义
- LLM API 调用流程
- Python requests 基本用法
## 实践任务完成情况
- [ ] 环境准备
- [ ] chat_bot.py 编写
- [ ] LLMService 类封装
## 遇到的问题
(记录遇到的错误和卡点)
## 解决方案
(如何解决的)
## 今日收获
(最大的 3 个收获)
## 未理解的问题
(还有哪些困惑)
完成学习总结后,提交给我点评。
提交方式:将 学习总结.md 内容发送给我,我会:
暂时还没有评论。