Chapter 08
构建生成式 AI 驱动的聊天应用程序
构建生成式 AI 驱动的聊天应用程序
(点击上方图片观看本课视频)
既然我们已经了解了如何构建文本生成应用,我们现在来看看聊天应用。
聊天应用已经融入我们的日常生活,它们不仅仅是随意交谈的工具。它们是客户服务、技术支持甚至复杂咨询系统的重要组成部分。很可能你不久前就从某个聊天应用中获得过帮助。随着我们将生成式 AI 等更先进技术整合进这些平台,复杂性和挑战也随之增加。
我们需要解答的一些问题包括:
- 应用构建。我们如何高效构建并无缝集成这些 AI 驱动的应用以满足特定用例?
- 监控。部署后,我们如何监控并确保应用在功能和遵守负责任 AI 六大原则两方面都保持最高质量?
随着自动化和无缝人机交互时代的深入,理解生成式 AI 如何改变聊天应用的范围、深度和适应性变得尤为重要。本课将探讨支持这些复杂系统的架构方面,深入研究针对特定领域任务的微调方法,并评估确保负责任 AI 部署所需的指标和考量。
介绍
本课涵盖:
- 高效构建和集成聊天应用的技术。
- 如何对应用进行定制和微调。
- 有效监控聊天应用的策略和注意事项。
学习目标
完成本课后,你将能够:
- 描述构建和集成聊天应用到现有系统中的考量因素。
- 针对特定用例定制聊天应用。
- 识别关键指标和考量,有效监控并维护 AI 驱动聊天应用的质量。
- 确保聊天应用负责任地利用 AI 技术。
将生成式 AI 集成到聊天应用
通过生成式 AI 提升聊天应用不仅仅是让它们更智能;更是优化其架构、性能和用户界面,从而提供优质的用户体验。这涉及调查架构基础、API 集成和用户界面考虑因素。本节旨在为你提供一条全面的路线图,帮助你驾驭这些复杂领域,无论是将它们插入现有系统,还是构建独立平台。
本节结束时,你将具备高效构建和整合聊天应用的专业知识。
聊天机器人还是聊天应用?
在深入构建聊天应用之前,我们先比较“聊天机器人”和“AI 驱动的聊天应用”,它们的角色和功能不同。聊天机器人的主要目的是自动化特定对话任务,如回答常见问题或追踪包裹,通常由基于规则的逻辑或复杂的 AI 算法驱动。相比之下,AI 驱动的聊天应用是一个更广阔的环境,旨在促进各种数字交流形式,比如人类用户间的文本、语音和视频聊天。其核心特征是集成了生成式 AI 模型,能够模拟细致入微、类人对话,根据多种输入和上下文线索生成回复。生成式 AI 驱动的聊天应用能够进行开放域讨论,适应不断变化的对话环境,甚至产生创造性或复杂的对话。
下表概述了关键差异与相似点,帮助我们理解它们在数字交流中的独特角色。
| 聊天机器人 | 生成式 AI 驱动聊天应用 |
|---|---|
| 任务导向且基于规则 | 具备上下文感知 |
| 常集成于更大系统 | 可承载一个或多个聊天机器人 |
| 限于预设功能 | 集成生成式 AI 模型 |
| 专业且结构化的交互 | 能够进行开放域讨论 |
利用预构建功能的 SDK 和 API
构建聊天应用时,一个很好的第一步是评估已有的资源。利用 SDK 和 API 构建聊天应用是一种很有优势的策略,原因有多方面。通过集成文档完善的 SDK 和 API,你的应用在长期成功、可扩展性和维护方面都得到了战略保障。
- 加快开发进程并减少开销:依赖预构建功能,避免了自己昂贵的构建过程,使你可以专注于你认为更重要的应用其他部分,如业务逻辑。
- 更好性能:自己从零构建功能时,你会考虑“系统如何扩展?应用能否应对突增用户?”维护良好的 SDK 和 API 通常内置了针对这些问题的解决方案。
- 维护更便捷:大多数 API 和 SDK 只需在新版本发布时更新库,即可便于管理更新和改进。
- 访问前沿技术:利用经过精细调优且训练于大规模数据集的模型,赋予你的应用自然语言处理能力。
使用 SDK 或 API 功能通常涉及获得使用服务的权限,通常通过唯一密钥或认证令牌实现。我们将使用 OpenAI Python 库来演示此过程。你也可以在下面本课的OpenAI 笔记本或Azure OpenAI 服务笔记本中自行尝试。
import os
from openai import OpenAI
API_KEY = os.getenv("OPENAI_API_KEY","")
client = OpenAI(
api_key=API_KEY
)
response = client.responses.create(model="gpt-4o-mini", input="Suggest two titles for an instructional lesson on chat applications for generative AI.", store=False)
print(response.output_text)上例使用 GPT-4o mini 模型和 Responses API 来完成提示,但注意 API 密钥需先设置,否则会报错。
用户体验 (UX)
聊天应用适用一般 UX 原则,但以下是由于涉及机器学习组件而变得尤为重要的额外考虑。
- 模糊性处理机制:生成式 AI 模型偶尔会生成模糊答案,允许用户请求澄清的功能在遇到此类问题时非常有用。
- 上下文保持:先进的生成式 AI 可记忆对话上下文,这对用户体验很重要。赋予用户控制和管理上下文的能力有助于提升体验,但也带来保留敏感信息的风险。考虑如引入保留策略等方式平衡上下文需求与隐私。
- 个性化:AI 模型自主学习与适应能力,为用户提供个性化体验。通过用户档案等功能定制体验,不仅让用户感到被理解,也帮助他们更高效找到具体答案,提升互动满意度。
OpenAI ChatGPT 的“自定义指令”设置就是个性化的例子。它允许你提供关于自己的信息,为提示提供重要上下文。下面是自定义指令的示例。

这个“档案”促使 ChatGPT 制定一个关于链表的课程计划。请注意,ChatGPT 考虑到用户可能基于经验需要更深入的课程计划。

微软的大型语言模型系统消息框架
微软提供了编写有效系统消息的指导,用于生成 LLM 响应,分为四个方面:
- 定义模型的受众,以及其能力和限制。
- 定义模型的输出格式。
- 提供展示模型预期行为的具体示例。
- 提供额外的行为边界。
无障碍设计
无论用户有视觉、听觉、运动或认知障碍,设计良好的聊天应用都应对所有人可用。以下清单细分了针对不同用户障碍的无障碍功能。
- 视觉障碍功能:高对比度主题和可调整大小文本,屏幕阅读器兼容性。
- 听觉障碍功能:文本转语音和语音转文本功能,音频通知的视觉提示。
- 运动障碍功能:键盘导航支持,语音命令。
- 认知障碍功能:简化语言选项。
定制与微调领域特定语言模型
想象一个能理解你公司术语并预判用户常见查询的聊天应用。有几种值得提及的方法:
- 利用 DSL 模型。DSL 代表领域特定语言。你可以利用在特定领域训练的所谓 DSL 模型来理解相关概念和场景。
- 应用微调。微调是用特定数据对模型进行进一步训练的过程。
定制:使用 DSL
利用领域特定语言模型(DSL 模型)通过提供专业且语境相关的交互,可以增强用户参与度。该模型经过训练或微调,能理解并生成与特定领域、行业或主题相关的文本。使用 DSL 模型的方式多样,从从零训练,到通过 SDK 和 API 使用现有模型。另一种方式是微调,即拿现有预训练模型针对特定领域进行调整。
定制:应用微调
当预训练模型在专业领域或特定任务上表现不足时,常考虑微调。
例如,医学查询复杂且需大量上下文。医生诊断患者时会考虑生活习惯、既往病史,甚至最新医学期刊以验证诊断。在这样的复杂情境中,通用 AI 聊天应用难以成为可靠来源。
场景案例:医疗应用
设想一个聊天应用,旨在辅助医疗专家快速查询治疗指南、药物相互作用或最新研究成果。
通用模型或许足以回答基础医学问题或给出一般建议,但可能难以应对以下情况:
- 高度具体或复杂的病例。例如,神经科医生可能询问“当前治疗儿科药物难治癫痫的最佳实践是什么?”
- 缺乏最新进展。通用模型可能难以提供涵盖神经学和药理最新进展的权威答案。
在这种情况下,使用专业医疗数据集对模型进行微调,可以显著提升其对复杂医学问题的准确性和可靠性。这需要获得大量相关数据集,以代表领域特有的挑战和问题。
高质量 AI 驱动聊天体验的考量
本节概述“高质量”聊天应用的标准,包括捕获可操作指标和遵循负责任利用 AI 技术的框架。
关键指标
为维持应用高性能,关键指标和考量必须持续跟踪。这些指标不仅确保应用功能,还评估 AI 模型和用户体验质量。下面列表涵盖基础、AI 和用户体验指标。
| 指标 | 定义 | 聊天开发者的考量 |
|---|---|---|
| 正常运行时间 (Uptime) | 测量应用可用且用户可访问的时间。 | 如何最大限度减少停机时间? |
| 响应时间 (Response Time) | 应用回复用户查询所需时间。 | 如何优化查询处理以提升响应速度? |
| 准确率 (Precision) | 真阳性预测占所有正预测的比例。 | 如何验证你的模型准确率? |
| 召回率 (Recall/灵敏度) | 真阳性预测占实际正例的比例。 | 如何测量并提升召回率? |
| F1 分数 | 准确率和召回率的调和平均,平衡两者权衡。 | 你的目标 F1 分数是多少?如何平衡准确率和召回率? |
| 困惑度 (Perplexity) | 衡量模型预测的概率分布与数据实际分布的匹配程度。 | 如何降低困惑度? |
| 用户满意度指标 | 测量用户对应用的感知,通常通过调查获取。 | 多久收集一次用户反馈?如何根据反馈调整? |
| 错误率 (Error Rate) | 模型理解或输出错误的频率。 | 有哪些策略降低错误率? |
| 再训练周期 (Retraining Cycles) | 模型更新频率,以纳入新数据和洞见。 | 你多久再训练一次模型?什么情况下触发再训练? |
| 异常检测 | 用于识别不符合预期行为的异常模式的工具和技术。 | 你将如何应对异常? |
在聊天应用中实施负责任的 AI 实践
微软关于负责任 AI 的方法确定了六条应指导 AI 开发和使用的原则。以下是这些原则、它们的定义,以及聊天开发者应考虑的事项及其重要性。
| 原则 | 微软定义 | 聊天开发者的考虑事项 | 重要性说明 |
|---|---|---|---|
| 公平 | AI 系统应公平对待所有人。 | 确保聊天应用不会基于用户数据进行歧视。 | 建立用户信任和包容性;避免法律风险。 |
| 可靠性与安全 | AI 系统应可靠且安全地运行。 | 实施测试和故障安全机制以减少错误和风险。 | 确保用户满意度并防止潜在伤害。 |
| 隐私与安全 | AI 系统应安全且尊重隐私。 | 实施强加密和数据保护措施。 | 保护敏感用户数据,遵守隐私法律。 |
| 包容性 | AI 系统应赋能每个人并促进参与。 | 设计无障碍且易用的用户界面/用户体验,适应多样化用户群体。 | 确保更广泛的人群能够有效地使用该应用。 |
| 透明性 | AI 系统应可理解。 | 提供清晰的文档和 AI 响应的推理说明。 | 如果用户能理解决策过程,更可能信任系统。 |
| 问责制 | 人们应对 AI 系统负责。 | 建立明确的审计和改进 AI 决策的流程。 | 支持持续改进和在出错时采取纠正措施。 |
任务
参见任务。它将带你完成一系列练习,从运行你的第一个聊天提示,到文本分类和摘要等。注意,任务提供了多种编程语言版本!
干得好!继续前进
完成本课后,查看我们的生成式 AI 学习合集,继续提升你的生成式 AI 知识!
前往第 8 课,看看如何开始构建搜索应用!
免责声明: 本文件由 AI 翻译服务 Co-op Translator 翻译完成。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言版文件应视为权威来源。对于重要信息,建议使用专业人工翻译。我们对因使用本翻译而产生的任何误解或误释不承担责任。

