尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

AI应用开发(3)

AI应用开发(3)
📅 发布时间:2026/6/19 4:23:56

多轮对话与上下文管理

大模型的无状态特性

大模型具备无状态特性,即每次对话独立,不包含上下文信息。因此,我们需要自己把历史消息一条条拼接回去,每轮都手动维护上下文。

msg={'role':'user','content':userin}resp=api.chat(messages=[msg])userin=input("用户")#在终端输入我是小明,模型回复你好小明,再次调用后输入我叫什么,模型回复我不确定

将用户的每一轮对话都存入一个列表中,在每次的对话时将这个列表中的内容给大模型作为背景,大模型就可以拥有“记忆”了。但是随着对话数越来越长,背景信息的token就会达到最大限制,从而记不住更早的信息,常见的模型上下文窗口限制在4k token或8k token ,这是物理限制,与代码逻辑无关。因此我们需要对上下文进行管理。

上下文管理

截断

顾名思义,截断就是保留最近的几条消息,将更早的前面的对话忘掉。这种管理方式适合前后文联系不强的内容,比如简单问答,翻译等任务。

滑动窗口策略

这种方式既能控制长度,又能保留重要内容。
首先,这种方式可以将重要信息固定为锚点从而保留信息。除此之外,它还能进行动态调整,实时计算token,在token即将达到限制时进行截断,防止暴力截断丢失重要信息。

总结

由于大模型具备无状态特性,所以会忘记前面对话的内容,因此需要将每次对话的上下文信息作为背景与新对话的问题一起给大模型,这样大模型就有了记忆。然而随着对话数越来越多,上下文信息会超过最大token限制,这个时候就要进行上下文管理。上下文管理有两种方式:一是截断,只保留最近的N条对话内容,前面的对话内容则丢弃,然而这种方式会导致重要信息丢失,比如第一轮对话的角色信息等;二是滑动窗口策略,将重要信息固定为锚点,同时主动计算token,在快要达到限制前及时丢弃前面的信息,处理更加平滑。

Zero-shot/Few-shot/系统提示词

Zero-shot

无样本示例,直接向模型提问,简单快捷,但有时可能得不到精确的输出格式。

优点:操作简单,快速上手,零成本准备示例。当你需要快速验证一个想法,或者任务本身很简单时,Zero-shot 是最便捷的选择。

缺点:输出格式不稳定,比如有时会附带无关的解释,也可能完全偏离任务要求。而且性能严重依赖模型的通用能力,对于需要严格格式的任务,风险较高。

典型的应用场景:翻译、总结这类简单问题,写诗、故事等创意生成,以及通用知识检索。在这些场景下,Zero-shot 往往能直接给出令人满意的结果。

例子:直接要求模型提取 JSON 数据,它可能返回被 Markdown 代码块包裹的 JSON,而不是纯数据,这就给程序解析带来了麻烦。Zero-shot 虽然方便,但在格式控制上确实容易出问题。

Few-shot

我们提供少量示例来引导模型输出期望的样式,这大大提高了输出可控性。在提示中直接提供一组输入-输出对作为示范。比如,给出一个问题和你期望的答案格式,模型就会模仿这个样式来回答。而且例子不用多,一般 1 到 3 个就非常有效。

对比我们刚才讨论的 Zero-shot,Few-shot 在格式一致性和准确率上都有质的飞跃。但有一个非常重要的注意事项:你选的示例必须覆盖目标的边界情况,否则会引入偏差。比如做情感分类,如果只给正面的例子,模型就可能把所有输入都判成正面。所以用心选好案例,是 Few-shot 成功的关键。

System Prompt

通过设定角色和行为约束,它能让模型在整个对话中保持特定的身份和规则,非常适合复杂应用场景。
System Prompt 位于对话的最前端,它就像舞台导演,为模型预先定义好角色、专业领域、输出风格,甚至安全护栏。比如,你可以告诉模型:“你是一位严谨的法律顾问,回答必须引用法条。”这样,后续的所有对话都会在这个框架下运行。

而 User Prompt,也就是用户提示,是每一次对话中我们直接提出的具体任务或问题。如果把 System Prompt 比作搭建好的舞台和演员角色,那么 User Prompt 就是每一幕的台词和情节。一个负责顶层设计,一个负责具体执行,分工非常明确。理解了这种职责分离,我们就能更高效地驾驭大模型。

例子:设计一个 Python 专用助手。System Prompt 明确写道:“你是一名 Python 助手,仅回答与 Python 相关的问题,拒绝无关提问。”一旦设定,无论用户怎么追问,它都会坚守 Python 专家的身份,这种稳定性在专用服务中至关重要。为了提高 System Prompt 的遵循度,建议使用清晰的列表、加粗或“重要提示”之类的强调语法。比如用“你必须始终…”这样的强力措辞,能有效降低模型偏离轨道的概率。

总结

zero-shot是不给例子,直接让大模型生成,不过生成的内容可能会有问题;few-shot是给少量样本,让大模型根据样本和问题生成内容,例子需要覆盖边界情况,尽量包含所有可能的结果以及结果的答案;系统提示词则是对大模型下一个角色定义,将它的岗位职责规定清楚,用角色特点约束它的行为,赋予它能力。

相关新闻

  • 2026年比较好的全屋定制板材/环保板材/衣柜板公司选择指南 - 行业平台推荐
  • MPC857T MMU配置实战:从虚拟内存原理到嵌入式系统内存管理
  • uni-app 客户端照片水印:外勤打卡实战教程

最新新闻

  • 机器学习模型生产化落地:从Notebook到稳定服务的系统工程
  • 多模态大语言模型实现图像推理的工程实践
  • 国内合规AI绘图方案:角色一致性控制实战指南
  • 哑变量原理与m-1编码实战:机器学习分类特征处理核心指南
  • 零样本学习:让AI像人一样类比推理的技术解析
  • RL+KG+MCP:AI工程落地的三大支柱技术实践

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号