書名:生成式AI應用開發:基於OpenAI API實現

原文書名:


9786267757482生成式AI應用開發:基於OpenAI API實現
  • 產品代碼:

    9786267757482
  • 系列編號:

    DM2583
  • 定價:

    980元
  • 作者:

    陳禎民
  • 頁數:

    560頁
  • 開數:

    17x23x2.74
  • 裝訂:

    平裝
  • 上市日:

    20251119
  • 出版日:

    20251119
  • 出版社:

    深智數位股份有限公司
  • CIP:

    312.83
  • 市場分類:

    電腦資訊
  • 產品分類:

    書籍免稅
  • 聯合分類:

    電腦資訊類
  •  

    ※在庫量大
商品簡介


https://youtu.be/r16g_24_vE8

【內容簡介】
本書共分九章。
第一章介紹GPT模型歷程、原理與API介面。第二章說明OpenAI文字與語音轉換功能、API端點設計與請求庫封裝。第三章展示ChatGPT應用構建,包括互動區域、聊天快取與角色設定。第四章實作飛書機器人與OpenAI結合,開發多種回應與通知功能。第五章說明VSCode外掛程式開發流程與Webview通訊技術。第六章實作AI程式輔助模組,包含語言轉換、程式診斷與自動修復。第七章說明如何部署ChatGLM等開源模型與進行P-Tuning微調。第八章介紹RAG技術,實作文字向量化與Chroma向量資料庫整合,建構查詢式知識庫。第九章為提示詞工程與LLM社群工具介紹,說明提示詞模式、模型回應最佳化與Coze平台應用。

作者簡介


陳禎民
工程師,前抖音內容安全、Trae AI成員,字節跳動青訓營講師,掘金簽約作者,著有掘金小冊《SSR實戰:官網開發指南》、《前端自動化測試精講》、《Trae入門到實踐:AI編碼的妙筆生花》。

商品特色/最佳賣點


【書籍特點】
☆GPT模型歷史、架構與API功能解析
☆OpenAI文字轉語音與語音轉文字實作
☆Chat系列API端點與流式回應設計
☆ChatGPT應用介面建構與訊息狀態處理
☆System Prompt建構與角色扮演範例
☆ChatGPT跨平台部署與Vercel整合
☆飛書機器人API連接與事件回應開發
☆VSCode外掛模組開發流程與通訊機制
☆AI程式輔助:自動生成、語言轉換、程式診斷
☆Hugging Face模型私有部署與P-Tuning微調
☆文本向量化技術與嵌入式匹配範例
☆向量資料庫Chroma操作與距離計算方式
☆ChatGPT外掛知識庫系統建構與查詢設計
☆提示詞工程模組化設計與Coze平台整合

書籍目錄


▌第1 章 緒論
1.1 AGI 的新時代已經到來
1.2 ChatGPT 全景介紹:歷史、原理與API
1.2.1 GPT 模型的基本概念和發展歷程
1.2.2 GPT 為什麼能做到跨領域與人互動
1.2.3 OpenAI API 簡介
1.3 生成式AI 應用的市場前景
1.4 本書的內容安排

▌第2 章 OpenAI API 請求函式庫
2.1 OpenAI API
2.1.1 OpenAI API 提供的模型類別
2.1.2 在瀏覽器端實現文字轉音訊
2.1.3 在Node.js 執行時期實現文字轉音訊
2.1.4 音訊轉文字的實現
2.2 Chat 系列OpenAI API 端點
2.2.1 Chat 系列API 端點參數及使用
2.2.2 Chat API 的串流回應
2.3 API 請求函式庫
2.3.1 使用OpenAI 請求函式庫
2.3.2 實戰:封裝並發佈一個大語言模型API 的請求函式庫
2.3.3 ChatGPT 可用免費API 轉發開放原始碼倉庫:GPT-API-free
2.4 本章小結

▌第3 章 基礎應用:ChatGPT 的實現
3.1 專案初始化和產品功能拆解
3.1.1 專案初始化
3.1.2 產品功能拆解
3.2 ChatGPT 靜態互動的實現
3.2.1 右側ChatGPT 對話區域
3.2.2 左側邊欄區域(Chat 資訊和API_KEY 填寫)
3.3 ChatGPT 可互動功能的補充
3.3.1 使用llm-request 連線OpenAI API
3.3.2 New Chat 事件的綁定
3.3.3 聊天記錄的快取
3.3.4 回應內容的豐富文字處理(換行、程式突顯、程式複製)
3.3.5 思考題:如何避免在請求中暴露API_KEY
3.4 建立不同角色類別的聊天
3.4.1 什麼是System Prompt
3.4.2 為ChatGPT 專案放開System Prompt 的填寫
3.4.3 範例:建立布布熊的虛擬女友一二熊
3.5 社區功能:跨平臺ChatGPT 應用—ChatGPT Next Web
3.5.1 初識ChatGPT Next Web
3.5.2 使用Vercel 把ChatGPT Next Web 部署到公網
3.6 本章小結

▌第4 章 互動應用:整合AI 模型功能到飛書機器人
4.1 建立飛書機器人
4.1.1 飛書開放平臺
4.1.2 建立一個飛書機器人一二熊
4.2 飛書機器人的API 服務
4.2.1 飛書機器人API 服務的事件訂閱
4.2.2 開發階段:使用反向代理工具Ngrok 對本機服務進行內網穿透
4.2.3 訂閱message 接收事件並回應
4.2.4 部署上線:使用Vercel Serverless Functions 輕服務部署
4.3 支援一二熊的訊息回覆
4.3.1 支援一二熊的單聊回覆訊息
4.3.2 支援一二熊在群聊中回覆訊息
4.3.3 使用自訂訊息卡片配置說明文件
4.4 結合AI 實現一二熊的辦公協助工具
4.4.1 支援對飛書文件內容進行總結
4.4.2 支援向指定人員發送訊息通知
4.4.3 支援向指定群發送訊息通知
4.4.4 支援自動拉群並說明拉群用意
4.4.5 支援建立任務並自動生成任務摘要
4.5 本章小結

▌第5 章 VSCode 自訂外掛程式
5.1 AI 在程式輔助領域的實施
5.1.1 ChatGPT 出色的程式協助工具
5.1.2 OpenAI API 與IDE 外掛程式的結合
5.2 初識VSCode 外掛程式開發
5.2.1 VSCode 外掛程式初始化
5.2.2 VSCode 外掛程式的目錄結構及檔案剖析
5.2.3 VSCode 外掛程式的啟動與本地偵錯
5.2.4 VSCode 外掛程式中單元測試的環境API mock
5.3 VSCode 外掛程式開發常用擴充功能
5.3.1 外掛程式命令
5.3.2 選單項
5.3.3 外掛程式配置項
5.3.4 按鍵綁定
5.3.5 訊息通知
5.3.6 收集使用者輸入
5.3.7 檔案選擇器
5.3.8 建立進度指示器
5.3.9 診斷和快速修復
5.4 特殊判斷值when 子句
5.4.1 when 子句運算子
5.4.2 when 子句內建環境變數
5.4.3 自訂when 子句環境變數
5.5 VSCode 外掛程式支援的工作環境空間
5.5.1 活動欄區域:視圖容器
5.5.2 側邊欄區域:樹狀檢視
5.5.3 狀態列區域:狀態列項目
5.5.4 編輯器組區域:網頁視圖
5.6 使用React 開發Webview
5.6.1 Webview 的React 開發配置
5.6.2 Webview 和Extension 的相互通訊
5.6.3 Webview 的開發者偵錯
5.7 VSCode 外掛程式的聯動與發佈
5.7.1 擴充相依外掛程式
5.7.2 VSCode 外掛程式的發佈
5.8 本章小結

▌第6 章 程式設計應用:AI 程式開發輔助外掛程式
6.1 在VSCode 外掛程式中實現ChatGPT
6.1.1 專案初始化
6.1.2 外掛程式功能剖析
6.1.3 外掛程式功能配置項註冊
6.1.4 工作列註冊
6.1.5 快取首頁的實現
6.1.6 聊天頁面的實現
6.2 程式語言轉換工具
6.2.1 外掛程式功能剖析
6.2.2 外掛程式功能配置項註冊
6.2.3 支援全檔案語言轉換
6.2.4 支援對全檔案語言轉換結果的追問
6.2.5 支援局部程式語言轉換
6.3 程式審查工具
6.3.1 外掛程式功能剖析
6.3.2 外掛程式功能的配置項註冊
6.3.3 支援單檔案粒度程式AI 診斷
6.3.4 人工的診斷行列匹配
6.3.5 支援對問題程式的AI 快速修復
6.3.6 支援狀態列狀態顯示
6.4 本章小結

▌第7 章 Hugging Face 開放原始碼模型的私有化部署和微調
7.1 模型私有化部署
7.1.1 什麼是模型私有化部署
7.1.2 使用Anaconda 管理Python 環境
7.1.3 私有化部署ChatGLM3-6B 模型
7.1.4 ChatGLM3-6B 模型的低成本部署
7.2 模型微調
7.2.1 什麼是模型微調
7.2.2 對ChatGLM3-6B 模型進行單機單卡P-Tuning
7.3 開放原始碼AI 社區Hugging Face
7.3.1 什麼是Hugging Face
7.3.2 機器學習函式庫Transformers
7.4 本章小結

▌第8 章 檢索增強生成技術:向量化與大模型的結合
8.1 檢索增強生成技術介紹
8.1.1 訓練模型是一個高成本的過程
8.1.2 檢索增強生成技術:低成本資訊穿透的實現
8.2 文字向量化
8.2.1 什麼是文字向量化
8.2.2 OpenAI 提供的文字向量化功能
8.2.3 私有化部署Hugging Face 向量化模型
8.3 向量資料庫Chroma
8.3.1 什麼是向量資料庫Chroma
8.3.2 文字向量化及相似度匹配的範例
8.3.3 集合API
8.3.4 相似度距離計算方法
8.3.5 embeddings 向量化函式
8.4 實戰:為ChatGPT 提供知識庫功能
8.4.1 知識庫整體功能剖析
8.4.2 支援檔案上傳至知識庫
8.4.3 支援包含相似搜尋的詢問模式
8.5 本章小結

▌第9 章 提示詞工程與LL 社區生態
9.1 提示詞工程
9.1.1 英文組織提示詞
9.1.2 明確輸入和輸出
9.1.3 輔助推理鍵
9.1.4 特殊或生僻場景提供範例
9.1.5 分治法:減小模型介入問題的粒度
9.1.6 結構化組織提示詞
9.2 Chat 大模型
9.2.1 文心一言
9.2.2 通義千問
9.2.3 豆包
9.2.4 元寶
9.2.5 Kimi
9.3 AI 應用架設平臺Coze
9.3.1 什麼是Coze
9.3.2 基礎使用
9.3.3 高階功能
9.3.4 Coze 應用的API 呼叫
9.4 本章小結

推薦序/導讀/自序


前言
自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 實現」。
本書得以順利完成,離不開我的妻子春燕的支持。在筆者迷茫和疲憊的時候,她總能耐心傾聽並給予安慰。今年,她還生下了一個可愛的男孩,但由於筆者工作繁忙,即使在業餘時間也需趕稿,因此她幾乎承擔了家中所有的家務和照顧孩子的重任,付出良多。筆者深感幸運,能有這樣一位溫和、寬容的伴侶。
同時,感謝清華大學出版社的編輯,讓筆者有機會將這幾年的沉澱和所學系統地分享給讀者。在寫稿過程中,編輯提出了大量專業建議,讓本書能夠以更好的一面呈現出來。
最後,還要感謝為本書撰寫序言的死月、張添富、章小川、陳陽、魏富強和夏柏陽老師們,感謝他們能在繁忙的工作之餘抽出寶貴時間讀完筆者的拙作,撰寫專業、中肯的點評。
儘管本書融入了筆者的所有努力,但由於水準有限,難免有疏漏之處,歡迎讀者批評指正。
總有人間一兩風,填我十萬八千夢。

陳禎民