【共筆】ChatGPT 開發手冊 Turbo × Vision 進化版》時程總表

10月23日起,每週三晚上 9:30 開始,通常1小時以內討論完畢(時程可能變更,詳見 Discord 本組頻道)。

Zoom meeting 連結

▌時程總表

參考文章:使用 ChatGPT 協助修改進度表格

日期 章節 導讀人 筆記 錄影
9月25日 討論新的共學書籍 - - YouTube
10月23日 第1,2章 ang [筆記] YouTube
11月6日 第3章 小玉 [筆記] [YouTube]
11月13日 第4,5章 阿壹 [筆記] [YouTube]
11月20日 [筆記] [YouTube]
11月27日 [筆記] [YouTube]
12月4日 [筆記] [YouTube]
12月11日 [筆記] [YouTube]
12月18日 [筆記] [YouTube]
12月25日 [筆記] [YouTube]
1月1日 [筆記] [YouTube]
1月8日 [筆記] [YouTube]

內容視進行狀況彈性調整。

▌選讀書籍

▌章節

第 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
• 建立用戶端物件
• 預設啟用內容篩選機制
• 調整內容篩選層級
• 串流輸出時的注意事項

本文設為 WIKI 共筆,歡迎大家共同維護更新。

祝大家學習順利大成功!


▌本組之前的共學

  1. Python 百日馬(2021)

  2. 網頁開發全攻略(2022)

  3. Modern React with Redux(2023)

  4. 從 Hooks 開始,讓你的網頁 React 起來(書)(2023)

  5. React 思維進化(書)(2024)