|
关于我们
新书资讯 新书推荐 |
Agentic AI智能体应用开发(第2版) 《AgenticAI智能体应用开发》(第2版)深入探讨了用于构建Agentic系统的各种设计模式,并结合复杂任务场景给出多智能体架构的实现方案;系统讲解了CoT、结构化生成、智能体交接等多种推理技术,并附有完整的异常处理示例。书中有关测试、评估与部署的扩展章节满足了现代LLM应用的需求,阐述了如何遵循负责任的开发原则,构建具备内置安全防护机制的高安全性且合规的AI系统。此外,本版在RAG技术方面也做了内容拓展,详解了混合检索、重排序、事实核查流程,助力提升模型输出的准确性。无论你是想要优化现有工作流,还是从零构建多智能体系统,本书都能为你提供兼具技术深度与实操性的指导,助你成功开发适用于实际生产的LLM应用。核心亮点?基于LangGraph设计并实现多智能体系统?实施测试策略,在部署前识别潜在问题?为生产环境部署可观测性与监控体系?构建具备重排序能力的AgenticRAG系统?利用LangGraph和MCP构建可扩展的生产级AI智能体?对接如GoogleGemini、Anthropic、Mistral、DeepSeek和OpenAI的o3-mini等主流大模型及相关服务商,适配最新LLM技术?设计安全、合规并符合现代伦理规范的AI系统 《AgenticAI智能体应用开发》(第2版)探讨了当今企业在AI领域面临的最大挑战:如何实现从原型开发到生产落地的跨越。本版基于LangChain生态系统的最新技术成果做了全面更新,深度解析了企业级环境下现代AI系统的开发、部署与规模化全流程,重点围绕多智能体架构、稳健的LangGraph工作流及高级RAG管道展开讲解。 译者序 本书第2版精彩绝伦,在当前专业领域内几乎无出其右。这是我看完本书电子版后的第一感受,也是发自内心的真实评价。主要理由如下所述。 一、技术前沿,覆盖面广 除了对传统的LLM、提示工程和LangChain等常见基础内容进行介绍,本版最大的特色是将“RAG系统”“Agentic RAG”“智能体”“多智能体”“Agentic AI”和“MCP”等前沿技术全部集成在一起,不过,本书并非纯粹讲解这些前沿技术的概念与理论等知识。2025年是AI智能体的元年,本书出版就是对这句话最好的印证。 二、以LangChain作为技术栈,理论与实践相结合 本书对LangChain(涉及LangGraph、LangSmith等)技术栈框架进行了详细介绍,并与FastAPI、Streamlit和Ray相结合,通过与实例结合,从LLM应用开发落地的角度将各方面的技术深度集成。 三、LLMops穿插整本书,是LLM最佳实践著作 本书重点介绍LLM前沿技术,结合Python语言,从LLM使用、应用开发、评估、测试、生产部署等全流程提供了最佳实践方案和经验。为LLM落地和使用提供了技术支撑。 在本书最后,也是最重要的一点,作者着眼于当前生成式AI的发展趋势,对未来30年的技术趋势进行了深入探讨和分析。总之,对于希望了解LLM前沿技术、LLM应用和落地等方面技术的科学家、工程师和高校学生,本书绝对是一本卓越的参考读物。 在此,要感谢吴禹林女士,她参与了整本书的翻译和审校工作,感谢她为本书所做的一切努力。还要感谢清华大学出版社的编辑,他们做了大量的编辑与校对工作,保证了本书的质量,使本书符合出版要求,在此深表谢意。 由于本书所涉内容的广度和深度较大,加上译者翻译水平有限,在翻译过程中难免有不足之处。若各位读者在阅读过程中发现问题,欢迎批评指正。 谨以此书献给在人生旅途中给予我指引的导师们,尤其是Tony Lindeberg,他的诚恳正直与坚韧不拔的精神始终激励着我。此外,我还要将本书献给我的儿子Nicholas与伴侣Diane。 ——Ben Auffarth 谨以此书献给我的妻子Ksenia,她始终如一的爱与乐观是我坚强的后盾;献给我的岳母Tatyana,即便在我最疯狂的尝试中也对我坚信不疑,给予我无穷的力量;也献给我的孩子Matvey和Milena,希望你们日后能读到这本书。 ——Leonid Kuligin 作者简介 Ben Auffarth博士是一位拥有超过15年AI实施工作经验的专家。作为Chelsea AI Ventures公司的创始人,他专注于帮助中小型企业部署企业级AI解决方案,以实现可观的投资回报率。他设计的系统成功避免了数百万美元的欺诈损失,并能在低于300毫秒的延迟内处理交易。Ben拥有深厚的计算神经科学背景,他将这一深厚功底融入AI的实际应用中——从超级计算大脑模型,到融合了高端技术与商业战略的生产级系统均有涉猎。 首先,尤其感谢合著者Leo,他是一位杰出的程序员。在本书的整个写作过程中始终保持耐心并在需要建议时随时给予支援。本书的完成也离不开Packt团队,尤其是编辑Tanya,她总能在关键时刻提供见解和鼓励。此外,审校者对本书也提供了很多建设性的意见,极大提升了本书质量。 Leonid Kuligin是一名来自谷歌云的AI工程师,致力于生成式AI和经典ML解决方案的研究,如需求预测和优化问题。Leonid是LangChain在谷歌云集成中的核心维护者之一,也是CDTM(慕尼黑工业大学与慕尼黑大学联合机构)的客座讲师。在加入谷歌之前,Leonid在德国、俄罗斯和美国的科技、金融与零售企业中积累了20余年的经验,专注于开发基于复杂ML和数据处理的B2C与B2B应用,如搜索、地图及投资管理系统。 衷心感谢谷歌的Max Tschochohei、Lucio Floretta与Thomas Cliett等同事,在本书创作及其他诸多项目中给予了我莫大的支持,他们给我带来了愉快的工作体验。另外,我也要对整个LangChain社区表示敬意,尤其是Harrison Chase对LangChain框架的持续开发极大地简化了工程实践。 审校者简介 Max Tschochohei就如何在谷歌云上实现AI与ML目标为企业客户提供咨询服务。作为谷歌云咨询部门的工程经理,他带领AI工程师团队执行关键客户项目,其工作涉及谷歌云全线AI产品与解决方案。Max尤其专注于智能体系统、机器学习运维(MLOps)以及AI在医疗领域的应用。在加入位于慕尼黑的谷歌之前,Max曾先后在KPMG会计师事务所和波士顿咨询公司担任顾问多年,并曾领导新加坡政府机构NTUC企业的数字化转型项目。Max拥有考文垂大学经济学博士学位。 Rany ElHousieny是一位AI解决方案架构师和AI工程经理,他在AI、NLP和ML领域的工作经验已超过20年。其职业生涯专注于AI模型的开发与部署,撰写了多篇关于AI系统架构与AI道德部署的文章。Rany曾在微软等企业领导多个开创性项目,推进了NLP及语言理解智能服务(LUIS)的发展。目前,Rany在Clearwater Analytics公司担任关键职位,推动生成式AI及AI驱动的金融与投资管理解决方案的创新。 Nicolas Bievre是Meta公司的ML工程师,在将AI、推荐系统、LLM及生成式AI应用于广告和医疗保健领域方面积累了丰富的经验。Nicolas曾在Meta和PayPal担任关键的AI领导职位,设计并实施了为数亿用户提供个性化内容的大规模推荐系统。他毕业于斯坦福大学,在校期间曾在顶级AI与生物信息学领域的权威期刊上发表过经同行评议的研究成果。Nicolas凭借卓越贡献,曾获得“核心广告增长隐私奖”(Core Ads Growth Privacy Award)与“海外杰出人才奖”(Outre-Mer Outstanding Talent Award)。此外,Nicolas还担任法国政府的AI顾问并在顶级AI机构担任审稿人。 译者简介 郭涛,主要从事计算数学、人工智能、现代软件工程和数智农业等前沿交叉研究。出版了40多部著(译)作,包括《大模型Agent应用开发》《Agentic RAG与智能体开发》和《大模型前沿与实践》。 前 言 如今,LLM已广泛应用于从客户服务聊天机器人到复杂代码生成系统的各类场景,生成式AI已从实验室中的研究热点迅速演化为生产级的核心工具。然而,实验原型与可生产部署的应用之间仍存在显著差距。行业研究表明,尽管人们对生成式AI热情高涨,但由于可靠性问题、评估复杂性及集成难度大,30%以上的项目止步于概念验证阶段。LangChain框架已成为跨越这一鸿沟的关键桥梁,为开发者提供了构建稳健、可扩展且实用的LLM应用所需的工具。 本书提供的实用指南旨在缩小这一差距,指导开发者在实际生产环境中部署LLM应用。本书重点聚焦于现实中常导致生成式AI项目失败的核心问题,如输出不一致、调试困难、工具集成混乱不堪以及扩展瓶颈。本书通过实际案例,并使用各种工具(LangChain、LangGraph以及生成式AI生态系统中不断涌现的其他工具)验证模式,指导开发者构建企业级可部署、可维护、可解决实际问题的系统。 本书读者对象 本书主要面向致力于使用LLM构建生产级应用且具备基础Python编程能力的软件开发者。本书并不要求读者具备深厚的ML经验,但对AI概念有所了解将有助于更快速地阅读本书内容。读完本书后,你将能够构建高级的LLM架构,而无须具备AI专业知识。 若你是正在向LLM应用开发转型的数据科学家,可以重点参考书中提供的实现模式,其有效弥合了实验结论与可部署系统之间的鸿沟。本书对RAG实现、评估框架与可观测性实践的讨论有助于解决原型扩展到可靠服务的常见技术难题。 对于在企业内评估LLM的技术决策者而言,本书提供了有关成功项目实施的战略见解。你将学会区分实验性系统与生产级系统的架构模式,识别高价值用例,并发现如何避免导致大多数项目失败的集成和扩展性问题。本书为评估实施方法提供了清晰的标准,助力决策落地。 本书主要内容 第1章介绍了现代LLM的发展现状,并将LangChain定位为构建生产级AI应用的框架。你将学习基础LLM在实际应用中存在的局限性,而类似LangChain的框架可以通过标准化来克服这些挑战。了解这些有助于你为具体用例选择智能体。 第2章正式引导你开启构建之旅。包括配置开发环境、理解LangChain核心组件(模型接口、提示、模板与LCEL语言)以及创建简单的链。本章将介绍如何运行云端模型和本地模型,助你根据项目需求在成本、隐私和性能之间灵活调整方案。此外,还将结合文本与图像理解,探索简单的多模态应用。这些知识为构建更复杂的AI应用奠定了基石。 第3章深入讲解如何利用LangChain与LangGraph创建复杂的工作流。你将学习构建基于节点和边的工作流,其中包括基于状态进行分支的条件判断边。本章内容还包括解析输出、错误处理、提示工程技术(零样本和动态少样本),以及使用Map-Reduce模式处理长上下文。你还将实现用于管理聊天历史的记忆管理机制。掌握这些技术,能够解决大多数LLM应用在实际生产中出现的故障,确保构建出稳健的系统。 第4章通过将LLM的输出结果锚定于可靠的外部知识源上,解决了“幻觉问题”。你将掌握向量存储、文档处理和检索策略,从而提升响应的准确性。本章的企业文档智能问答项目展示了如何实现确保一致性和合规性的企业级RAG管道[1 译者注:pipeline在软件工程和大模型场景下,可翻译成“管道”“流程”,本书中统一翻译成“管道”。]1,这一能力精准地解决了行业调研中经常提及的数据质量痛点。故障排除章节涵盖了七个常见的RAG失效场景,并为每个问题提供了切实可行的解决方案。 第5章围绕工具使用的脆弱性问题展开讨论,这是智能体自主性的核心瓶颈。你将实现ReACT模式以增强智能体的推理和决策能力,开发稳定的自定义工具并构建具备容错能力的工具调用流程。通过生成结构化输出和构建研究型智能体等实践示例,你将理解智能体的本质并使用LangGraph实现第一个规划-求解智能体,这为掌握更高级的智能体架构奠定了基础。 第6章探讨面向Agentic[ 译者注:Agentic有多种译法,如“代理型”和“智能体型”等,为了准确转达本意,本书中采用原英文。]?AI应用的架构模式。将探索多智能体架构及智能体之间实现通信的方式,最终实现能够反思并使用工具回答复杂问题的高级智能体。此外,本章还涵盖LangGraph流式处理、高级控制流、人机协同自适应系统以及思维树模式。你将理解LangChain与LangGraph中的记忆管理机制(包括缓存和存储),从而构建能够解决复杂问题的系统——这正是生产级系统区别于单智能体的关键功能。 第7章讲解自然语言如何成为编程和数据分析的强大接口。你将实现基于LLM的代码生成、利用RAG代码进行检索、文档搜索等解决方案。这些示例演示了如何将LLM智能体集成至现有的开发与数据流中,印证了其本质是对传统编程技能的补充,而非替代。 第8章介绍在部署生产级LLM应用之前对其进行评估的方法。你将了解到系统级评估、以评估为导向设计,以及离线和在线评估方法。本章提供了使用精确匹配和“LLM即评判者”方法实现正确性评估的实践示例,并利用LangSmith等工具实现全面的测试和监测。这些技术可直接提升系统的可靠性并有助于证明LLM应用的商业价值。 第9章指导如何将LLM应用部署到生产环境,重点关注系统设计、扩展策略、监控以及确保高可用性。本章涉及日志记录、API设计、成本优化以及针对LLM的冗余策略。此外,你将学习MCP,并掌握如何实施可观测性实践,以应对部署生成式AI系统所面临的独特挑战。本章中的实用部署模式有助于避免致使LLM项目无法达到生产级要求的常见陷阱。 第10章展望生成式AI领域的发展新趋势、架构演化及伦理考量。将探讨新兴技术、市场前景、潜在社会影响并提供负责任开发指南。将深入理解该领域未来的演化方向,锚定自身技术能力与应用架构以应对未来变革,最终达成从LLM基础理论认知到构建部署生产级、面向未来的AI系统的能力跃迁。 如何充分利用本书 在深入阅读本书之前需做好以下准备工作,以最大限度地提升学习效率。本书注重实操与实践,完备的开发环境、工具链及思维模式将助你顺畅跟进各章内容,充分掌握技术精髓。现推荐如下配置。 ?环境配置:在主流操作系统(Windows、macOS或Linux)上配置Python 3.10+开发环境。本书中的所有代码示例都具有跨平台兼容性并已充分测试。 ?API接入(可选但推荐):尽管本书采用的是可本地运行的开源模型,但接入OpenAI、Anthropic等商业提供商API将使你能调用更强大的模型。提供的很多示例同时支持本地运行和API调用方式,故建议读者根据自己的预算和性能需求灵活选择。 ?学习方式:推荐读者手动输入而非复制粘贴代码,这种动手实践的方式可以强化学习且有助于自主探索。各章节之间的内容循序渐进,建议读者按顺序阅读以奠定扎实的基础。 ?背景知识:本书会重点解释涉及的关键概念,建议读者具备一定的Python技能,但对ML或LLM方面的经验无要求。若读者已具备LLM基础,建议将重点放在实现模式和生产级系统方面,这也是本书的精华所在。 本书涉及的软件/硬件 Python 3.10+ LangChain 0.3.1+ LangGraph 0.2.10+ 各类LLM提供商(Anthropic、谷歌、OpenAI、本地模型等) 第2章将详细说明环境配置的流程,并提供清晰讲解与逐步操作说明以帮助读者顺利入门。考虑到LangChain、LangGraph与相关生态系统发展迅速,跳过此部分可能会导致后续产生不必要的问题,故强烈建议读者按照本书指导完成相关设置。 示例代码与彩色图片下载 本书所有代码均托管在GitHub上,下载网址为https://github.com/benman1/ generative_ai_with_langchain。建议你手动输入代码或随章节进度使用该仓库。若代码有更新,将会同步更新到本仓库。另外,本书中使用的全彩截图及图表均附在一个PDF文件中,下载网址为https://packt.link/ gbp/9781837022014。 这些配套资源读者也可通过扫描右侧的二维码或本书封底的二维码进行下载。 附赠手册说明 为助力读者快速上手OpenClaw实操,将理论知识与实践操作深度结合,本书特别附赠《OpenClaw安装、配置和实践手册(大众版)》。本手册专为大众读者量身定制,内容贴合实际使用需求,用通俗的语言、清晰的步骤,梳理了OpenClaw从安装部署、环境配置到实际操作的完整流程,大幅降低了上手难度。本手册作为本书的配套实操指引,能辅助读者高效完成相关实操练习,切实提升动手能力。 扫描右侧二维码,即可下载本手册。 BenAuffarth博士拥有15年以上AI落地实施经验,是ChelseaAIVentures公司的创始人,专注于帮助中小型企业部署企业级AI解决方案,助力实现高投资回报率。Ben兼具深厚的计算神经科学背景,能够将该领域的理论与AI实际应用深度融合;研发成果覆盖多个方向,包括超级计算大脑模型,以及融合了前沿技术与商业战略的生产级AI系统。LeonidKuligin?是谷歌云AI工程师,专注生成式AI与经典机器学习解决方案研发,深耕需求预测、优化问题等领域;Leonid是LangChain谷歌云集成的核心维护者,也是慕尼黑工业大学与慕尼黑大学联合机构CDTM的客座讲师。加入谷歌前,已在科技、金融、零售行业积累20余年从业经验,主攻基于复杂机器学习与数据处理的B2C、B2B应用开发。 目 录 第1章 生成式AI的崛起:从语言模型到智能体 1 1.1 现代LLM的发展现状 2 1.1.1 模型对比 3 1.1.2 LLM提供商生态 4 1.1.3 许可授权 5 1.2 从模型到Agentic应用 6 1.2.1 传统LLM的局限性 6 1.2.2 理解LLM应用 7 1.2.3 理解AI智能体 8 1.3 LangChain框架介绍 10 1.3.1 原始LLM所面临的挑战 11 1.3.2 LangChain如何支持智能体开发 12 1.3.3 探索LangChain架构 12 1.4 本章小结 17 1.5 思考题 17 第2章 LangChain的初步实践 19 2.1 设置依赖环境 19 2.2 探索LangChain构建块 24 2.2.1 模型接口 24 2.2.2 提示与模板 30 2.2.3 LCEL 31 2.3 运行本地模型 36 2.3.1 Ollama入门 37 2.3.2 在本地使用Hugging Face模型 37 2.3.3 本地模型使用提示 38 2.4 多模态AI应用 40 2.4.1 文本到图像 41 2.4.2 图像理解 43 2.5 本章小结 47 2.6 思考题 47 第3章 使用LangGraph构建工作流 49 3.1 LangGraph基础 49 3.1.1 状态管理 50 3.1.2 reducer 53 3.1.3 使图可配置 54 3.1.4 受控输出生成 55 3.2 提示工程 61 3.2.1 提示模板 62 3.2.2 零样本提示与少样本提示 63 3.2.3 CoT 65 3.2.4 自洽性 67 3.3 处理较短的上下文窗口 67 3.4 理解记忆机制 70 3.4.1 裁剪聊天历史 70 3.4.2 将历史记录保存至数据库 71 3.4.3 LangGraph检查点 73 3.5 本章小结 75 3.6 思考题 75 第4章 构建智能RAG系统 77 4.1 从索引到智能检索 77 4.2 RAG系统的组件 79 4.3 从嵌入到搜索 81 4.3.1 嵌入 82 4.3.2 向量存储 83 4.3.3 向量索引策略 87 4.4 分解RAG管道 92 4.4.1 文档处理 93 4.4.2 高级RAG技术 101 4.5 开发企业文档聊天机器人 116 4.5.1 文档加载 117 4.5.2 语言模型设置 119 4.5.3 文档检索 119 4.5.4 设计状态图 121 4.5.5 使用Streamlit集成构建用户界面 125 4.5.6 评估与性能考量 127 4.6 RAG系统故障排除 128 4.7 本章小结 129 4.8 思考题 129 第5章 构建智能智能体 131 5.1 什么是工具 132 5.1.1 LangChain中的工具 134 5.1.2 ReACT 136 5.2 定义工具 139 5.2.1 内置的LangChain工具 139 5.2.2 自定义工具 145 5.2.3 错误处理 150 5.3 高级工具调用功能 152 5.4 将工具整合到工作流中 153 5.4.1 受控生成 153 5.4.2 ToolNode 155 5.4.3 工具调用范式 156 5.5 什么是智能体 157 5.6 本章小结 161 5.7 思考题 162 第6章 高级应用与多智能体系统 163 6.1 Agentic架构 163 6.2 多智能体架构 166 6.2.1 智能体角色与专业化 166 6.2.2 共识机制 167 6.2.3 通信协议 169 6.2.4 LangGraph流式传输 176 6.2.5 交接 178 6.2.6 LangGraph平台 180 6.3 构建自适应系统 181 6.3.1 动态行为调整 181 6.3.2 人机回环 182 6.4 探索推理路径 183 6.4.1 思维树 183 6.4.2 利用MCTS裁剪ToT 190 6.5 智能体记忆 191 6.5.1 缓存机制 192 6.5.2 存储机制 193 6.6 本章小结 194 6.7 思考题 194 第7章 软件开发与数据分析智能体 195 7.1 LLM在软件开发中的应用 195 7.1.1 开发的未来 196 7.1.2 实现考量 197 7.1.3 代码LLM的演化 198 7.1.4 代码LLM的基准测试 199 7.1.5 基于LLM的软件工程方法 200 7.1.6 安全性与风险缓解 203 7.1.7 LLM生成代码的验证框架 204 7.1.8 LangChain集成 205 7.2 利用LLM编写代码 206 7.2.1 谷歌生成式AI 206 7.2.2 Hugging Face 207 7.2.3 Anthropic 210 7.2.4 Agentic方法 211 7.2.5 文档RAG 212 7.2.6 代码库RAG 214 7.3 将LLM智能体应用于数据科学 216 7.3.1 训练ML模型 217 7.3.2 分析数据集 220 7.4 本章小结 224 7.5 思考题 224 第8章 评估与测试 225 8.1 评估的重要性 225 8.1.1 安全性与对齐 226 8.1.2 性能与效率 227 8.1.3 用户与利益相关方的实际价值 228 8.1.4 为LLM评估建立共识 229 8.2 评估内容:智能体的核心能力 230 8.2.1 任务性能评估 230 8.2.2 工具使用评估 230 8.2.3 RAG评估 231 8.2.4 规划与推理评估 232 8.3 评估的方式:方法论与实现路径 233 8.3.1 自动化评估方法 233 8.3.2 人机回环评估 233 8.3.3 系统级评估 234 8.4 LLM智能体评估实践 235 8.4.1 评估结果的正确性 235 8.4.2 评估语气和简洁性 238 8.4.3 评估输出格式 240 8.4.4 评估智能体的轨迹 240 8.4.5 评估CoT推理 243 8.5 离线评估 244 8.5.1 评估RAG系统 245 8.5.2 在LangSmith中评估基准测试 246 8.5.3 使用HF数据集与Evaluate进行基准测试评估 249 8.5.4 评估电子邮件信息提取效果 250 8.6 本章小结 252 8.7 思考题 253 第9章 面向生产的LLM部署与可观测性 255 9.1 LLM的安全性考量 255 9.2 部署LLM应用 257 9.2.1 基于FastAPI的Web框架部署 259 9.2.2 使用Ray Serve实现可扩展部署 261 9.2.3 LangChain应用的部署注意事项 269 9.2.4 LangGraph平台 273 9.2.5 无服务器部署选项 276 9.2.6 用户界面框架 276 9.2.7 MCP 277 9.2.8 基础设施考量 278 9.3 如何构建可观测性LLM应用 282 9.3.1 LLM应用的运维指标 282 9.3.2 响应跟踪 283 9.3.3 幻觉检测 285 9.3.4 偏见检测与监控 286 9.3.5 可观测性策略 287 9.3.6 LLM应用的持续改进 288 9.4 LangChain应用的成本管理 288 9.4.1 LangChain中的模型选择策略 289 9.4.2 输出词元优化 291 9.4.3 其他策略 291 9.4.4 监控与成本分析 292 9.5 本章小结 292 9.6 思考题 293 第10章 生成式模型的未来:超越扩展 295 10.1 生成式AI的现状 295 10.2 扩展的局限性与新兴的替代方案 300 10.2.1 对扩展假设的挑战 300 10.2.2 科技巨头与小型企业 301 10.2.3 纯规模扩展的新型替代方案 302 10.2.4 训练数据质量的演化 304 10.2.5 技术进步推动普及化 305 10.2.6 后训练阶段的新缩放法则 306 10.3 经济与产业变革 306 10.3.1 行业转型与竞争态势 308 10.3.2 岗位演化与技能影响 308 10.3.3 经济分配与公平性问题 309 10.4 社会影响 310 10.4.1 虚假信息与网络安全 310 10.4.2 版权与署名问题 311 10.4.3 监管与落地挑战 312 10.5 本章小结 313 附录A 315
你还可能感兴趣
我要评论
|

新书资讯





