圖書名稱:ChatGPT 開發手冊 Turbo×Vision 進化版—用 OpenAI Chat/Assistants API‧Function calling 設計 GPTs action‧LINE/Discord bot‧股市分析/自動助理
VIDEO 在 ChatGPT 帶起生成式 AI 百家齊放的新世紀, 整合語言模型已勢不可擋。隨著 OpenAI 釋出更厲害的新模型與整合度更高的 API, 善用語言模型理解文意與能言善道的超強特性, 邁入『自然語言就是程式語言』的願景已經不再是夢想。終端用戶將使用自然語言操控應用程式, 由語言模型自主理解規劃邏輯流程, 我們的程式則是語言模型背後的軍火庫, 串接外部各式各樣的功能。 | 用真實上線的 GPTs 學 action 開發 | 即使 GPTs 已經提供搜尋網路、上傳檔案的功能, 仍然無法隨意取用外部功能, 因此 GPTs 最關鍵的環節就是 action 外掛系統, 讓語言模型與外界接軌。本書會帶大家用真實上線的台鐵時刻表查詢專家當範例, 手把手教你設計 GPTs action, 補強客製 GPTs 欠缺的功能。 | 串接 Google OAuth2 API 管控 action 使用者 | 客製的 GPTs 要能針對不同使用者提供客製服務才是真客製, 本書會說明如何串接 Google OAuth2 API, 幫 GPTs action 加上登入 Google 帳號機制, 以便後端程式可以根據登入的使用者提供不同的服務, 設計出真正客製的 ChatGPT。 | Chat/Assistants API 全解析 | Assistants API 是 OpenAI API 家族的大禮, 以往我們必須自己處理的對話記錄、網路搜尋、向量資料庫、程式執行工具、文字生圖等等功能, 現在全部整合在 Assistants API 中, 成為實作 AI 助理的基石。本書會帶大家深度瞭解 Chat API 與 Assistants API 的差異, 讓你針對問題挑選適當的 API。 | 深入 function calling 機制 | 即使是最新的 gpt-4 模型, 訓練資料也僅止於 2023 年 4 月, 模型本身也不能連網取得新知, 更無法介接外部 API。透過 function calling 機制, 就可以撰寫各式各樣的函式作為延伸語言模型能力的外掛, 任由模型取用。新版模型更強化功能, 提供 parallel function calling, 即使複雜問題也能自動分解由多個函式完成。 | 整合 gpt-4-vision 模型 | gpt-4-vision 讓模型長眼睛, 本書就利用這項功能結合 code interpreter 工具, 帶大家製作一個給它網頁截圖就能模仿生出近似網頁檔的助理, 甚至還可以幫你從其他語言的 API 串接程式碼生成 JavaScript 程式碼, 以後看到欣賞的網頁, 就可以透過這種方式快速學習設計方法。 | 透過 Assistants API 讓語言模型幫你生 SQL | SQL 語法博大精深, 有的時候我們很明確知道想要從資料庫裡找出什麼結果, 但就是沒辦法把 SQL 語句寫對, 本書特別展示了一個簡單的小助理, 讓你用說的就能操作資料庫。 | 利用 Retrieval 工具設計 RAG 助理 | Assistants API 除了能夠記錄對話, 還提供額外的工具, 其中 Retrieval 工具免除我們自己將文件分段作 embedding 以及管理/存取向量資料庫的麻煩, 只要把檔案丟給它, 就可以快速開發檢索增強式生成 (RAG, Retrieval Augmented Generation) 助理。 | 善用 Assistants API 開發 LINE/Discord bot | 用語言模型幫即時通訊軟體長大腦, 變成隨身客製版的 ChatGPT, 不但能理解文字, 還能創意生圖改圖, 也能分析股市, 更能看圖說故事。 | 設計字幕與旁白自動生成助理 | 加字幕是拍片後最繁瑣的工作, 透過 Whisper 模型, 就可以自動從語音轉出加上時間點的字幕檔, 或者也可以反向從字幕檔利用 TTS 模型生成旁白音檔, 有效提升自媒體工作效率。 | 微軟 Azure OpenAI API 差異說明 | 除了 OpenAI 自己, 微軟的 Azure 平台也提供有 OpenAI API, 這兩個看似系出同門的 API 在使用上卻存在一些差異, 如果沒有注意, 就可能落入陷阱, 本書已經幫你測試過, 協助你無縫接軌轉移應用程式到 Azure 平台。 | 設計串流即時輸出的聊天架構 | 想要像是 ChatGPT 可以即時顯示生成內容, 避免讓使用者痴痴等待全部內容生成, 沒問題, OpenAI 也提供有串流模式, 本書也將串流功能與 function calling 整合進聊天框架, 讓你可以快速實作出具備即時顯示、又可彈性增減外部功能的對答程式。 | 詳解 OpenAI API 個別參數 | 不想被語言模型弄瘋, 就要瞭解 OpenAI API 的各項參數, 才能掌握語言模型生成的各種變數, 怎樣可以讓語言模型生成內容避開不想要出現的字詞?怎樣可以讓語言模型選用偏好的字詞?為什麼生出內容有怪怪的東西?這些都可以透過 API 的參數控制, 如果不瞭解參數, 就只能任由語言模型恣意亂為了。 本書特色: ‣ 解析實際上線的 GPTs 學會 action 開發 ‣ 串接 Google 帳號認證 GPTs action 使用者身分 ‣ 善用 Assistants API 設計 Discord 股票分析助理 ‣ 結合 gpt-4-vision/code interpreter 設計看圖生成網頁的自動助理 ‣ 使用 Assistants API 用說的就能操控 SQL 資料庫 ‣ 利用 function calling 幫 LINE AI 機器人突破限制開外掛 ‣ 整合 OpenAI Image API 設計 AI 文字生圖/改圖/修圖工具 ‣ 詳解 OpenAI API 參數/掌握語言模型輸出變化 ‣ 實作自動字幕/旁白產生器 ‣ 微軟 Azure OpenAI API 差異說明, 無縫接軌轉移應用程式到 Azure 平台
目錄
第 1 章 OpenAI API 入門 1-1 有了 ChatGPT / GPTs 為什麼還要寫程式? • 流程自動化 • 客製化聊天內容 • 延伸聊天範圍 • 整合 AI 功能 1-2 註冊 OpenAI API 帳戶 • 檢查目前用量 • 成為付費會員 • 限制使用額度 1-3 利用 Playground 熟悉 API • 可用的 API 模式與模型 • 認識 Chat API 的三種角色 • 保持對答脈絡 第 2 章 使用 Python 呼叫 API 2-1 使用官方 openai 套件 • 安裝與使用 openai 套件 • 直接透過模組使用 API • 傳遞多筆訊息 • 設定與隱藏金鑰的方法 2-2 認識 token • 使用 tokenizer 頁面檢視 token • 使用 tiktoken 套件計算精確 token 數 • ChatML 標記語言 2-3 使用 Python requests 模組呼叫 API • OpenAI API 的 HTTP 規格 • 使用 Python requests 模組 • 利用 curl 工具快速測試 API 2-4 加入組織成員 • 使用 API 時指定扣款組織 • 在 HTTP 表頭中指定組織 第 3 章 API 參數解析與錯誤處理 3-1 事前準備 3-2 控制生成訊息與 token 數量 • 指定生成的訊息數量 - n • 設定詞彙黑名單 - stop • 設定回覆語句的 tokens 數量上限 - max_tokens 3-3 控制回覆內容的變化性 • 讓回覆更具彈性 - temperature • 控制詞彙的豐富度 - top_p • 控制詞彙的重複性 - presence_penalty 與 frequency_penalty • 調整特定 token 的分數 - logi-bias • 固定可預測的輸出 - seed 3-4 串流輸出 • 可循序傳回結果的迭代器 (iterator) - stream • 串流多個語句 3-5 進階控制 • 控制輸出格式 - response_format • 取得底層 HTTP 回應內容 • 有眼睛的模型 - gpt-4-vision (GPT-4V) 3-6 錯誤處理與使用限制 • 使用例外機制處理錯誤 • API 存取限制 第 4 章 打造自己的 ChatGPT 4-1 文字模式簡易聊天程式 4-2 加入聊天記錄維持聊天脈絡 4-3 串流版本的聊天程式 4-4 儲存歷史紀錄下次繼續聊 • 掛接 Google 雲端硬碟 • 製作復原/儲存歷史紀錄的函式 第 5 章 突破時空限制–整合搜尋功能 5-1 用搜尋網頁幫 AI 補充知識 • 使用 Google 搜尋 5-2 整合搜尋結果讓 AI 跟上時代 5-3 使用 Google Search JSON API • 建立搜尋引擎 ID • 取得 API 金鑰 • 使用 HTTP API 取得搜尋結果 • 使用客製模組 第 6 章 讓 AI 幫 AI –自動串接流程 6-1 從 ChatGPT 外掛得到的啟示 • 準備工作 • 搭配串流/非串流模式的工具函式 6-2 由 AI 自動判斷要額外進行的工作 • 讓 AI 自行決定是否需要搜尋 • 撰寫判斷是否需要搜尋的工具函式 • 可自行判斷是否進行網路搜尋的聊天程式 6-3 可建構外掛系統的 Function Calling 機制 • 告知語言模型可用的外部工具函式 • 取得語言模型的建議 • 執行函式並傳回結果 • 同時叫用多個函式 (parallel function calling) • 以串流方式使用 function calling 6-4 建立 API 外掛系統 • 建立外部工具函式參考表 • 建立協助 function calling 的工具函式 • 建立 function_calling 版的 get_reply_f() 函式 • 建立 function calling 版本的 chat_f() 函式 • 循序叫用函式 第 7 章 網頁版聊天程式與文字生圖 Image API 7-1 準備工作 7-2 使用 gradio 套件快速建立網頁程式 • 安裝與使用 gradio • 使用串流方式顯示輸出 • 客製使用者介面 7-3 使用 DALL‧E 的 Image API • Image API 用法 • 建立文字生圖像網址的函式 • 包裝成生成 markdown 語法的函式 第 8 章 Assistants API —快速開發助理應用程式 8-1 什麼是 Assistants API • Assistants API 的定價 • Assistants API 的基本元件 • 建立 Assistant • 建立 Thread 與 Message • 建立 Run 執行任務 • 顯示討論串內的所有訊息 8-2 Assistants API 物件用法 • 建立新討論串直接執行 • 建立對話函式 • 取消執行 • 檢視執行記錄 • 刪除討論串 • 上傳文件增添知識庫 • 修改助理的檔案清單設定 • 刪除文件 • 列出所有助理 8-3 使用內建工具 • Code interpreter • Retrieval 檢索器 - RAG • Function calling 第 9 章 AI 助理開發實戰 9-1 看截圖就能生出類似網頁的小助理 • 使用 GPT-4-Vision 建立網頁模板 • 建立 function calling 9-2 自動串接 API - 取得真正資料 • 串接 API 程式碼 • 製作天氣預報網頁 9-3 SQL 資料庫查詢助理 • 下載資料 • 建立 SQL 資料庫 • 建立相關函式 • 建立 SQL 助理 第 10 章 設計 LINE AI 聊天機器人 10-1 設計簡易的 LINE 聊天機器人 • Messaging API • Replit 線上開發環境 • 實作 LINE 聊天機器人 • 設定環境變數 • 執行程式 • 串接程式與通道 • 測試聊天機器人 10-2 升級為 AI 聊天機器人 • 設定環境變數 • 修改程式碼 • 執行與測試 10-3 OpenAI 變化圖像的功能 10-4 可控制變化內容的 create_edit 函式 • ChatGPT code interpreter 工具來幫忙 • 讓 LINE 也能變化圖像背景 10-5 圖片解讀機器人 • 讓 LINE 也能解讀圖像 第 11 章 把 AI 帶到 Discord 11-1 建立第一個 Discord 機器人 • 前置作業 • 建立 Discord 開發者應用程式 • 取得 TOKEN • 將 Discord 機器人加入伺服器 11-2 建立回聲機器人 • 複製 Replit 專案:回聲機器人 • 程式碼詳解:回聲機器人 11-3 讓 Discord 機器人只處理指名給自己的訊息 • 複製 Replit 專案:指名道姓機器人 • 程式碼詳解:指名道姓機器人 11-4 加入 AI 的 Discord 機器人 • 複製 Replit 專案:加入 AI 大腦的機器人 第 12 章 AI 客製化投資理財應用實戰 12-1 能抓取證交所資料的 Discord 機器人 • 複製 Replit 專案:能抓取證交所資料的 Discord 機器人 • 抓取大盤資料 • 抓取個股股價資料 • 抓取個股本益比、殖利率及淨值比資料 • 斜線指令:main.py 12-2 StockGPT:專業的證券分析機器人 • 複製 Replit 專案:StockGPT • 抓取新聞資料 • AI 幫你來分析 12-3 加入按鈕指令來優化使用者體驗 • 複製 Replit 專案:按鈕版的 StockGPT • 按鈕指令:main.py 第 13 章 自媒體業者必看!使用 AI 自動生成高品質字幕與旁白 13-1 使用 PyTube 套件輕鬆下載 YouTube 檔案 • 複製 Replit 專案:輕鬆下載 YouTube 檔案 • 程式碼詳解:輕鬆下載 YouTube 檔案 13-2 使用 Whisper 模型從語音轉出字幕檔 • 複製 Replit 專案:從音訊檔轉出字幕檔 • 程式碼詳解:從音訊檔轉出字幕檔 13-3 影片不是中文的?讓 AI 變出中文字幕! • 複製 Replit 專案:讓 AI 變出中文字幕 • 程式碼詳解:讓 AI 變出中文字幕 13-4 利用 TTS 模型生成旁白配音 • 複製 Replit 專案:TTS 文字轉語音 • 程式碼詳解:TTS 文字轉語音 第 14 章 GPTs Action 開發 14-1 客製的 ChatGPT - 台鐵時刻表專家簡介 14-2 使用 TDX 平台查詢台鐵資訊 • 查詢所有車站基本資料 • 指定起迄站代號查詢時刻表 • 取得驗證資訊 • 以驗證身分方式使用 API 14-3 GPTs action 實作入門 - 以查詢台鐵車站代號為例 • 建立客製版本的 ChatGPT • Action 基本架構 • API 規格檔 • 後端程式 • 測試 action 14-4 加入時刻表查詢功能 • 修改 API 規格檔 • 修改後端程式 • 測試 Action • 儲存客製的 ChatGPT 14-5 身分驗證 - 使用 API 金鑰 • 設定金鑰 • 啟用金鑰 • 修改後端程式 • 測試 Action 14-6 身分驗證 - 串接 Google 帳號 • OAuth 認證基本流程 • 執行後端程式 • 設定串接 Google 帳號 • 設定 action 認證方式 • 實際測試 • 後端程式解說 • 登出帳戶 附錄 A 微軟 Azure OpenAI API 的差異與注意事項 A-1 部署模型 • 建立資源 • 部署模型 • 使用遊樂場測試部署的模型 A-2 建立用戶端物件測試 API • 建立用戶端物件 • 預設啟用內容篩選機制 • 調整內容篩選層級 • 串流輸出時的注意事項
第 1 章 OpenAI API 入門 1-1 有了 ChatGPT / GPTs 為什麼還要寫程式? • 流程自動化 • 客製化聊天內容 • 延伸聊天範圍 • 整合 AI 功能 1-2 註冊 OpenAI API 帳戶 • 檢查目前用量 • 成為付費會員 • 限制使用額度 1-3 利用 Playground 熟悉 API • 可用的 API 模式與模型 • 認識 Chat API 的三種角色 • 保持對答脈絡 第 2 章 使用 Python 呼叫 API 2-1 使用官方 openai 套件 • 安裝與使用 openai 套件 • 直接透過模組使用 API • 傳遞多筆訊息 • 設定與隱藏金鑰的方法 2-2 認識 token • 使用 to...