大模型开发入门:用结构化摘要和只读工具完成第一个应用

从可检查的输出约定开始,逐步完成模型调用、字段校验和工具查询。把 Hugging Face 课程、Ollama 与 LangChain 放进同一个学习项目,留下能重复运行的结果。

本页目录

先看怎么选

已有基础编程能力时,先做一个“文本转任务清单”的小应用:定义字段与缺失值,保存模型原始输出,用程序校验,再接入一个只读查询工具。Hugging Face 用来补概念,Ollama 提供模型运行入口,LangChain 用来组织后续调用。

按需求选择工具,点击「查看介绍」了解推荐理由和使用限制。
你的需求推荐工具工具介绍
模型与数据基础
Hugging Face
查看介绍
模型交互
Ollama
查看介绍
模型与工具组合
LangChain
查看介绍

理解基础

Hugging Face

模型与数据基础

返回对比

Hugging Face LLM 课程覆盖模型、数据、分词及相关工具,适合建立可继续深入的学习框架。

适合谁用
希望系统理解模型和数据,而不只复制调用代码。
选择前要知道
官方要求较好的 Python 基础,建议具备入门深度学习知识;按项目问题选择章节。
查看建议交付物
  • 一份输入输出实验笔记

运行模型

Ollama

模型交互

返回对比

Ollama 官方快速入门提供模型运行和后续 API 接入路径。

适合谁用
先完成一次可重复的模型调用。
选择前要知道
本地运行需要匹配硬件;云端模式与本地模式的成本和数据流不同,学习记录里应写清。
查看建议交付物
  • 固定输入与原始输出

连接应用

LangChain

模型与工具组合

返回对比

LangChain 官方概览展示如何围绕模型和工具建立 Agent 应用。

适合谁用
已经会调用模型,准备加入业务工具与应用逻辑。
选择前要知道
应先理解普通函数调用,再使用框架封装;工具失败、参数错误和模型输出仍需自行验证。
查看建议交付物
  • 可运行的小项目和测试样例

背景与选择建议

第一个大模型应用可以小到只接收一段会议记录,返回负责人、任务和截止日期。难点并不在于让模型说出几行 JSON,而在于字段是否来自原文、缺失信息怎样表示,以及程序收到错误结果后还能不能继续工作。把这些问题解决,才有条件接入知识库、界面或更多工具。

这条学习路线适合已经能编写函数、读取文件和处理简单异常的人。若这些操作还不熟,先用普通 Python 程序完成“读取一段文本,输出一份固定字典”的练习,再接模型。框架会减少部分重复代码,也会引入新的调用层;基础越清楚,排错时越容易找到真正的问题。

先写输出约定,再打开模型

准备下面这段自拟材料:“林悦负责核对客户名单,陈安负责整理会议纪要。材料没有说明完成日期。”让应用返回一个 tasks 数组,每项包含 owner、task、due_date 三个字段;没有明确日期时,due_date 使用 null。

正确结果至少应有两项,负责人分别与自己的任务对应,两个日期均为空值。这里不要求任务描述逐字一致,但不能增加第三个人,不能把“未说明”变成今天,也不能把两项工作合成一项后丢掉负责人。先把这些条件写下来,后面才知道修改提示或更换模型到底改善了什么。

再准备几条边界材料:只有一项任务、完全没有任务、同一个人有两项任务、材料同时给出旧安排和后续修订。给每条材料单独写预期。初学阶段样例数量可以少,但应包含你希望应用能区分的情况,不要只重复同一种顺利输入。

用课程解释正在遇到的问题

Hugging Face 的 LLM 课程从 Transformers、模型与输入处理逐步延伸到数据集、分词和更深入的训练内容。官方要求较好的 Python 基础,并建议已有入门深度学习知识后学习;不必为了写一个应用,先完成所有高级章节。

当模型截掉后半段会议记录时,先理解分词、上下文容量与输入长度;当回答与任务无关时,检查传入了什么文本与指令;当输出忽长忽短时,分清模型生成和程序格式约定。把概念放回实际失败样例,会比只记住术语更容易看出它的用途。

也不要把所有错误都归为“幻觉”。读取文件用了错误编码、程序漏传了一段内容、后续字段映射写反,都可能表现为模型答错。保留调用前的实际输入,能够先排除这些普通程序问题。

跑通一次调用,并保留原始结果

可以按照 Ollama 官方快速入门安装并运行一个适合现有硬件的模型,再将同一段材料交给它。第一次先确认模型能正常回应,随后通过官方 API 入口接入自己的程序。记录完整模型名称、输入、调用配置和原始输出;若使用云端入口,也在项目说明中写明运行位置。

提示可以直接说明任务、字段和缺失值,例如“只提取材料明确给出的任务,不补充日期;没有任务返回空数组”。这是一份起始要求,不是准确性保证。即使模型支持结构化输出,仍要检查内容是否与原文对应。

第一次调用失败时,先按服务是否启动、模型是否可用、请求是否正确、响应是否完整的顺序查。把网络错误、解析错误和内容错误分开记录,避免把“没有收到完整响应”误当成“模型提取能力不好”。

用程序检查模型没有替你完成的部分

拿到输出后,先解析,再验证 tasks 是数组、每项字段类型正确、日期为空或符合你约定的格式。接着检查业务条件:负责人是否来自材料,任务是否缺漏,修订后的安排有没有覆盖旧安排。前一类适合程序稳定检查,后一类在早期可对照人工标注的样例验收。

不要在 JSON 解析失败后直接截取一段看起来像答案的字符串写入数据表。保留错误和原始结果,返回明确的失败状态。若设计一次重新生成,应限制次数,并使用同一份输入与约定;连续失败的样例留下来分析,而不是无限重试直到偶然成功。

回归记录可以很简单:每条样例列出是否能解析、字段是否合法、内容是否正确,以及失败原因。一个总通过率看不出漏人、乱填日期和请求失败之间的区别。调整提示后重新运行同一组样例,同时看是否修好旧问题又引入新问题。

最后加一个只读工具,观察完整的数据流

准备三条自拟员工记录,用普通函数按姓名查询部门。先直接测试存在、重名、查无结果三种输入,明确返回单条记录、候选列表还是空结果。工具应提供信息,不替模型隐瞒“查不到”。

当这个函数已经能独立运行,再按 LangChain 的官方概览接入模型与工具。让用户问“会议中负责纪要的人属于哪个部门”,观察模型先识别负责人、再传入查询参数、最后根据工具结果回答的过程。保存实际调用参数与返回内容,不能只根据最后一句回答认定工具执行成功。

如果姓名重名,应用应该要求补充信息或展示候选;如果工具暂时失败,应说明未能查询,而不是从语言模型记忆里猜部门。先把这条只读路径做清楚,才能判断未来是否需要更复杂的 Agent,或其实固定提取后查询已经足够。

项目完成时留下什么

保留运行说明、依赖与模型信息、示例输入、预期结果、实际输出和已知失败案例。新开一个终端按说明重新运行,确认不依赖你忘记记录的手动操作。普通代码部分可以写确定的测试;依赖模型的部分则保留回归样例和结果,不假定每次措辞完全相同。

接下来从失败原因选择学习方向:知识缺失可能需要检索,调用过程混乱需要整理状态与日志,字段总不稳定则继续研究结构化输出与验证。微调和多 Agent 都可以以后再学;先让这一个应用能够被解释、复跑和修改,后续学习才有明确的落点。

推荐依据

依据官方课程和上手文档安排学习顺序。项目目标与验收办法为编辑建议,不承诺固定天数学会,也不把完成教程等同于具备生产部署能力。

参考资料

功能、套餐与使用条件,以对应产品的最新资料为准。

内容更新于 2026-09-13