返回首页
随笔

Day 1 学习任务 - LLM 基础入门

发布于 2026-03-09

封面图

Day 1 学习任务 - LLM 基础入门

今日学习目标

理解 LLM(大语言模型)的工作原理,掌握与 LLM 交互的基本方式,完成第一个 Python LLM 调用程序。

预计时间:2 小时

理论知识

1. 什么是 LLM?

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:三种消息角色

2. LLM API 调用模式

┌─────────────┐      ┌──────────────┐      ┌─────────────┐
│   Client    │ ───► │  LLM API     │ ───► │   Response  │
│  (你的代码)  │      │  (模型服务)   │      │  (生成文本)  │
└─────────────┘      └──────────────┘      └─────────────┘

请求结构:

{
  "model": "qwen3.5-plus",
  "messages": [
    {"role": "system", "content": "你是一个助手"},
    {"role": "user", "content": "你好"}
  ],
  "temperature": 0.7
}

3. Java vs Python LLM 开发对比

方面JavaPython
HTTP 调用HttpClient/OkHttprequests
JSON 处理Jackson/Gsonjson
异步CompletableFutureasyncio
生态较少 LLM 库丰富(LangChain、LlamaIndex 等)

实践任务

任务 1:环境准备(30 分钟)

# 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

任务 2:编写第一个 LLM 调用程序(45 分钟)

创建文件 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

任务 3:封装为类(30 分钟)

将上述代码重构为类结构,参考 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 类可通过单元测试
  • 能在终端进行简单对话交互

❌ 未完成标志

  • API 调用失败未排查原因
  • 代码无法运行
  • 未理解 request/response 结构

思考问题

  • 对比思考:Python 的 requests 库和你熟悉的 Java HttpClient 有什么异同?哪种更简洁?
  • 架构思考:如果把 LLMService 做成 Spring Boot 的 Service,你会如何设计接口和实现?
  • 安全思考:API Key 直接写在代码里有什么问题?有哪些更好的管理方式?

输出文档要求

~/ai-agent-learning/day1/ 目录下创建 学习总结.md,结构如下:

# Day 1 学习总结

## 今日学习目标
(简述今天的学习目标)

## 学习内容总结
(用自己的话总结学到的知识点)

## 核心知识点
- Token 是什么
- Context Window 的含义
- LLM API 调用流程
- Python requests 基本用法

## 实践任务完成情况
- [ ] 环境准备
- [ ] chat_bot.py 编写
- [ ] LLMService 类封装

## 遇到的问题
(记录遇到的错误和卡点)

## 解决方案
(如何解决的)

## 今日收获
(最大的 3 个收获)

## 未理解的问题
(还有哪些困惑)

附加资源

  • 通义千问 API 文档:https://help.aliyun.com/zh/dashscope/
  • Python requests 教程:https://requests.readthedocs.io/
  • Transformer 架构可视化:https://jalammar.github.io/illustrated-transformer/

下一步

完成学习总结后,提交给我点评。

提交方式:将 学习总结.md 内容发送给我,我会:

  • 分析你的理解程度
  • 指出错误或偏差
  • 给出改进建议
  • 准备 Day 2 的学习内容

评论

暂时还没有评论。

写下你的想法