使用 FastAPI 构建生成式 AI 服务——简介

324 阅读28分钟

在本章中,你将学习以下内容:

  • 生成式人工智能(Generative AI,简称 GenAI)及其应用场景
  • 为什么生成式 AI 服务将成为未来应用的核心动力
  • 广泛采用 AI 服务所面临的障碍
  • 如何构建一个生成式 AI 服务
  • 为什么 FastAPI 是构建生成式 AI 服务的优选框架
  • 毕业项目概览

在本章结束时,你应该能够识别出生成式人工智能(GenAI)在你自身应用路线图中的角色,以及与之相关的挑战。

什么是生成式人工智能?

生成式人工智能是机器学习的一个子领域,专注于利用在数据集上训练得到的模型来生成新内容。这个训练好的模型是一个数学模型,它表示了训练数据中的模式和分布,可以生成与训练数据相似的新数据。

为了更好地说明这些概念,想象一下我们用包含蝴蝶图像的数据集来训练一个模型。该模型会学习蝴蝶图像中像素之间的复杂关系。训练完成后,我们可以从模型中采样,生成一些原始数据集中不存在的新蝴蝶图像。这些新图像会与原始蝴蝶图像具有相似之处,但又各自不同。

注意:
使用一个训练好的生成模型,根据其从训练数据中学到的模式来生成新内容,这一过程被称为“推理”(Inference)。

图 1-1 展示了整个流程。

image.png

由于我们不希望生成的输出与训练数据集完全相同,因此在采样过程中会加入一些随机噪声,以在输出中产生变化。这个影响生成样本的随机成分,使生成模型具有概率性特征。这也是生成模型区别于固定计算函数(例如通过对多张图像的像素取平均来生成新图像)的一点。

在开发生成式 AI(GenAI)解决方案时,你可能会接触到以下六类生成模型:

  • 变分自编码器(VAEs)
    VAE 学会将数据编码到一个低维的数学空间中(称为“潜在空间”,见图 1-2),然后在生成新数据时从该潜在空间解码回原始空间。
  • 生成对抗网络(GANs)
    GAN 是一对神经网络(一个判别器和一个生成器)之间的对抗博弈,它们在训练过程中通过相互竞争来学习数据的模式。训练完成后,可以使用生成器来创建新的数据。
  • 自回归模型(Autoregressive Models)
    这类模型通过学习序列中前面的值,来预测下一个值。
  • 正态流模型(Normalizing Flow Models)
    这些模型将简单的概率分布(数据中的模式)转换为更复杂的分布,用于生成新数据。
  • 能量基模型(EBMs, Energy-Based Models)
    基于统计力学,EBM 定义了一个能量函数,对观测数据赋予较低能量,对其他配置赋予较高能量,并通过训练学习区分这些配置。
  • 扩散模型(Diffusion Models)
    扩散模型通过向训练数据添加噪声来获得一个纯噪声分布,然后学习如何从该分布中逐步去除噪声,从而生成新的数据。
  • Transformer 模型
    Transformer 能够高效并行地建模大规模的序列数据,比如文本语料库。这些模型通过自注意力机制捕捉序列中元素之间的上下文关系与联系。面对新序列时,模型可以利用已学习的模式生成新的数据序列。Transformer 广泛应用于语言模型任务,尤其擅长处理文本中的长距离依赖关系。OpenAI 的 ChatGPT 就是一种被称为生成式预训练 Transformer(GPT)的语言模型。

潜在空间(Latent Space)

变分自编码器(VAE)可以将信息嵌入到潜在空间中,这是一种对输入数据进行压缩后的数学表达形式,保留了重构原始输入所需的最关键信息。模型的编码层会将高维数据压缩或编码到低维空间(即潜在空间)中,从而实现更高效的数据处理、分析与重建,如图 1-2 所示。

image.png

通过使用这个潜在空间,你可以在其中进行探索(借助某些输入数据,如文本或图像提示),从而生成模型训练数据中从未存在过的新内容。在底层机制中,采样过程会选择一个数据点进行重构,该数据点在潜在空间中对已学习概念进行插值组合。

有一点需要注意的是,这些生成模型通常只能处理特定类型的数据或模态,例如文本、图像、音频、视频、点云,甚至是 3D 网格等。有些模型甚至是多模态的,比如 OpenAI 的 GPT-4o,它可以原生处理文本、音频和图像等多种模态。

为了更清晰地解释这些生成式 AI(GenAI)概念,我将以图像生成这个用例作为示例。其他常见的用例还包括将语言模型用于聊天机器人或文档解析,将音频模型用于音乐生成或语音合成,以及使用视频生成模型创建 AI 虚拟人和深度伪造内容。你可能已经见过不少这类用法,未来还将出现数以百计的新用例。

有一点是确定无疑的:生成式 AI 服务将驱动未来的应用程序。接下来我们来看看为什么会这样。

为什么生成式 AI 服务将成为未来应用的动力

我们使用计算机来自动化日常问题的解决方案。

在过去,自动化一个流程通常需要手动编写业务规则,这在面对如垃圾邮件识别等复杂问题时既耗时又繁琐,特别是当这些规则需要手动维护时。而如今,你可以训练一个模型来理解业务流程中的细微差异。一旦训练完成,这个模型的表现通常优于那些用代码硬编码的规则,因此逐渐替代了这些传统的手工规则系统。

这种向基于模型的自动化的转变,催生了大量 AI 驱动的应用程序,用于解决各种问题,例如价格优化、商品推荐、天气预测等。作为这一浪潮的一部分,生成模型也应运而生。它们与传统 AI 最大的不同点在于:生成模型可以创作多媒体内容(文本、代码、图像、音频、视频等),而传统 AI 更侧重于预测和分类任务。

作为一名软件工程师,我相信这些模型具备一些关键能力,将影响未来应用的开发路径:

  • 推动创作过程的高效进行
  • 提供与上下文相关的智能建议
  • 个性化用户体验
  • 减少客户问题解决的响应延迟
  • 作为复杂系统的自然接口
  • 自动执行重复的管理性任务
  • 实现内容创作的规模化和平民化

下面我们将逐一详细介绍这些能力。

推动创意过程的进行

掌握技能和获取知识是一件认知负担很重的事。你可能需要花费大量时间学习和练习,才能形成属于自己的原创想法,去创作像一篇文章或一个设计这样的全新内容。

在创作过程中,你可能会遇到“创作瓶颈”,比如难以想象和具象化场景、理清思路、构建叙事、组织论点,或理解概念之间的关联。创作过程需要你深入理解创作背后的目的,并对灵感来源和你想要借鉴的思想具备清晰的认知。很多时候,当你坐在电脑前准备写一篇原创文章时,会发现从空白屏幕或纸张开始是极其困难的。你必须对某个主题做过大量调研,才能形成自己的观点和想要讲述的叙事逻辑。

这种创意过程不仅适用于写作,也同样适用于设计。比如在设计用户界面时,你可能需要花上几个小时浏览设计网站,从中获取关于色彩搭配、页面布局和构图的灵感,才能开始创作出一个新的设计作品。从一张空白画布开始做原创设计,有时就像是徒手攀岩——既艰难又缺乏抓手。你需要灵感,也需要遵循一定的创意流程。

创作原创内容需要创造力。因此,从零开始产生原创想法对人类而言是一种非凡的能力。实际上,许多新的想法和作品都是基于灵感的启发、观念的联结,以及对已有作品的改编。创造力是一种复杂的、非线性的思维能力,还涉及情商,这也使得它很难被规则或算法所复制或自动化。然而,如今借助生成式 AI,模仿创造力已经变得可能。

生成式 AI 工具可以帮助你简化这个过程,它们能从人类知识的庞大库中桥接各种观念与概念。借助这些工具,你有机会“撞见”一些只有理解大量关联知识、洞察多个概念之间互动的人才能想到的新点子。此外,这些工具还能协助你想象那些难以具象化的场景或概念。为说明这一点,我们来看例 1-1 所描述的场景。


例 1-1:一个人类难以具象化的场景描述

一片无边无际的生物机械森林,树木长着金属根须和会发光的霓虹叶子,每棵树干上都嵌有旋转的齿轮和显示外星字符的数字屏幕;地面由晶体状的土壤与跳动的有机脉络交织而成,而天空在数字故障矩阵与液态光组成的梦幻极光之间不断切换。


除非你平时经常进行类似的幻想,否则很难在脑中准确描绘出这个场景。但现在借助生成模型,任何人都可以把这样的复杂概念可视化,并与他人清晰地沟通表达。

将例 1-1 中的场景描述输入给如 OpenAI 的图像生成工具 DALL·E 3,就能得到如图 1-3 所示的可视化结果。

image.png

看到这些生成式 AI 工具能够帮助你具象化并表达复杂概念,真是一件令人着迷的事情。这些工具能够扩展你的想象力,激发你的创造力。当你感到卡壳,或者难以构思或表达新颖的想法时,可以求助于这些工具来打破瓶颈。

在未来,我相信许多应用程序都会加入类似的功能,来辅助用户的创作过程。如果你的应用能够给出一些初始建议,帮助用户基于此进行延展,那将大大提升用户上手的速度和创作的连贯性。

提供与上下文相关的智能建议

很多时候,你会面临一些非常细分的问题,这些问题并没有现成的解决方案。要解决这些问题,往往并不容易,可能需要大量的调研、不断试错、请教其他专家、反复查阅资料。开发者对此应该非常熟悉——在面对一些编程难题时,找到合适的解决方案往往不是一件简单的事。

原因在于:开发者必须在特定上下文中解决问题。一个问题若没有清晰描述其“环境”,就无法被准确定义;而所谓“情境”正是在上下文中生成的。

本质上,上下文决定了问题的边界,也就限制了可能的解决方案范围。换句话说,有效的建议必须考虑具体的背景和情境,才能真正解决问题。

上下文丰富提示在生成模型中的作用

当你只用几个关键词来提示一个生成模型时,最终的回复可能符合,也可能并不符合你的意图。为了说明为什么会这样,我们可以类比搜索引擎的工作原理。

Google 在打造搜索引擎方面投入了大量资金,其目标是根据你在搜索框中输入的少量关键词推测你的真实意图。然后,搜索结果会尽可能展示与你意图最匹配的网页内容。

关键词越少,搜索引擎就越难判断你到底想要什么,呈现的结果也就越不精准。例如,当你搜索 “ties”(领带或关系),搜索引擎必须做出一些假设,比如你是想购买领带(tie 作为服饰),还是在查找“关系”的相关知识。而如果你搜索的是 “trinity tie” 或 “types of tie”,这显然具有教育性的意图,Google 就能呈现出更准确的学习资料。

生成模型同样如此。如果你给模型的提示缺乏上下文,模型就需要自行推测你的意图,并尝试生成一个可能与你意图有关联的输出。这时,它通常会给出一个比较“中规中矩”的回答,以满足那种模糊泛泛的请求。这也就是为什么当你用几个简单的词提示模型时,通常会得到一个“很一般”的、缺乏深度的回答。

提示越详细、上下文越丰富,模型的响应就会越精准、越有价值。
这就是为什么在使用生成模型时,设计一个具有丰富上下文的提示非常关键——它能帮助你获得相关性高、内容具体、质量上乘的输出结果。

使用搜索引擎时,我们通常通过几个关键词来寻找信息来源,但这些信息未必包含真正相关的解决方案。开发者在搜索编程问题的解决方案时,常会将错误日志粘贴到 Google 中,搜索结果多指向像 Stack Overflow 这样的编程问答网站。然后,开发者只能寄希望于有人在相同上下文下遇到过同样的问题,并且已经有人提供了解决方案。这种寻找方法效率并不高,因为并不是每次都能找到适合自己场景的答案。

如今,开发者开始转向生成式 AI 来解决编程问题。通过提供一个包含问题上下文的提示语(prompt),AI 可以生成潜在的解决方案。更妙的是,现代代码编辑器中的 AI 插件可以将问题上下文完整传递给语言模型,而这是传统的 Google 或 Stack Overflow 无法做到的。借助从在线论坛和多个问答网站中学习到的知识,这些 AI 模型能够生成与上下文密切相关的解决方案。开发者则可以根据这些建议判断哪一个是最合适的。

因此,使用生成式 AI 编程工具往往比在网上搜索问题更高效。甚至连编程问答网站 Stack Overflow 都公开表示,自 GPT-4 发布以来,该网站的访问流量出现了超出平均水平的下降(约 14%)。而根据一些核心用户在博客下的留言,这一数字可能更高——他们普遍感受到站点的活跃度明显下降。截至撰写本文时,Stack Overflow 上的问题发布量和点赞行为与 2018 年相比已经下降了约 60%。

尽管如此,Stack Overflow 依然预计随着 GenAI 编程工具的普及,未来网站的访问量将继续波动。这些工具正在推动编程的民主化、拓展开发者社群并带来新的技术挑战。而 Q&A 网站的核心价值并不只是提供答案,还在于围绕答案的讨论过程,以及对信息来源的追溯与理解。因此,凭借其专家社区和人工筛选的优质内容,这类网站仍然是开发者极为宝贵的知识资源。

个性化用户体验

现代软件的用户和客户都期待更高程度的个性化和互动体验。

通过将语言模型等生成式模型集成到现有应用中,可以革新用户与系统的互动方式。传统的 UI 交互通常需要用户在多个页面中来回点击,而现在用户可以直接通过自然语言与聊天机器人对话,来获取所需信息或请求执行某项操作。

例如,在浏览一个旅游规划网站时,用户可以直接描述理想的假期行程,聊天机器人便能根据平台对航班、住宿和旅游套餐的数据库访问权限,自动为用户生成旅行计划。如果用户已经预订了行程,也可以根据账号中的行程信息向机器人询问景点推荐,机器人将返回结果并进一步征求用户反馈。

这些语言模型可以扮演个人助手的角色,主动提出相关问题,直到将用户的偏好和需求映射到产品目录中,并生成个性化推荐。如果用户不喜欢某个建议,还可以通过反馈来进一步调整推荐内容,使之更加贴合个人喜好。

在教育领域,生成式 AI 模型可以根据学生的学习偏好和能力,个性化地描述或可视化复杂概念。

在游戏和虚拟现实(VR)中,生成式 AI 也可以根据用户与应用的交互,动态构建环境和世界。例如在角色扮演类游戏(RPG)中,内嵌的大型语言模型可以根据用户的选择和对话内容实时生成剧情和角色背景,带来前所未有的独特游戏体验。

最小化客户问题的解决延迟

除了个性化的用户助手,企业还常常需要处理大量的客户服务问题。由于咨询量巨大,客户常常需要排长队等待,或者数个工作日之后才能收到回复。随着企业在运营复杂度和客户数量上的增长,及时解决客户问题的成本也在上升,并且需要更大规模的员工培训。

生成式人工智能(GenAI)可以帮助简化客户服务流程,造福客户和企业双方。如今,客户可以通过聊天或通话与语言模型互动,该模型能够访问数据库和相关资源,在几分钟内解决问题,而非数天。随着客户描述他们的问题,模型可以依据企业的政策进行答复,并在必要时引导客户前往相关资源。

与传统依赖手工编写规则和预设脚本的聊天机器人不同,基于GenAI的聊天机器人能够更好地:

  • 理解对话上下文
  • 考虑用户偏好
  • 生成动态且个性化的回复
  • 接受并调整用户反馈
  • 处理意外问题,尤其是涉及历史或复杂对话的场景

这些能力使得GenAI聊天机器人能够与客户进行更加自然、多样化的互动。这些机器人将成为客户的第一接触点,帮助快速解答问题,在需要时再转交人工客服。如果这意味着可以避免排长队、快速得到解决,许多客户也会更愿意先与GenAI机器人对话。

这些例子只是目前可以集成进现有应用的一小部分功能展示。生成式模型的灵活性和敏捷性,为未来创新型应用的出现打开了无限可能。


作为复杂系统的接口

如今,许多人在与复杂系统(如数据库或开发工具)互动时仍然面临困难。非开发人员可能需要获取信息或完成任务,却不具备在这些系统中操作指令的技能。大语言模型(LLMs)和生成式AI模型可以成为用户与这些系统之间的接口。

用户只需用自然语言进行提示,GenAI模型便可编写并执行查询指令。例如,一位投资经理可以让GenAI机器人从公司数据库中汇总投资组合的表现,而无需向专员提交报告请求。另一个例子是Photoshop的新功能“生成填充”,它可以基于图像内容自动生成图层并进行上下文编辑,即便用户并不熟悉Photoshop的复杂工具集。

如今,已有多家AI初创公司开发了GenAI应用,用户通过自然语言与语言模型交互来执行工具操作。这些模型正在取代复杂的工作流程,简化了多界面操作。

虽然GenAI模型可以作为数据库或API等复杂系统的接口,开发者仍需实施防护措施和安全机制。正如你将在第9章学习的AI安全内容那样,这些集成需要格外谨慎,以防止恶意查询和通过生成模型发起的攻击路径。


自动化繁琐的行政任务

在许多大型老牌企业中,常有一些团队承担着对外不可见的繁琐行政工作。

典型的行政任务包括处理版式复杂的文档,如发票、采购订单、汇款单等。这些任务过去主要依赖人工处理,因为每一类文档的布局和信息结构都各不相同,通常需要人工审核或确认。此外,即使开发了自动化软件,这些流程也容易在边缘情况出错,对准确性要求极高。

现在,语言模型和其他生成模型可以进一步自动化这些流程的一部分,并提升处理的准确率。当现有自动化流程在某些边缘情况下失效时,语言模型可以对输出进行校验、填补遗漏,或标记需要人工复核的项目。


内容生成的规模化与大众化

人们热爱新内容,总在寻找值得探索的新点子。如今,写作者可以借助GenAI工具在撰写博客时进行研究与构思。他们可以通过与模型对话来头脑风暴并生成大纲。

内容生成的效率大大提升。你无需再亲自进行诸如总结资料、改写句子等低层次的认知任务。高质量的博客内容生成周期从“天”缩短为“小时”。不再需要从零开始,你可以先规划内容结构和逻辑,再用GenAI填补细节。在你因措辞或逻辑卡顿时,GenAI工具可以派上用场。当然,一篇好文的吸引力往往不只在于内容本身,更在于语言风格与叙述节奏。

目前,许多企业已开始使用这些工具来探索创意、起草文档、撰写提案、社交媒体内容及博客文章。

如何构建一个生成式 AI 服务

为了提供更准确和相关的响应,生成式模型需要访问丰富的上下文信息。在某些场景中,模型还可能需要使用工具来代表用户执行操作——比如通过运行自定义函数来下订单。因此,你可能需要围绕生成模型构建 API(作为封装器),以实现与外部数据源(如数据库、API 等)的集成,并控制用户对模型的访问权限。

为了构建这些 API 封装器,你可以将生成模型部署在一个 HTTP Web 服务器之后,并按照图 1-4 所示,开发所需的集成逻辑、权限控制机制和路由管理模块。

image.png

Web 服务器负责控制对数据源和模型的访问。在其内部,服务器可以查询数据库和外部服务,以补充用户的提示信息,从而生成更相关的输出内容。一旦生成了输出,控制层可以对其进行合理性校验,而路由器则将最终响应返回给用户。

提示
你甚至可以更进一步,配置语言模型为其他系统构造指令,并将这些指令交由另一个组件执行,例如操作数据库或发起 API 请求。

总之,Web 服务器在整个流程中起着关键中介的作用——它管理数据访问、丰富用户提示内容,并在生成输出后进行质量控制,最后将结果传递给用户。在为用户提供生成式模型服务的同时,这种分层架构还能提升响应内容的相关性与可靠性。

为什么使用 FastAPI 构建生成式 AI 服务?

生成式 AI 服务通常需要高性能的 Web 框架作为后端引擎,以支持事件驱动的服务和应用程序。FastAPI 是 Python 中最受欢迎的 Web 框架之一,在性能方面可以媲美其他主流框架,如 Golang 的 gin 和 Node.js 的 express,同时还继承了 Python 深度学习生态系统的强大能力。而非 Python 的框架则缺乏在同一服务中直接集成生成式 AI 模型的能力。

在 Python 生态系统中,有几个主流的 Web 框架可用于构建 API 服务,最常见的包括:

  • Django
    一款功能齐全的全栈框架,自带“全套电池”。它是一个成熟的框架,拥有庞大的社区和良好的支持。
  • Flask
    一款轻量级、可扩展的微型 Web 框架。
  • FastAPI
    一款为速度与性能而生的现代 Web 框架,同样也是功能完整的全栈框架。

尽管 FastAPI 是较新的 Python Web 框架,但它迅速获得了关注和广泛采用。截至目前,FastAPI 是下载增长速度最快的 Python Web 框架,也是 GitHub 上第二受欢迎的 Web 框架。从 GitHub Star 数来看(写作时约为 8 万星),它有望超过 Django 成为更主流的选择。

在上述框架中,Flask 由于其良好的声誉、社区支持和可扩展性,在包下载量上仍处领先地位。但作为一个微框架,Flask 默认功能较少,比如缺乏内置的模式验证支持。

Django 也非常适合构建 API(通过 Django Rest Framework)和遵循 MVC 设计模式的单体应用。但它对异步 API 的支持相对较弱,可能存在性能瓶颈,并且在构建轻量 API 时增加了复杂度和系统负担。

相比之下,FastAPI 提供了多种开箱即用的功能,如数据验证、类型安全、自动文档生成和内置 Web 服务器。这些特性使得熟悉 Python 的开发者,越来越倾向于从传统框架(如 Django)迁移到 FastAPI。我推测,出色的开发体验、灵活性、高性能,以及对 AI 模型服务(如生命周期事件处理)的良好支持,是 FastAPI 快速走红的重要原因。

本书将详细介绍如何基于 FastAPI 构建生成式 AI 服务,这些服务可以自主执行任务并与外部系统集成。

为帮助你掌握相关概念,我将在书中引导你完成一个贯穿全书的实践项目。我们马上开始。

是什么阻碍了生成式 AI 服务的落地应用?

在采纳生成式 AI 服务的过程中,组织面临诸多挑战。其中包括生成式 AI 输出的准确性、相关性、质量与一致性问题。此外,企业还担心数据隐私、网络安全,以及模型在实际生产环境中被滥用或误用的风险。因此,目前多数公司尚不愿意将完全自主的权限交由这类模型,尤其不敢将其直接接入诸如内部数据库或支付系统等敏感系统。

将 AI 服务与现有系统集成(例如内部数据库、Web 界面、外部 API)也会带来不小的挑战。这种集成往往因兼容性问题、技术门槛高、可能中断现有业务流程,以及潜在的恶意攻击和数据安全隐患而变得复杂。

对于那些希望在面向客户的应用中使用生成式 AI 的公司来说,他们更关注模型输出的一致性和相关性,并且需要确保输出内容不冒犯用户或不当。

此外,生成式模型在生成原创、高质量内容方面也存在一定的局限。正如前文所述,这些 GenAI 工具擅长在特定领域内对已有的概念和信息进行组合与重构,但它们无法完全创作出从未存在的全新概念。它们更常见的行为是对现有信息进行重新组织与措辞,使其“看起来新颖”。与此同时,它们在生成内容时常常遵循通用模式,这会导致输出显得平庸、重复且缺乏启发性

更严重的是,模型有时会生成听起来合理但完全错误的内容,这些内容并不基于真实事实或数据。

注:
当生成式 AI 模型编造虚假事实或错误信息时,这种现象被称为“幻觉”(hallucination)。

由于幻觉问题,这些模型目前无法应用于对准确性要求极高的敏感场景,例如医疗诊断、法律咨询或自动化考试评分等。

部分挑战(如数据隐私和安全)可以通过软件工程的最佳实践加以解决,这些内容将在本书后续章节中详细展开。而其他挑战,则可能需要通过优化模型输入对模型进行微调(即在特定用例中通过新样本调整模型参数),以提升输出结果的相关性、质量、连贯性与一致性。

毕业项目概览

在本书中,我将带你构建一个基于 FastAPI 的生成式 AI 服务,FastAPI 将作为核心 Web 框架。

该服务将具备以下功能:

  • 集成多种模型,包括用于文本生成与聊天的语言模型、用于文本转语音的音频模型、用于图像生成的 Stable Diffusion 模型;
  • 实时响应用户查询,以文本、音频或图像形式输出;
  • 使用 RAG(检索增强生成)技术,通过向量数据库“对话”上传的文档;
  • 爬取网页内容、访问内部数据库、外部系统和 API,在生成回答时获取充足的信息;
  • 将对话记录保存至关系型数据库
  • 通过令牌认证和 GitHub 身份登录验证用户身份
  • 通过权限守卫机制限制响应内容的访问范围
  • 通过防护机制(guardrails)提供对滥用和误用的保护

由于本书聚焦于 API 服务的构建,你将学习如何使用 Python 的 Streamlit 包以及简单的 HTML 来开发用户界面。而在真实的生产环境中,你的生成式 AI 服务也可以通过如 ReactNext.js 等前端框架来构建自定义 UI,以实现更高的模块化、可扩展性与可维护性。


小结

在本章中,你了解了生成式 AI 的基本概念,以及它如何通过学习到的模式,在文本、音频、视频等多种模态下生成内容。你也看到了该技术的多个实际应用示例,并认识到未来大多数应用都将被生成式 AI 所驱动。

你还学习了生成式 AI 如何推动创作流程、消除中间环节、个性化用户体验,以及让更多人能够使用复杂系统和生成内容的能力。此外,你也了解到了一些限制 GenAI 广泛应用的挑战以及应对策略。

最后,我们介绍了你将在本书中基于 FastAPI 框架构建的生成式 AI API 服务的整体蓝图。

在下一章中,你将深入学习 FastAPI,从而具备实现你自己的 GenAI 服务的能力。