新書推薦:

《
精神分析:一项极具挑战性的职业
》
售價:HK$
74.8

《
虚拟货币及其犯罪治理实务
》
售價:HK$
63.8

《
辽史纪事本末(历代纪事本末 全2册)新版
》
售價:HK$
107.8

《
产业社群:超级群体引领新经济浪潮
》
售價:HK$
68.2

《
卢布:一部政治史 (1769—1924)(透过货币视角重新解读俄罗斯兴衰二百年!俄罗斯历史研究参考读物!)
》
售價:HK$
119.9

《
法国商业400年(展现法兰西商业四百年来的辉煌变迁,探究法国企业家“外圣内王”的精神内核)
》
售價:HK$
74.8

《
机器人之梦:智能机器时代的人类未来
》
售價:HK$
75.9

《
脑髓地狱(裸脊锁线版,全新译本)日本推理小说四大奇书之首
》
售價:HK$
61.6
|
編輯推薦: |
准备好探索AI技术的极限,并目睹自然语言处理如何与垂直应用融合吗?这本书将带你深入ChatGPT的奥妙世界,掌握其核心理论与应用实践!
从基础知识到高级技巧,逐步揭示ChatGPT的强大功能,深入探索支撑其运行的NLP技术。
通过真实案例的详细剖析,本书将指导你了解垂直应用的开发全流程,包括Web交互、编程辅助工具和AI客服等多个关键领域。
|
內容簡介: |
这是一本面向AI开发人员以及对生成式人工智能技术感兴趣的读者的专业图书。《生成式AI应用开发:基于OpenAI API实现》深入探讨生成式AI技术的原理与实现,以及如何利用OpenAI API进行高效开发。《生成式AI应用开发:基于OpenAI API实现》内容包括ChatGPT的原理解析、OpenAI API请求库的使用、飞书AI机器人的构建、AI编程辅助插件的开发、Hugging Face模型的私有化部署与微调,以及检索增强技术RAG和Prompt Engineering的优化策略。
书中不仅系统地梳理了生成式AI应用开发的关键知识点,还通过丰富的实际代码案例指导读者在不同垂直领域实现AI应用的开发。此外,《生成式AI应用开发:基于OpenAI API实现》还扩展介绍了AI应用的社区生态,帮助读者将理论知识应用到实践中,培养独立开发和优化生成式AI应用的能力。
《生成式AI应用开发:基于OpenAI API实现》适合希望深入了解并实践生成式AI技术的人员,无论是初学者还是有经验的开发者,都能从中获得宝贵的知识和启发。通过阅读《生成式AI应用开发:基于OpenAI API实现》,读者将能够掌握从理论到实践的全方位知识,为未来的AI应用开发打下坚实的基础。
|
關於作者: |
陈祯民
工程师,育前抖音内容安全、Tae Al成员,字节跳动青训营讲师,掘金签约作者,著有掘金小册《SSR 实战:官网开发指南》《前端自动化测试精讲》《Trae入门到实践:AI编码的妙笔生花》。
|
目錄:
|
第1章 绪论 1
1.1 AGI的新时代已经到来 1
1.2 ChatGPT全景介绍:历史、原理与API 2
1.2.1 GPT模型的基本概念和发展历程 2
1.2.2 GPT为什么能做到跨领域与人交互 3
1.2.3 OpenAI API简介 7
1.3 生成式AI应用的市场前景 10
1.4 本书的内容安排 11
第2章 OpenAI API请求库 14
2.1 OpenAI API 14
2.1.1 OpenAI API提供的模型类别 14
2.1.2 在浏览器端实现文本转音频 16
2.1.3 在Node.js运行时实现文本转音频 18
2.1.4 音频转文本的实现 21
2.2 Chat系列OpenAI API端点 23
2.2.1 Chat系列API端点参数及使用 23
2.2.2 Chat API的流响应 26
2.3 API请求库 31
2.3.1 使用OpenAI请求库 31
2.3.2 实战:封装并发布一个大语言模型API的请求库 33
2.3.3 ChatGPT国内可用免费API转发开源仓库:GPT-API-free 71
2.4 本章小结 72
第3章 基础应用:ChatGPT的实现 74
3.1 项目初始化和产品功能拆解 74
3.1.1 项目初始化 74
3.1.2 产品功能拆解 77
3.2 ChatGPT静态交互的实现 78
3.2.1 右侧ChatGPT对话区域 78
3.2.2 左侧边栏区域(Chat信息和API_KEY填写) 81
3.3 ChatGPT可交互功能的补充 90
3.3.1 使用llm-request接入OpenAI API 91
3.3.2 New Chat事件的绑定 96
3.3.3 聊天记录的缓存 97
3.3.4 响应内容的富文本处理(换行、代码高亮、代码复制) 101
3.3.5 思考题:如何避免在请求中暴露API_KEY 112
3.4 创建不同角色类别的聊天 114
3.4.1 什么是System Prompt 114
3.4.2 为ChatGPT项目放开System Prompt的填写 115
3.4.3 示例:创建布布熊的虚拟女友一二熊 118
3.5 社区功能:跨平台ChatGPT应用—ChatGPT Next Web 119
3.5.1 初识ChatGPT Next Web 119
3.5.2 使用Vercel把ChatGPT Next Web部署到公网 121
3.6 本章小结 121
第4章 交互应用:集成AI模型功能到飞书机器人 123
4.1 创建飞书机器人 123
4.1.1 飞书开放平台 123
4.1.2 创建一个飞书机器人一二熊 124
4.2 飞书机器人的API服务 125
4.2.1 飞书机器人API服务的事件订阅 125
4.2.2 开发阶段:使用反向代理工具Ngrok对本地服务进行内网穿透 127
4.2.3 订阅message接收事件并响应 130
4.2.4 部署上线:使用Vercel Serverless Functions轻服务部署 132
4.3 支持一二熊的消息回复 137
4.3.1 支持一二熊的单聊回复消息 137
4.3.2 支持一二熊在群聊中回复消息 144
4.3.3 使用自定义消息卡片配置帮助文档 148
4.4 结合AI实现一二熊的办公辅助功能 150
4.4.1 支持对飞书文档内容进行总结 151
4.4.2 支持向指定人员发送消息通知 156
4.4.3 支持向指定群发送消息通知 159
4.4.4 支持自动拉群并说明拉群用意 169
4.4.5 支持创建任务并自动生成任务摘要 174
4.5 本章小结 180
第5章 VSCode自定义插件 181
5.1 AI在代码辅助领域的实施 181
5.1.1 ChatGPT出色的代码辅助功能 181
5.1.2 OpenAI API与IDE插件的结合 183
5.2 初识VSCode插件开发 185
5.2.1 VSCode插件初始化 185
5.2.2 VSCode插件的目录结构及文件剖析 186
5.2.3 VSCode插件的启动与本地调试 188
5.2.4 VSCode插件中单元测试的环境API mock 190
5.3 VSCode插件开发常用扩展功能 191
5.3.1 插件命令 191
5.3.2 菜单项 196
5.3.3 插件配置项 198
5.3.4 按键绑定 203
5.3.5 消息通知 203
5.3.6 收集用户输入 203
5.3.7 文件选择器 205
5.3.8 创建进度条 208
5.3.9 诊断和快速修复 210
5.4 特殊判断值when子句 213
5.4.1 when子句运算符 214
5.4.2 when子句内置环境变量 214
5.4.3 自定义when子句环境变量 215
5.5 VSCode插件支持的工作台空间 216
5.5.1 活动栏区域:视图容器 217
5.5.2 侧边栏区域:树视图 219
5.5.3 状态栏区域:状态栏项目 221
5.5.4 编辑器组区域:网页视图 224
5.6 使用React开发Webview 226
5.6.1 Webview的React开发配置 226
5.6.2 Webview和Extension的相互通信 231
5.6.3 Webview的开发者调试 236
5.7 VSCode插件的联动与发布 236
5.7.1 扩展依赖插件 237
5.7.2 VSCode插件的发布 237
5.8 本章小结 238
第6章 编程应用:AI编码辅助插件 239
6.1 在VSCode插件中实现ChatGPT 239
6.1.1 项目初始化 239
6.1.2 插件功能剖析 240
6.1.3 插件功能配置项注册 240
6.1.4 任务栏注册 241
6.1.5 缓存首页的实现 246
6.1.6 聊天页面的实现 253
6.2 代码语言转换工具 263
6.2.1 插件功能剖析 263
6.2.2 插件功能配置项注册 263
6.2.3 支持全文件语言转换 264
6.2.4 支持对全文件语言转换结果的追问 268
6.2.5 支持局部代码语言转换 277
6.3 代码审查工具 280
6.3.1 插件功能剖析 280
6.3.2 插件功能的配置项注册 281
6.3.3 支持单文件粒度代码AI诊断 282
6.3.4 人工的诊断行列匹配 287
6.3.5 支持对问题代码的AI快速修复 292
6.3.6 支持状态栏状态显示 298
6.4 本章小结 300
第7章 Hugging Face开源模型的私有化部署和微调 301
7.1 模型私有化部署 301
7.1.1 什么是模型私有化部署 301
7.1.2 使用Anaconda管理Python环境 302
7.1.3 私有化部署ChatGLM3-6B模型 304
7.1.4 ChatGLM3-6B模型的低成本部署 308
7.2 模型微调 309
7.2.1 什么是模型微调 309
7.2.2 对ChatGLM3-6B模型进行单机单卡P-Tuning 310
7.3 开源AI社区Hugging Face 317
7.3.1 什么是Hugging Face 317
7.3.2 机器学习库Transformers 317
7.4 本章小结 328
第8章 检索增强生成技术:向量化与大模型的结合 329
8.1 检索增强生成技术介绍 329
8.1.1 训练模型是一个高成本的过程 329
8.1.2 检索增强生成技术:低成本信息穿透的实现 330
8.2 文本向量化 332
8.2.1 什么是文本向量化 332
8.2.2 OpenAI提供的文本向量化功能 333
8.2.3 私有化部署Hugging Face向量化模型 335
8.3 向量数据库Chroma 340
8.3.1 什么是向量数据库Chroma 340
8.3.2 文本向量化及相似度匹配的示例 341
8.3.3 集合API 342
8.3.4 相似度距离计算方法 352
8.3.5 embeddings向量化函数 353
8.4 实战:为ChatGPT提供知识库功能 357
8.4.1 知识库整体功能剖析 357
8.4.2 支持文件上传至知识库 358
8.4.3 支持包含相似搜索的询问模式 376
8.5 本章小结 380
第9章 提示词工程与LLM社区生态 382
9.1 提示词工程 382
9.1.1 英文组织提示词 382
9.1.2 明确输入和输出 383
9.1.3 辅助推理键 384
9.1.4 特殊或生僻场景提供示例 385
9.1.5 分治法:减小模型介入问题的粒度 386
9.1.6 结构化组织提示词 388
9.2 国内Chat大模型 389
9.2.1 文心一言 389
9.2.2 通义千问 395
9.2.3 豆包 399
9.2.4 元宝 402
9.2.5 Kimi 408
9.3 AI应用搭建平台Coze 410
9.3.1 什么是Coze 411
9.3.2 基础使用 412
9.3.3 高阶功能 414
9.3.4 Coze应用的API调用 435
9.4 本章小结 441
|
內容試閱:
|
自2023年年初ChatGPT问世以来,以生成式模型为代表的人工智能(AI)行业受到了极大关注。截至2024年年底,AI行业发展迅猛,日新月异。全球针对AI行业的投资也远超其他行业,可以说AI技术是近几年人类社会最为关注的领域。与其他行业的变革不同,AI的发展并不局限于本行业,而是逐渐渗透到全球各个行业,慢慢地成为国力竞争的重要因素。如此规模,与其称AI为一个行业风口,笔者更想大胆判断为五次工业革命。
生成式AI应用从广义上来说包括三个方向:使用AI应用、基底模型训练以及生成式AI应用开发。其中,基底模型训练储备了生成式AI应用底层使用的模型,例如ChatGPT底层的GPT系列模型;而生成式AI应用开发则是使用基底模型,通过一定的开发手段和机制将模型能力融合到应用中,并最大可能地发挥基底模型的能力。
目前市面上与AI相关的图书大部分介绍的是使用AI应用,例如怎么使用ChatGPT写文章,如何组织Prompt等,少部分图书则涉及基底模型训练。前者内容较为浅显,容易被替代且不具备时效性,而后者有较高的门槛,更适合专业算法从业人员阅读。对于承上启下,既兼容前两者的内容,又详细介绍各式生成式AI应用开发的图书,市面上仍然比较欠缺。本书希望可以补全这部分资料的不足,帮助更多想从事AI行业的人入门。
这里简单介绍一下本书的写作背景。笔者算是国内最早一批探索生成式AI应用开发并落地取得成果的编程人员,目前在字节跳动的抖音业务线任职前端工程师。那么,笔者是如何接触到生成式AI应用的呢?
2022年11月,出于个人兴趣以及对代码质量的追求,笔者在网站上撰写了一本关于单元测试的电子书《前端单元测试精讲》,之后开始尝试为团队落地单元测试。实现过程中遇到了不少瓶颈,主要在于程序员编写代码测试的时间成本较高,在排期紧张且频繁迭代的情况下落地困难。
随后,笔者开始尝试使用一些自动化手段来生成单元测试,比如代码静态分析、注入监听插槽等方法,以减轻程序员手动编写单元测试的负担,但效果一直不尽如人意。因为单元测试代码虽然有规律可循,但面对的场景众多,复杂度较高。
这个问题困扰了笔者很久,直到2023年3月,ChatGPT的横空出世让笔者迸发了新的灵感。经过尝试后发现,虽然ChatGPT生成的内容尚有瑕疵且不够稳定,但作为单元测试生成的初稿效果非常好,几乎达到开箱即用的程度。
2023年4月,笔者基于GPT模型实现了自动化生成单元测试的插件,并在公司内落地。这个插件服务了抖音安全、春节服务、TikTok等不同业务线的几十个团队,生成了10多万单元测试代码,使研发效率提升了近60%。在这次成功案例后,笔者还开发了AI CR、AI代码防劣化等提效的插件,在部门内都取得了不错的反响。
在整个过程中,笔者总结了不少一线的生成式AI应用开发经验,并在社区发表了相关文章。2023年年初,分享生成式AI应用开发经验的文章还非常少,因此一经发表便连续几周都排在热搜榜上,并获取了10多万的阅读量。
这时,清华大学出版社的编辑找到了我,希望我能将这些经验编写成书。本人喜欢分享技术,也希望能够将近两年的生成式AI应用开发经验系统地沉淀下来,帮助更多的人,加上之前有写作电子书的经验,于是答应了下来。从2023年11月份至今,笔者利用每个周末和碎片化的时间,将与生成式AI应用相关的知识都写了下来。这便是本书的创作背景,编写本书对笔者而言也是一段独特且充满挑战的经历。
坦诚地说,社区里除了对AI应用的肯定外,也有不少对AI发展的质疑声,认为生成式AI应用可能只是昙花一现。毕竟,尽管现在模型的能力令人吃惊,但并不能完全代替人类。笔者个人判断,从长远来看,尽管AI模型自身目前还无法完全替代人类,但AI无疑将成为未来发展趋势的重要方向。这一点从行业内的变化和全球投资趋势中均可得到印证。生成式AI应用的基建需要长时间的建设和投入,对于个人和团队而言都是不错的机会。就像蒸汽时代、电气时代和信息时代初期一样,当时也存在很多质疑声,认为它们可能是昙花一现。我们仍需给AI时代的到来给予更多的时间,也给未来多一点信心。
当然,个人判断并不仅是口头说说,笔者也将于2024年9月从抖音业务线主动转岗到字节跳动AI IDE架构业务线,以身入局。正如上面所说,给AI时代的到来更多的时间,也给未来和自己多一点信心。本书不仅是读者进入AI应用领域的起点和入局令牌,对于笔者而言也是新的开始和挑战,很荣幸能与各位读者一同前行,做一些有挑战的事情。
本书提供了全部源代码,读者可扫描下方二维码下载。
如果下载有问题,请用电子邮件联系booksaga@126.com,邮件主题为“生成式AI应用开发:基于OpenAI API实现”。
本书得以顺利完成,离不开我的妻子春燕的支持。在笔者迷茫和疲惫的时候,她总能耐心倾听并给予安慰。今年,她还生下了一个可爱的男孩,但由于笔者工作繁忙,即使在业余时间也需赶稿,因此她几乎承担了家中所有的家务和照顾孩子的重任,付出良多。笔者深感幸运,能有这样一位温和、宽容的伴侣。
同时,感谢清华大学出版社的编辑,让笔者有机会将这几年的沉淀和所学系统地分享给读者。在写稿过程中,编辑提出了大量专业建议,让本书能够以更好的一面呈现出来。
最后,还要感谢为本书撰写序言的死月、张添富、章小川、陈阳、魏富强和夏柏阳老师们,感谢他们能在繁忙的工作之余抽出宝贵时间读完笔者的拙作,撰写专业、中肯的点评。
尽管本书融入了笔者的所有努力,但由于水平有限,难免有疏漏之处,欢迎读者批评指正。
总有人间一两风,填我十万八千梦。
陈祯民
2025年1月于深圳
|
|