商品详情
书名:基于人工智能和数据科学的API实战
书号:978-7-5239-1153-2
定价:128元
作者:[美]瑞安·戴(Ryan Day) 著 余琦 杨垚 译
出版时间:2026-08-19
出版社:中国电力出版社
页码: 364 字数(千字):354
开本:特16开 版次:B1 印次:Y1
品牌介绍
中国电力出版社成立于 1951 年,作为中国成立最早的中央科技出版社之一,曾隶属于水利电力部、能源部、电力工业部、国家电力公司,现为国家电网公司所属的科技出版社,在电气技术专业出版领域享有极高的声誉。该社作为以图书出版为主体,音像、电子出版物、期刊、网络出版共同发展的大型出版企业,以强大的出版资源和高素质的专业队伍,致力于向读者提供包括电力工程、电气工程、建筑工程、电子技术、信息技术、外语、大中专教材、家教等学科门类齐全的权威出版物,也竭力为广大师生提供精品教材,是教育部和北京市教委规划教材的出版基地之一。
编辑推荐
专家推荐 “本书是对数据科学社区的卓越贡献。为你自己的职业发展做个贡献吧,将此书 收入你的数据科学图书馆,成为一名更优秀、更高效的数据科学家!” —— Alex Gutman,《Becoming a Data Head》作者 “随着API在数据科学和人工智能领域的重要性日益增长,本书是获取实践见解的重要资源。对于任何希望创建具有影响力的 API 的人来说,这都是一本极具价值的读物。” —— James Gough,摩根士丹利杰出工程师、《Mastering API Architecture》作者 “对于希望完善个人数据科学能力的人,或是希望更好服务客户的公司来说,这都是必读之作。” ——Eric Eager,卡罗莱纳黑豹队足球分析副总裁 编辑推荐 API 技能对于人工智能和数据科学的成功至关重要。通过本书,数据科学家和软件开发人员将获得使用 Python 语言以及FastAPI和Streamlit等流行框架开发和使用 API 的实战经验。
产品特色
随着API在数据科学和人工智能领域的重要性日益增长,本书是获取实践见解的重要资源。
作者介绍
Ryan Day是CSBS的资深数据科学家,也是FastAPI的开源开发者,在云计算和API开发方面拥有深厚背景。
内容介绍
全书分为三个部分,涵盖从零开始构建 API、将其集成到工作流中,以及利用ChatGPT和 LangChain等人工智能工具与大语言模型进行API交互。本书的主要内容有:学习为数据科学应用量身定制API设计。探索如何使用Python和FastAPI构建并部署API。了解如何将API集成到数据科学工作流中,以进行数据访问和可视化。训练机器学习模型并将其部署为API。使用生成式AI和大语言模型有效地与API交互。
本书适用于API开发人员和设计人员,数据科学家。
前言
前言
若想在人工智能领域取得成功,首先要精通API。得益于人工智能、机器学习和数据科学的蓬勃发展,精通API 比以往任何时候都更有价值。
然而,学习如此广泛的技能令人望而生畏,该如何着手呢?你可以放宽心,你不必掌握所有技能,当然更不必一蹴而就。通过实操练习,一次掌握一项技能即可。所学的每一项技能都会为下一项技能打下基础,如同搭建积木般层层递进,越学越轻松。
为何应该阅读本书
如果你正在阅读本书,说明你希望提升自身技能。我发现,提升技能的最佳方式是动手编程。如果能将代码发布到公共代码仓库,并通过博客分享自己的创作,不仅能传递知识、帮助他人,还能构建一份扎实的作品集,向雇主直观展示你的专业能力。
这本书适合谁
本书聚焦API、人工智能与数据科学的交叉领域,对以下几类读者均具有重要价值:
数据科学家
数据科学家日常频繁使用API,因此可能会觉得在API 使用方面已无新知识可学,调用API 不就是几行代码的事吗?诚然,调用一次REST API 确实简单,这也是API 如此普及的原因之一。但要以稳健、可靠且不给服务提供商带来麻烦的方式使用API,就需要更细致的考量和更专业的方法。
这本书将教你一些你可能尚未学到的技术,例如:
• 开发和部署API。
• 创建软件开发工具包(SDK)和API 客户端。
• 创建并将Python 包发布到PyPI。
• 将机器学习模型封装为API 发布。
• 创建Streamlit 数据应用。
• 创建Airflow 数据管道。
• 使用LangChain 和ChatGPT 开发生成式AI 应用。
API 开发人员和设计人员
API 开发人员与设计师能学到如何优化API,以满足新受众(尤其是数据科学家)的需求。你将了解数据科学家的工作内容、核心任务以及他们青睐的API 特性;还将探索生成式AI 应用的API 调用方式及所需的API 功能。
同时,书中的实操示例还将传授多种新技能:
• 使用FastAPI、SQLAlchemy 和Pydantic 创建Python API。
• 使用Docker 容器化API。
• 将API 部署到云主机。
• 创建Python SDK 并发布到PyPI。
• 使用LangChain 和ChatGPT 创建生成式AI 应用。
求职者和职业转型者
上述技能在就业市场中极具价值,掌握它们有助于你在数据科学或软件开发领域找到第一份工作,或实现职业转型。本书围绕作品集项目展开,为你设定明确的目标,让你的努力成果有迹可循。
创建作品集项目
在学习本书的过程中,你将完成三个作品集项目,可将其发布到GitHub 仓库中,展示自己的工作成果。表1 说明了每个项目的目的及作为开发基础的源代码仓库:
如何使用这本书
我不建议你从头到尾逐字阅读本书,而是推荐你挑选想要学习的技能,直接从对应章节开始动手实践。具体可按以下步骤快速上手:
1. 确定学习方向:是从创建API(第一部分)、数据科学与API 结合(第二部分),还是人工智能与API 结合(第三部分)开始。
2. 按照该部分引言章节的说明,克隆GitHub 仓库并启动Codespace。
3. 遵循相关章节的步骤,运行代码并实践。
如果我做得足够好,每一章都可以独立成篇。在你学会一项技能后,再挑选另一项技能重复上述过程即可。本书中的技能如同积木,每掌握一块,都能帮助你更深入地理解其他部分。将所有技能融会贯通后,你将对数据科学和人工智能领域的API 应用有全面且深刻的认识。
本书不涉及的内容
本书不向初学者教授Python 语法。如果你有Python 的基础知识,你将从编码示例中获得最大的收益。尽管你可能可以通过遵循每章中的步骤来运行代码,但我建议你从O’Reilly 出版的一本优秀的Python 入门书籍开始,例如Bill Lubanovic 所著的《Introducing Python, 3rd Edition》。
本书还假设你已掌握Linux 或UNIX 环境下命令行终端的基本使用方法。你无需成为Linux 管理员,但作为开发者,应熟悉在终端中运行命令(书中会详细说明所有步骤,但如果没有相关环境背景,遇到问题时可能会感到沮丧)。
书中介绍了多个实用的Python 框架,如FastAPI、Pydantic、Streamlit、Airflow和LangChain,但不涉及这些框架在生产环境中运行所需的详细主题,例如安全性、性能优化和基础设施配置。希望你能喜欢本书中的项目,并通过每章末尾提及的参考资料继续深入学习。
请注意,书中涉及的服务和工具更新迭代迅速,因此根据你阅读本书的时间不同,部分步骤和图示可能会略有差异。
为什么是梦幻橄榄球?
“如果要坐下来给人们痴迷细节的爱好排名,梦幻体育和软件开发无疑都名列前茅。当这两种爱好结合,可能性是无限的!”
— Joey Greco,Leeger 统计应用创始人
本书中的作品集项目围绕一个虚构的梦幻体育联盟托管网站SportsWorldCentral.com 展开。通过这些项目,你将先以面向数据用户的视角设计和构建API,然后切换角色,利用自己创建的API 开发数据科学和生成式AI 应用。
正如乔伊・格雷科所言,梦幻体育是该场景的绝佳选择(书中后续还会引用他的更多观点)。梦幻体育是数据科学家的天然“试验场”,而梦幻体育网站也广泛使用API。多年来,作为一名忠实(甚至可以说痴迷)的梦幻橄榄球经理,我在这两个领域投入了大量时间。梦幻橄榄球经理们也热衷于尝试网站提供的任何预测性或规范性分析功能(如果你对此有疑问,不妨观察一下:有经理为了将获胜概率从45% 提升到53%,会签下两名自由球员并调整三次首发阵容)。
梦幻体育提供了一个有趣的切入点,以便深入探索人工智能、数据科学与API之间的交叉领域。在你阅读本书并动手编程的过程中,我衷心希望你也能从中获得如同我撰写本书时那样的乐趣。
获取更多关于API、人工智能和数据科学相关的技巧
本书中的内容将为这些主题奠定非常坚实的基础,我希望它能激发你学习更多知识的兴趣。如需获取更多关于API、人工智能和数据科学的实用技巧,欢迎访问https://handsonapibook.com 订阅我的通讯。
排版约定
本书采用以下排版约定。
斜体(Italic)
表示新术语、URL、电子邮件地址、文件名和文件扩展名。
等宽字体(Constant width)
表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。
粗体等宽字体(Constant width bold)
表示应由用户原封不动输入的命令或其他文本。
斜体等宽字体(Constant width italic)
表示应该替换成用户提供值的文本,或者由上下文决定的值。
代码示例的使用
补充材料(包括代码示例、练习等)可在以下三个代码仓库中下载,每个部分对应一个代码仓库:
• 第一部分:。
• 第二部分:
。
• 第三部分:
。
如果你在技术方面遇到问题,或在使用代码示例时需要帮助,请发送电子邮件至support@oreilly.com 咨询。
本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序或文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可,销售或分发O’Reilly 图书的示例集则需要获得许可;引用本书中的示例代码回答问题无需获得许可,将书中大量的代码放到你的产品文档中则需要获得许可。
我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:“Hands-On APIs for AI and Data Science by Ryan Day (O’Reilly). Copyright 2025 Ryan Day, 978-1-098-16441-6”。
如果你认为自己对代码示例的使用超出了合理使用范围或上述许可范围,可随时通过permissions@oreilly.com 联系我们。
对本书中文版有任何建议可以发电子邮件到errata@oreilly.com.cn。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:
/。
联系我们
任何有关本书的意见或疑问,请按照以下地址联系出版社。
美国:
O’Reilly Media, Inc.
141 Stony Circle, Suite 195
Santa Rosa, CA 95401
中国:
北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了一个网页,其中列出了勘误表、示例和任何补充信息,可以通过https://oreil.ly/hands-on-api 访问此页面。
有关我们书籍和课程的新闻和信息,请访问https://oreilly.com。
我们的LinkedIn:
。
我们的YouTube:
。
致谢
我确信会遗漏一些人,但仍要衷心感谢过去一年中通过文章、通讯和演讲与我交流过本书内容的每一位朋友。你们的反馈让内容更加完善,你们的鼓励和关注是我坚持下去的动力。特别感谢堪萨斯城数据科学社区(Data Science KC)和华盛顿特区数据社区(Data Community DC)提供的所有反馈。
由衷感谢O’Reilly 团队在本书撰写过程中给予我的指导。感谢整个编辑团队,尤其要感谢策划编辑Michelle Smith 和开发编辑Corbin Collins,是你们相信这本书的价值,帮助我走到最后。感谢Chris Faucher、Aleeya Rahman 和Tove Innis 在创作过程中的专业支持。
我很荣幸能采访到本书中的各位专家,他们的许多真知灼见都收录在各章节中。感谢Joey Greco、Kyle Borgognoni、Zan Markhan、Alexandre Airvault、Francisco Goitia、Simon Yu、Robin Linacre、Bill Doerrfield、Samuel Colvin、Frank Kilcommins、Kade Halabuza 和Jim Higginbotham 分享你们在技术和数据领域的专业知识与热情。感谢Keith McCormick,是你让我看到了数据科学领域的机遇。
特别感谢我的技术评审员:Richard Bright、Richard Erickson、Jeff Fredrickson、Amelia Probst 和Megan Silvey。你们帮我避免了许多尴尬的错误,你们的专业知识让本书更加准确、更具价值。尤其感谢Richard Erickson,除了担任技术评审员外,还在书籍提案和出版过程中给予我指导。
感谢Kris Rowley、Ngoc Vu,以及州银行监管会议(CSBS)的所有同事,你们为我感到兴奋,并鼓励我撰写本书。
最重要的是,我感谢上帝赐予我的祝福和机会,首先要感谢我的父母,他们教会我清晰地思考。感谢我的妻子Allison,从头到尾始终给予我鼓励。感谢所有家人的爱与支持。Ethan、Myles、Sam、Cara、Gabby 和Gabe,我爱你们所有人。
目录
目录
前言 1
第一部分 为数据科学构建API
第1 章 构建数据科学家喜爱的API 11
11 数据科学家如何使用API 11
12 数据科学家使用哪些工具 12
13 为数据科学家设计API 13
14 介绍你的第一部分作品集项目 14
15 每个API 都有一个故事 15
151 遇见你的公司:SportsWorldCentral 15
152 SWC 需要一个API 17
16 选择首批API 产品 18
161 识别潜在用户 19
162 创建用户故事 20
17 其他资源21
18 总结 21
第2 章 选择你的API 架构 23
21 API 架构风格 23
211 表述性状态转移(REST) 24
212 图查询语言(GraphQL) 25
213 gRPC 25
214 你的选择:REST 26
22 技术架构27
23 本章使用的软件 29
231 Python 30
232 GitHub 30
24 开始使用你的GitHub Codespace 31
241 创建你的GitHub 账户 31
242 克隆第一部分的仓库31
243 启动你的GitHub Codespace 32
244 参观你的新Codespace 33
245 进行你的第一次提交34
25 其他资源37
26 总结 37
第3 章 创建你的数据库 39
31 API 的组成部分 39
32 本章使用的软件 40
321 SQLite 40
322 SQLAlchemy 41
323 pytest 41
33 创建你的SQLite 数据库 42
331 创建数据库表 42
332 理解表结构 45
333 加载数据 46
34 使用Python 访问数据 48
341 在环境中安装SQLAlchemy 48
342 创建用于数据库访问的Python 文件 49
343 创建数据库配置文件55
344 创建SQLAlchemy 辅助函数 57
345 在环境中安装pytest 61
346 测试你的SQLAlchemy 代码 62
35 其他资源65
36 总结 66
第4 章 开发FastAPI 代码 67
41 继续你的作品集项目 68
42 本章使用的软件 68
421 FastAPI69
422 HTTPX 69
423 Pydantic 70
424 Uvicorn70
43 复制第3 章的文件 71
44 在你的Codespace 中安装新库 71
45 为你的API 创建Python 文件 72
451 创建Pydantic 规范 72
452 创建你的FastAPI 控制器 77
46 测试你的API 85
47 启动你的API 89
48 其他资源91
49 总结 91
第5 章 编写API 文档 93
51 传递信任信号 93
52 打造卓越的API 文档 94
521 核心功能 94
522 额外功能 95
53 审查API 文档示例 96
531 Sleeper App 96
532 MyFantasyLeague 97
533 Yahoo! Fantasy Football 99
54 查看API 的内置文档 99
541 从第4 章复制文件 100
542 文档选项1:Swagger UI 101
543 文档选项2:Redoc 107
55 处理OpenAPI 规范(OAS)文件 108
56 继续你的作品集项目 111
561 向OAS info 对象添加详细信息 112
562 添加标签对路径进行分类 113
563 为单个端点添加更多详细信息 114
564 添加参数描述 115
565 在Swagger UI 中查看更改 116
566 对API 进行回归测试 116
57 更新你的READMEmd 118
58 其他资源120
59 总结 121
第6 章 将API 部署到云端 123
61 云部署的优势与责任 123
611 优势 124
612 责任 124
62 为你的项目选择云主机 125
63 设置项目目录 126
64 使用GitHub Codespaces 作为云主机 126
65 部署到Render 127
651 注册Render 128
652 创建新的Web 服务 128
653 自动部署API 的变更 131
66 使用Docker 容器交付应用131
661 验证Docker 安装 132
662 创建Dockerfile 133
663 创建dockerignore 文件 134
664 构建容器镜像 134
665 在本地运行容器镜像135
67 部署到AWS 136
671 创建Lightsail 容器服务 137
672 安装AWS CLI138
673 安装Amazon Lightsail 容器服务插件 138
674 配置登录凭据 138
675 将容器镜像推送到Lightsail 139
676 创建Lightsail 部署 140
68 更新API 文档 143
69 其他资源144
610 总结 144
第7 章 内置电池:创建Python SDK 147
71 SDK 弥合差距 148
72 为你的SDK 选择一种语言151
73 从最小可行SDK 开始 152
731 专家建议:让你的SDK 易于安装 152
732 专家建议:使SDK 保持一致且符合惯例(Idiomatic) 154
74 构建功能丰富的SDK 157
741 专家建议:使用合理的默认值 157
742 专家建议:提供丰富的功能 160
743 专家建议:执行日志记录 166
744 专家建议:隐藏API 的复杂细节 168
745 专家建议:支持批量下载 170
746 专家建议:记录你的SDK 173
747 测试你的SDK 176
748 专家建议:支持API 的每一项任务 181
75 完成你的第一部分作品集项目 182
76 其他资源184
77 总结 185
第二部分 在数据科学项目中使用API
第8 章 数据科学家应该了解的API 189
81 使用各种API 风格 189
82 HTTP 基础知识 192
83 如何负责任地使用API 193
84 关注点分离:使用SDK 或创建API 客户端 194
85 如何构建API 196
86 如何测试API 196
87 API 部署和容器化 198
88 使用版本控制 198
89 介绍你的第二部分作品集项目 198
810 开始使用你的GitHub Codespace 199
8101 克隆第二部分存储库 199
8102 启动你的GitHub Codespace 199
811 在本地运行SportsWorldCentral (SWC) API 200
812 其他资源 202
813 总结 203
第9 章 使用API 进行数据分析 205
91 体育分析的自定义指标 205
92 使用API 作为梦幻体育自定义指标的数据源 206
93 创建自定义指标:鲨鱼联赛得分 208
94 本章使用的软件 209
941 httpx 209
942 Jupyter Notebooks 209
943 pandas 210
95 在你的Codespace 中安装新库 210
96 在Codespaces 中启动你的API 211
97 创建API 客户端文件 211
98 创建你的Jupyter Notebook 213
99 向你的Notebook 添加通用配置 215
910 使用你的API 数据 216
911 计算联赛均衡得分 219
912 计算联赛果汁得分 221
913 创建鲨鱼联赛得分 223
914 其他资源 224
915 总结 225
第10 章 在数据管道中使用API 227
101 数据管道的数据源类型 228
102 规划数据管道 228
103 使用Apache Airflow 编排数据管道 229
104 在GitHub Codespaces 中安装Apache Airflow 230
105 创建本地分析数据库 234
106 在Codespaces 中启动API 235
107 配置Airflow 连接 235
108 创建你的第一个DAG 236
109 编码共享函数 240
1010 运行DAG 242
1011 总结 244
第11 章 在Streamlit 数据应用中使用API 245
111 通过交互式可视化吸引用户 245
112 本章使用的软件 246
1121 nfl_data_py 247
1122 Streamlit 247
113 安装Streamlit 和nfl_data_py 247
114 在Codespaces 中启动你的API 248
115 重用第9 章API 客户端文件 248
116 创建你的Streamlit 应用 249
117 更新入口文件 249
118 运行你的Streamlit 应用 250
119 创建球队名单页面 251
1110 创建球队统计页面 255
1111 部署你的Streamlit 应用259
1112 完成你的第二部分作品集项目 259
1113 其他资源 261
1114 总结 261
第三部分 将API 与人工智能结合使用
第12 章 将API 与人工智能结合使用 265
121 AI 与API 的重叠 265
122 设计适用于生成式AI 和LLM 的API 267
123 定义人工智能 269
124 生成式AI 和大型语言模型(LLM) 270
125 创建AI 代理应用程序 270
126 介绍你的第三部分作品集项目 272
127 开始使用你的GitHub Codespace 272
1271 克隆第三部分代码仓库 272
1272 启动你的GitHub Codespace 273
128 其他资源 274
129 总结 274
第13 章 部署机器学习API 275
131 训练机器学习模型 276
132 本章使用的新软件 278
1321 ONNX Runtime 278
1322 scikitlearn 278
1323 sklearnonnx 278
133 在你的Codespace 中安装新库 279
134 使用CRISPDM 流程 280
135 业务理解 280
136 数据理解 281
137 数据准备 283
138 建模 284
139 评估 287
1310 部署 287
1311 其他资源 296
1312 总结 297
第14 章 使用LangChain 进行API 调用 299
141 通过API 调用AI(基于LangChain) 300
142 创建LangGraph 代理 302
1421 注册Anthropic 303
1422 启动你的GitHub Codespace 304
143 在你的Codespace 中安装新库 304
144 创建Jupyter Notebook 305
145 与LangGraph 代理聊天 309
146 在本地运行SportsWorldCentral (SWC) API 310
147 安装swcpy 软件开发工具包(SDK) 311
148 创建LangChain 工具包 312
149 使用AI 调用API(基于LangGraph)316
1410 与你的代理聊天(带工具) 319
1411 其他资源 320
1412 总结 321
第15 章 使用ChatGPT 调用你的API 323
151 你的应用程序架构 323
152 开始使用ChatGPT 324
153 创建自定义GPT 324
154 启动你的GitHub Codespace 328
155 在GitHub Codespaces 中运行SportsWorldCentral (SWC) API 329
156 将服务器部分添加到你的OAS 文件 330
157 创建GPT 操作 332
158 在你的GPT 中测试API 334
159 与你的自定义GPT 聊天 335
1510 完成你的第三部分作品集项目 338
1511 总结 340
- 有电书房
- 扫描二维码,访问我们的微信店铺