01 - 入门:基本 LLM 交互

难度:入门 时长:~10 分钟 关键概念:node-llama-cpp、模型加载、Token 生成

概述

本示例介绍了在本地机器上运行大语言模型(LLM,Large Language Model)的基本概念。它演示了最简单的交互方式:加载模型并向它提问。

什么是本地 LLM?

本地 LLM(Local LLM)是一种完全在你自己的计算机上运行的 AI 语言模型,无需互联网连接或外部 API 调用。主要优势:

  • 隐私:你的数据永远不会离开你的机器
  • 成本:无需按 token 支付 API 费用
  • 控制:完全控制模型选择和参数
  • 离线:无需互联网连接即可工作

核心组件

1. 模型文件(GGUF 格式)

  • GGUF:为 llama.cpp 优化的文件格式
  • 量化(Quantization):减小模型大小(例如,8 位代替 16 位)
  • 权衡:更小的体积和更快的速度 vs. 略微的质量损失

2. 推理管道

流程图:

3. 上下文窗口

上下文(Context)是模型的工作记忆:

  • 大小有限(例如 2048、4096 或 8192 个 token)
  • 当上下文已满时,必须移除旧消息
  • 所有先前的消息都会影响下一个响应

LLM 如何生成响应

逐 Token 生成

LLM 不会一次性生成整个句子。它们一次预测一个 token(词元)

可视化:

AI Agent 的关键概念

1. 无状态处理

  • 每个提示都是独立的,除非你主动维护上下文
  • 模型在不同脚本运行之间没有记忆
  • 要构建一个"Agent(智能体)",你需要:
    • 在提示之间保持上下文活跃
    • 维护对话历史
    • 添加工具/函数(在后续示例中介绍)

2. 提示工程基础

你提问的方式会影响响应:

❌ 不佳: "node-llama-cpp"
✅ 较好: "do you know node-llama-cpp"
✅ 最佳: "Explain what node-llama-cpp is and how it works"

3. 资源管理

LLM 会消耗大量资源:

为什么这对 Agent 很重要

这个基本示例为 AI Agent 奠定了基础:

  1. Agent 需要 LLM 来"思考":模型处理信息并生成响应
  2. Agent 需要上下文:在交互过程中维护状态
  3. Agent 需要结构:后续示例将添加工具、记忆和推理循环

完整架构图解

这种分层架构允许你在基本 LLM 交互之上构建复杂的 AI Agent。

下一步

理解基本提示之后,可以探索:

  • 系统提示(System Prompts):为模型赋予特定角色或行为
  • 函数调用(Function Calling):允许模型使用工具
  • 记忆(Memory):跨会话持久化信息
  • 推理模式(Reasoning Patterns):如 ReAct(推理 + 行动)