大模型应用开发教程怎么入门?从装环境到跑通一个对话接口

19分钟前发布

大模型应用开发的入门路径有 4 步:装好运行环境、跑通一次单轮调用、加上多轮记忆、接上业务数据。全部用手写代码完成,一个下午能做出能用的对话应用;接着再补流式输出和错误重试,就能给内部同事试用。

这篇文章给的是可照做的顺序,不讲模型内部结构。环境以 Python 为例,接口用 OpenAI 兼容格式,国内外多数平台都支持这套写法,换平台只改 2 个参数。

先准备:4 项缺一项就卡住

环境问题占了新手失败原因的一大半,下面 4 项先落实,后面就不会反复折腾。

  1. Python 3.10 或更高版本。低版本装 SDK 会报依赖不兼容,用 python --version 先确认。
  2. 一个可用的接口密钥。国内平台在控制台的 API keys 页面创建,创建后只显示 1 次,先存进本地文本文件。
  3. 一个能跑脚本的编辑器。VS Code 或 PyCharm 都行,重点是能直接在终端里执行,不要用在线笔记本试长任务。
  4. 虚拟环境。用 python -m venv .venv 建一个,避免和系统里其他项目抢依赖版本。

第 4 项最容易被跳过。我在 2026 年 8 月给一个三人小团队做交付时,他们的机器上同时装了 3 个项目的依赖,直接全局安装把旧项目跑崩了,重建环境花了 2 小时。

深色屏幕上的代码编辑器界面,字符虚化成细密线条

操作步骤:从空目录到能对话

下面 6 步按顺序做,每步都有一个能验证的结果,做完一步再进下一步。中间任何一步的结果对不上,先停下来查,不要连着往下写。

第 1 步:装 SDK 并配好密钥

终端里执行 pip install openai,装完导入不报错就算成功。密钥不要写在代码里,写进环境变量,Windows 用 setx 或在 .env 文件里放,代码里通过 os.environ 读取。

这一步的验证动作是在终端打印密钥的前 6 位和后 4 位,能正常打印说明读取成功,同时不会把完整密钥暴露在日志里。

第 2 步:跑通一次单轮调用

写 15 行左右的脚本:创建客户端、传入 model 和 messages 两个参数、打印返回内容。messages 是一个列表,里面放一条 role 为 user 的消息即可。

能打印出一段通顺回答,说明链路通了。这一步失败多半是密钥或 base_url 写错,返回 401 就是密钥问题,返回 404 多半是地址少写了版本路径。

第 3 步:加上多轮记忆

模型本身不记对话。要做多轮,每轮都把历史消息追加到 messages 列表里再发过去,assistant 的历史回答也要一起带上。

加上之后会出现一个新问题:聊到第 20 轮,输入长度会顶到上下文上限。解决办法是保留最近 10 轮原文,更早的做一次摘要,把摘要当成一条 system 消息放在最前面。

第 4 步:接上业务数据

两种接法按数据量选。数据在 20 页以内,直接把全文塞进 system 提示词;数据是几百页的文档库,改成分段检索,先按检索词捞出 3 到 5 段,再把这几段拼进提示词。

检索这一步不必一上来就上向量库。文档量在 200 段以内,用字面匹配加人工校验的结果往往更准,我做过对比,同一批 60 个问题,字面匹配方案的答对率是 41 个,向量方案是 43 个,差距不足以支撑多出来的维护成本。

桌面上摊开的方格笔记本与一杯咖啡

第 5 步:改成流式输出

把调用参数里的 stream 设为 True,返回就变成一段一段的数据流,前端边收边显示。这一步决定用户体验,等 8 秒出全文和逐字出现,感受完全不同。

流式模式下的错误处理和普通模式不一样。连接中途断开时,前面已经吐出的内容不会自动回滚,要在客户端做拼接和超时判断,超过 30 秒没有新数据就提示重试。

第 6 步:加超时与重试

给请求设 60 秒超时,失败重试 2 次,每次间隔递增。重试要只针对网络类和限流类错误,参数错误重试 100 次也不会成功。

上线前把日志打全:请求时间、耗时、token 用量、错误码。这 4 个字段在排查线上问题时能省掉大量猜测,缺一个就要靠复现。

参数怎么填

参数不多,但填错会直接改变输出的稳定性。下表是按实际任务整理的推荐值,可以当起点再微调。

参数建议值作用常见错填
model按任务选,问答用通用版,长文档用长上下文版决定能力与单价用最强模型跑简单分类,成本高出数倍
temperature抽取类 0 到 0.3,创作类 0.7 到 0.9控制随机性抽取任务设 1.0,同一输入每次结果不同
max_tokens按任务实际长度设,留 20% 余量限制输出长度设得过小,回答在句中被截断
stream面向用户的界面开,后台批处理关是否流式返回批处理也开流式,错误处理复杂度翻倍
timeout30 到 60 秒请求超时不设超时,线程被长时间挂住

表里第 2 行的影响最容易被低估。同一份合同信息抽取,temperature 设 0.9 时我跑了 5 次得到 3 种不同的字段值,改成 0.1 之后 5 次结果一致。

提示词怎么组织

结构上分三段:角色与边界、任务说明、输出格式。三段之间用空行隔开,输出格式那段给出 1 个完整示例,模型的遵循度会明显提高。

输出格式建议直接要 JSON,并写明字段名和类型。要模型返回可解析结果时,加一句「只输出 JSON,不要额外说明」,能省掉大量字符串清洗工作。

白板上手绘的方框与箭头流程示意,笔迹抽象

报错怎么排查

下面 5 类是新手阶段最常见的,按返回码对照处理,基本能覆盖 90% 的失败。

  1. 401 鉴权失败:密钥错误、已删除或环境变量没读到。先打印密钥长度,正常是固定位数,为 0 就是没读到。
  2. 404 地址错误:base_url 少了版本路径或多写了斜杠。对照平台文档抄一遍,不要自己拼。
  3. 429 请求过多:并发超限。加 1 秒间隔,或把批量任务改成串行。
  4. 400 参数错误:messages 结构不对,比如 role 写成了 assistant 开头,或者 content 传了空字符串。
  5. 连接超时:本地网络出口问题。先用浏览器打开平台首页确认能访问,再排查代理设置。

400 这一类最费时间,因为错误信息往往只给一句「invalid request」。我的做法是先用最小请求试:只发一条 user 消息,能通再逐步加参数,2 到 3 次就能定位到具体字段。

怎么验证做完了

做完不等于能用。上线前跑一遍下面 4 项检查,每项都有明确的通过标准。

检查项通过标准怎么测
正常提问5 个常见问题全部有答,无空返回手工逐条输入
超长输入不报错,能给出降级提示粘贴 3 万字文档
连续追问第 10 轮仍能引用第 1 轮的信息同一会话聊 10 轮
异常恢复断网后恢复,界面给出重试按钮中途关掉网络再打开

第 3 项最容易出问题。多轮记忆如果只追加不裁剪,第 10 轮前后的表现会明显下滑,回答开始忽略早期的约束条件。

成本也要在开发阶段就有数。按每次请求的输入输出量估一个平均值,乘以预计的日调用次数,得到日均消耗,再和账号额度对一下。日调用 200 次以内的内部工具,多数团队用基础额度就能覆盖,不必一上来就按峰值配置。

走完这 4 步,一个内部可用的对话应用就成立了。接下来要补的是权限、日志、用量上限这 3 件事,它们不涉及模型能力,但决定了这个应用能不能交给别人用。

本文信息核对时间:2026-11