# 課程與資源位置 * 影片同時上傳至儀表板與 YouTube「直播」分頁 * 儀表板課程:Generative AI Community Edition,免費註冊、可直接入課 * 每支影片附「資源」:投影片、筆記、程式碼 * 之後將提供測驗與作業,會出現在同一儀表板分區 # Day 2 議程 ![messageImage_1757901796169](https://hackmd.io/_uploads/Hk5l4gBixg.jpg) * OpenAI 官方網站與文件導覽 * OpenAI API 實作(以 Python 為主,亦可用 Node.js) * Playground 與 Assistants 功能示範 * Chat Completions API 使用 * Function Calling 範例與說明 # LLM 快速回顧 * 本質:在巨量語料上訓練的生成式模型,可做多任務 * 常見任務:文字生成、摘要、翻譯、對話、程式碼生成、問答、分類、校正 * 能力來源:Transformer 架構 + 大規模預訓練 + 微調與(選配)RLHF # OpenAI 與其模型 * 代表性模型:GPT-3.5、GPT-4、DALL·E、Whisper、Embeddings、Moderation * 使用方式:以 API 存取,依 Token 計費 * Playground 可快速測試模型、提示詞與系統設定 # Hugging Face 與開源模型 * Model Hub 聚合多家開源模型與權重,提供 API Key 與推理端點 * 例:LLaMA 2、Falcon、BLOOM、StableLM 等 * 可依任務、語言、規模篩選模型並取得使用說明 # AI21 Labs(替代方案) * 提供 Jurassic-2 等商用模型 * 提供開發者額度與文件,作為 OpenAI 的替代或補充 # 平台差異與定位 * OpenAI:單一供應商生態,封閉商用模型,API 計費 * Hugging Face:模型聚合平台,偏開源社群與多供應商整合 * AI21:商業供應商,另一路線的 LLM 與計費模式 # GitHub/Docker 類比(理解 Hugging Face 角色) ![messageImage_1758038604870](https://hackmd.io/_uploads/BkTU9Wwole.jpg) ![image](https://hackmd.io/_uploads/SybEqbwixx.png) * GitHub 對應程式碼倉庫;Docker Hub 對應映像倉庫 * Hugging Face Hub 對應「模型倉庫」,集中管理發布與使用說明 # 之後實作重點 * 產生並使用 OpenAI API Key * 在 Playground 試不同模型與提示詞 * 以 Python 調用 Chat Completions * 示範 Function Calling 讓模型結合外部工具/結構化輸出 # 其他補充 * 開源與商用並行:可依成本、隱私、延遲、品質選擇 * 需用到的資源與檔案皆會附於課程儀表板的「資源」區 --- # OpenAI 概覽 * 2015 年成立,初期為非營利研究組織 * 目標:推動對人類友善且負責任的 AI,強調透明與開放研究 * 因 GPT 與 ChatGPT 帶動大眾影響力與知名度 # 創辦與核心人物 * 創辦成員:Sam Altman、Elon Musk、Greg Brockman 等 * Sam Altman 曾被董事會撤職後又回任 CEO 的事件被提到 # 為何 OpenAI 重要(里程碑) * GPT 系列帶來 NLP 的重大突破,ChatGPT 成為代表性應用 * 其他研究/成果被提及:生成式模型、機器人研究、多模態神經元等 * 產品線:ChatGPT、DALL·E(含 DALL·E 2/3)、Whisper、Alignment、Startup Fund # 網站與文件導覽重點 * 官網首頁可查看最新動態與研究更新 * API 區:Documentation → Overview / Introduction / Quickstart * Quickstart 提供 Node.js、Python 等環境設定與最小可行程式碼 # 模型總覽(API 文件重點) * 主要模型:GPT-4、GPT-3.5、DALL·E、TTS、Whisper、Embeddings、Moderation * 文件提供各模型的名稱、訓練資料截斷時間、上下文長度、輸出上限 token * 標記「Deprecated」模型(如早期 text-\* / 舊 GPT-3.5 變體)仍可查閱 # Token 與上下文 * 輸入/輸出皆以 token 計價與限制 * 每個模型有不同上下文長度與最大全部輸出 token 上限 * Prompt = token 的集合,影響成本與可用上下文 # 計費與使用 * 早期新帳號贈送額度已停止 * 需綁定付款方式並設定使用上限後才能使用 API * OpenAI 模型屬商用服務,依用量(token)計費 # API 能力(文件所列) * 文字生成(Chat/Completions) * Embeddings(文字向量化) * 微調(Fine-tuning) * 影像生成(DALL·E) * 視覺與多模態(GPT-4V) * 語音轉文字(Whisper)、文字轉語音(TTS) * 內容審核(Moderation) # 其他平台與資源 * Hugging Face Model Hub:聚合多家開源模型與使用說明 * AI21 Labs:Jurassic-2 等商用模型,提供開發額度作為替代方案 # 面試/實務重點 * 可能被問到 Transformer 架構、Positional Encoding、殘差/跳接等 * 需說明實際用例、模型選型、成本估算、Prompt 設計與 token 規劃 # 課堂情境與流程摘要 * 先介紹 OpenAI 歷史與產品,再走讀 API 文件 * 之後進入實作:建立金鑰、環境設定、Playground 測試、Chat Completions、Function Calling --- # 實作前置 ![messageImage_1758038964354](https://hackmd.io/_uploads/rk46obvile.jpg) ![messageImage_1758039008787](https://hackmd.io/_uploads/Hk4e2-vjxx.jpg) ![image](https://hackmd.io/_uploads/rkE-nZwoxg.png) * 需安裝 Anaconda(套件與環境管理) * 需安裝 Python(建議 3.8、3.9、3.10;不要用 3.11+) * 本次以 Jupyter Notebook 進行示範(之後專案用 VS Code 也可) # 建立與啟用虛擬環境 ![image](https://hackmd.io/_uploads/HkNVnZwixg.png) ![image](https://hackmd.io/_uploads/ry5I2bvogx.png) * 使用 conda 建立專案專屬環境(指定 Python 版本) * 啟用該環境後再進行後續安裝 * 建議每個專案獨立環境,隔離相依套件 # 安裝與檢查套件 ![image](https://hackmd.io/_uploads/H1lwnbvsxe.png) ![messageImage_1758039163566](https://hackmd.io/_uploads/B1W52Wvolx.jpg) * 在虛擬環境中安裝 Jupyter Notebook(避免啟用到 base 的套件) * 以套件清單指令檢查當前環境已安裝內容 * 安裝 openai 套件以呼叫 OpenAI API(先完成環境後再寫程式) # 啟動 Jupyter Notebook ![image](https://hackmd.io/_uploads/HyCs2Wwoee.png) * 於已啟用的虛擬環境啟動 Notebook 伺服器 * 新增 Notebook 檔案並選擇正確的 Python 3 Kernel(來自該虛擬環境) # 文件與快速上手 * 前往 OpenAI API 文件的 Quickstart(選 Python 版本) * 依照步驟完成環境設定與最小可行範例 * 之後將在 Notebook 內呼叫模型進行測試與實作 # 實作流程備註 * 若未在虛擬環境安裝 Jupyter,啟動時可能載入 base 環境的套件 * 安裝順序:建立環境 → 啟用 → 安裝 Jupyter → 啟動 → 安裝 openai → 撰寫測試 * 完成環境與套件後,準備進入 OpenAI Python API 的實作測試 --- # 實作環境需求 * 需安裝 Anaconda 作為環境與套件管理 * 需安裝 Python(建議 3.8、3.9、3.10,避免 3.11+) * 本次以 Jupyter Notebook 示範,專案可改用 VS Code # 建立虛擬環境步驟 * 使用 conda 建立專案獨立環境並指定 Python 版本 * 啟用該環境後再進行所有安裝 * 每個專案各自隔離依賴以避免衝突 # 安裝與啟動 Jupyter ![messageImage_1758039367673](https://hackmd.io/_uploads/Bk_Ia-Digx.jpg) * 在虛擬環境中安裝 Jupyter Notebook * 啟動 Notebook 伺服器後新建筆記本 * 確認 Kernel 指向當前虛擬環境 # 安裝與檢查套件 ![messageImage_1758039383587](https://hackmd.io/_uploads/BJ8wp-Pjgg.jpg) * 安裝 openai 套件以呼叫 OpenAI API * 需求時再安裝 pandas、numpy 等資料處理套件 * 使用套件清單確認環境安裝狀況 # OpenAI API 基本概念 ![image](https://hackmd.io/_uploads/rk_Fp-vsgl.png) * 透過 API 使用預訓練模型(GPT-3.5/4、DALL·E、Whisper、Embeddings 等) * 將先進生成與理解能力整合至應用而無須自訓 LLM * 輸入與輸出皆以 token 計價與限制 # 產生與設定 API Key ![image](https://hackmd.io/_uploads/Sycoa-vsxx.png) ![image](https://hackmd.io/_uploads/S1Lppbwsll.png) * 於網站登入後在「API keys」建立金鑰 * 需先綁定付款方式與設定額度上限 * 在程式中設定金鑰後即可發送請求 # 取得模型清單 ![messageImage_1758039549731](https://hackmd.io/_uploads/HJ6WRZDsle.jpg) ![messageImage_1758039567153](https://hackmd.io/_uploads/rJCMAbPsgl.jpg) ![image](https://hackmd.io/_uploads/Skv6AWvolg.png) ![messageImage_1758039804363](https://hackmd.io/_uploads/Hy3Wkzwill.jpg) * 呼叫模型清單端點以獲取可用模型 * 常見欄位包含 id、created、object、owned\_by * 可整理為表格以便檢視 # Playground(Chat)重點 ![image](https://hackmd.io/_uploads/B1m71zwoee.png) ![image](https://hackmd.io/_uploads/SymV1Mwsll.png) * 角色區塊包含 System、User、Assistant ![image](https://hackmd.io/_uploads/ryIU1zvjll.png) * 可切換模型並調整生成參數 ![image](https://hackmd.io/_uploads/H1JPkGPoxe.png) * 可檢視「View code」取得對應的 Python 範例 ![image](https://hackmd.io/_uploads/S1vDyfDiel.png) # 主要參數說明 * temperature:控制隨機性,低值較穩定,高值較創意 * max tokens:限制輸出長度 * stop sequences:遇到指定序列即停止生成 * top\_p:以機率質量控制多樣性 * frequency penalty:降低重複字詞 * presence penalty:鼓勵引入新字詞 # 範例應用脈絡 * 將 GPT 接入網站聊天系統先自動回覆,必要時升級人工處理 * 以第三方模型能力取代自建 LLM,降低訓練與基建成本 # 後續主題 * Chat Completions API 更完整示範 * Function Calling * 使用 Hugging Face API key 介接開源模型 --- # Playground 使用前提 * 需先在帳戶綁定付款方式與額度,否則可能無法使用或調用模型 * 可直接在 Playground 測試提示詞、模型與參數 # Chat 區塊與角色 * System:設定模型行為與口吻(例如「諷刺」助理) * User:輸入問題或任務 * Assistant:模型回覆區 # 行為設定示例 * 將 System 設為「naughty/sarcastic」會讓回覆改用嘲諷語氣 * 同一問題在不同行為設定下會得到風格明顯不同的答案 # 主要生成參數 * temperature:控制隨機性,高值更有創意,低值更穩定 * max tokens:限制輸出長度 * top\_p:以機率質量控制多樣性(與 temperature 類似) * frequency penalty:降低重複字詞 * presence penalty:鼓勵引入新字詞 * stop sequences:遇到指定序列停止生成 # View code * Playground 可一鍵產生對應的 Python 範例碼(含提示詞與參數) # Assistants(進階) * 支援 Function Calling、Code Interpreter、Retrieval(RAG) * 可在之後的專案情境中配置多種工具並管理更複雜的工作流 # RAG(檢索增強生成)概念 ![image](https://hackmd.io/_uploads/BydhJMPsgg.png) * 先從外部知識來源檢索資料再生成回覆 * 目的在於提升答案的正確性與時效性 # Code Interpreter ![image](https://hackmd.io/_uploads/HJFsJzDolx.png) * 在 ChatGPT 內部執行 Python 以完成資料處理、計算等任務 # Chat Completions API 與版本差異 ![image](https://hackmd.io/_uploads/SybZxzPjxg.png) * 舊版曾使用 `Completion.create` / `ChatCompletion.create` * 新版 Python 套件改用新的呼叫方式與 Client 物件,舊方法會報錯 * 需要按最新文件使用正確的端點與方法 # API Key 設定 * 需先建立並安全保存 API Key * 可寫入環境變數或使用 `.env` 檔讀取,不建議硬編碼在筆記本 # 實作與效能備註 * 第一次呼叫可能較慢,後續通常較快 * 計費以 token 為單位,成本受輸入輸出長度與模型種類影響 --- # 從 API 回傳擷取答案 ![messageImage_1758040108789](https://hackmd.io/_uploads/H1jNxzwoge.jpg) * 回傳型別為 chat completion,主要內容在 `choices` * `choices` 是清單,取第 0 筆再讀取 `message` * 真正文字在 `message.content` * `message.role` 表示回覆角色(assistant) # 生成參數控制 ![image](https://hackmd.io/_uploads/H1APxMDjge.png) ![image](https://hackmd.io/_uploads/HJmqxzDige.png) * `max_tokens`:限制單次輸出最多的 token 數 * `n`:要求同一個提示詞產生多個不同回覆 * 多回覆時會在 `choices` 中依索引存放各答案 # Playground 行為設定 * 以 System 設定模型口吻與行為(如諷刺、淘氣) * 同題在不同行為設定下會得到風格明顯不同的回覆 * 「View code」可直接取得等價的 Python 範例碼 # Token 與計費 ![image](https://hackmd.io/_uploads/Bynslzvsee.png) ![image](https://hackmd.io/_uploads/HJjpxMDslx.png) * 輸入與輸出皆以 token 計價 * 可用官方 Tokenizer 估算字串 token 數 * 不同模型價格不同,定價以每 1K tokens 計算 * 定價細節可於 Pricing 頁查詢 # 使用前提 * 需先綁定付款方式並設定額度 * 無額度可能無法在 Playground 或 API 成功呼叫模型 # 後續課程重點 * Chat Completions 的 Function Calling * LangChain 與 RAG(檢索增強生成) * 向量資料庫與外部模型(Hugging Face、AI21 Jurassic) * 影像生成與相關模型(Stable Diffusion、文字轉影像/影像轉影片) # 課程資源 * 影片:YouTube 直播分區與課程儀表板 * 資源:筆記本、投影片、程式碼置於儀表板的「Resources」 * 之後會補上測驗與作業 # 時間資訊 ![image](https://hackmd.io/_uploads/rkRZ-zPieg.png) * 社群課固定時段:下午 3:00–5:00(約 2 小時) --- # Terminology * 生成式人工智慧(Generative AI):利用模型產生新內容(文字、影像、音訊等)的人工智慧範式。 * 大型語言模型(LLM):以巨量語料預訓練、具數十億參數,擅長語言理解與生成的模型。 * Transformer:以注意力為核心、取代RNN/CNN的序列建模架構。 * 注意力機制(Attention):讓模型聚焦輸入中的關鍵位置以加權整合訊息的機制。 * 自注意力(Self-Attention):在同一序列內計算元素間關聯度以建構表示。 * 多頭注意力(Multi-Head Attention):多組注意力並行以捕捉不同關係與子空間特徵。 * 位置編碼(Positional Encoding):為無序的自注意力注入序列位置信息的方法。 * 編碼器(Encoder):將輸入序列編碼成上下文表示的堆疊模組。 * 解碼器(Decoder):依序產生輸出並可跨注意力到編碼器的生成模組。 * 自回歸模型(Autoregressive):逐詞元條件生成下個詞元的模型類型。 * 掩碼語言模型(MLM):遮蔽部分詞元並預測以學習語言表示的訓練目標。 * 預訓練(Pretraining):以大規模未標註資料進行通用能力學習的階段。 * 微調(Fine-Tuning):以特定任務/資料繼續訓練以適配下游需求。 * 指令微調(Instruction Tuning):用「指令—回覆」資料對齊模型遵循指令能力。 * 參數高效微調(PEFT):僅調整少量外掛參數以低成本微調大模型的方法。 * LoRA:以低秩分解注入可訓練適配器的PEFT技術。 * QLoRA:結合低位元量化與LoRA以在單卡上微調大模型。 * 量化(Quantization):以低位元表示權重/啟動值以降記憶體並加速推理。 * 蒸餾(Knowledge Distillation):以小模型學習大模型行為以壓縮且保留效能。 * 檢索增強生成(RAG):先檢索外部知識再餵入模型以降低幻覺並更新知識。 * 嵌入向量(Embedding):將文字轉成稠密向量以表示語意與可檢索性。 * 向量資料庫(Vector DB):儲存向量並提供近似最近鄰搜尋的資料庫。 * 檢索器(Retriever):從索引中找出最相關文件的元件。 * 重排序器(Re-ranker):對初步檢索結果重新排序以提升相關性。 * 詞元(Token):模型處理的最小文字單位,可能是一詞或子詞。 * 上下文長度(Context Window):單次提示可容納的最大詞元長度。 * 溫度(Temperature):控制生成隨機性的參數,越高輸出越多樣。 * Top-k 取樣:僅在機率最高的k個候選中隨機抽樣。 * Top-p(核)取樣:在累積機率達p的候選集合中抽樣。 * 解碼策略(Decoding Strategy):取樣或貪婪等產生輸出的方式總稱。 * 系統提示(System Prompt):設定模型整體角色與邊界的上位指令。 * 提示工程(Prompt Engineering):設計提示以誘發期望行為與輸出的技巧。 * 少樣本學習(Few-shot Learning):在提示中示範少量例子以提升表現。 * 零樣本學習(Zero-shot Learning):無例子僅用指令完成新任務的能力。 * 思維鏈(Chain-of-Thought, CoT):讓模型顯式產生中間推理步驟以提昇準確度。 * 函式呼叫(Function Calling):讓模型以結構化參數觸發外部函式/工具。 * 工具使用(Tool Use/API 呼叫):模型調用外部系統(搜尋、資料庫、程式)以完成任務。 * 幻覺(Hallucination):模型自信生成不正確或捏造內容的現象。 * 安全對齊(Alignment):使模型行為符合人類價值與安全規範的過程。 * 人類回饋強化學習(RLHF):以人類偏好訓練獎勵模型並強化學習對齊行為。 * 人工回饋(Human Feedback):由人標註喜好/修正以引導模型改進。 * 內容過濾(Content Moderation):偵測與阻擋不當、有害或違規輸出。 * 模型卡(Model Card):描述模型用途、資料、限制與倫理的文件。 * 檢查點(Checkpoint):訓練過程中特定權重快照,可恢復或部署。 * 權重(Weights):神經網路可學參數,決定輸入到輸出的映射。 * 延遲(Latency):從請求到首字元輸出的時間延遲。 * 吞吐量(Throughput):單位時間內可處理的請求或詞元數量。 * 外部記憶(External Memory):以檔案/資料庫擴充模型短期記憶的設計。 * 多模態(Multimodal):可同時處理文字、影像、音訊等多種模態。 * 評測基準(Benchmark):標準化測試集合,用於比較與評估模型表現。 * OpenAI:專注通用人工智慧研發與產品化的研究公司與平台,提供模型與API服務。 * 人工通用智慧(AGI):能在多數智力任務上匹敵或超越人類的廣泛智能。 * 人工狹義智慧(ANI):只擅長特定領域任務的人工智慧系統。 * 人工超級智慧(ASI):在幾乎所有領域遠超人類的假想智能層級。 * 預訓練—微調範式:先用巨量通用資料學習,再以小量專用資料調整以適配任務。 * 監督式微調(SFT):以人類撰寫的高品質輸入/輸出對進一步訓練模型。 * AI回饋強化學習(RLAIF):以模型或評估器的自動偏好訊號取代人類評審訓練獎勵模型。 * 偏好建模(Preference Modeling):學習人類(或AI)對多個候選回答的相對喜好。 * 獎勵模型(Reward Model):將回答映射為可比較的分數以驅動強化學習或排序。 * 指令資料集(Instruction Dataset):由「指令—期望回覆」構成,用於教模型遵循指令。 * 助手API(Assistants API):封裝對話、工具使用、檔案與記憶的高階介面。 * 工具綁定(Tool Binding):以結構化參數讓模型調用外部函式、程式或服務。 * JSON模式約束(JSON Schema Constraints):用Schema限制輸出結構以利解析與安全。 * 結構化輸出(Structured Output):產生機器可讀的欄位化結果(如JSON)而非自由文本。 * 串流回應(Streaming Responses):在生成過程中即時傳送部分字串以降低體感延遲。 * AI代理(Agent):能規劃、呼叫工具、迭代推理以達成目標的模型驅動程式。 * ReAct模式:交替「推理(Reason)」與「行動(Act)」以結合思考與工具使用。 * 思考—行動—觀察循環(TAO):產生想法→執行→讀取觀察,再迭代至完成目標。 * 工具選擇策略(Tool Selection Policy):根據指令與上下文決定何時、用哪個工具。 * 提示注入(Prompt Injection):惡意內容試圖誘導模型違反原始指令或安全規範的攻擊。 * 提示越獄(Prompt Jailbreak):繞過安全限制以產生不當或受限內容的技巧。 * 安全護欄(Safety Guardrails):政策、過濾與約束以預防有害或違規輸出。 * 敏感資料保護(PII保護):偵測與遮蔽個人可識別資訊以符合法規與隱私。 * 資料最小化(Data Minimization):僅收集/保存完成任務所需的最小資料量。 * 推理(Inference):在已訓練權重上根據輸入生成輸出的過程。 * 冷啟動延遲(Cold Start Latency):模型或容器初次載入導致的額外延遲。 * 速率限制(Rate Limit):對每分鐘請求數與詞元數的配額約束。 * 指數退避重試(Exponential Backoff):遭遇限流或暫錯時的漸進延遲重試策略。 * 成本預算上限(Usage Cap):設定每月或專案層級的花費上限以控管成本。 * 每詞元計費(Per-Token Billing):依輸入與輸出詞元數量收費的計費模式。 * 上下文壓縮(Context Compression):以摘要/抽取等方式縮短提示以節省視窗。 * 文檔切塊(Chunking):將長文本切段後建索引以利檢索與RAG。 * 向量索引(Vector Index):儲存文本嵌入並支援近鄰搜尋的資料結構。 * 檢索器融合(Fusion Retrieval):結合同一查詢的多路檢索結果以提升覆蓋與精度。 * 程式碼助理(Code Assistant):針對程式開發提供補全、解說、重構與測試。 * 文生圖(Text-to-Image):以文字描述生成影像(如DALL·E類模型)。 * 圖生文(Image-to-Text):理解影像並輸出描述、標註或回答問題。 * 語音轉文字(ASR):將語音訊號轉錄為文字(如Whisper)。 * 文字轉語音(TTS):將文字合成自然語音,支援多語者與情緒。 * 多模態大型模型(VLM/MLLM):同時處理文字、影像等多模態輸入/輸出。 * 圖像理解(Vision QA):就影像內容進行辨識、推理與問答。 * 編排(Orchestration):管理代理、工具、工作流與狀態的系統設計。 * 觀測性(Observability):以日誌、度量與追蹤監看模型/代理行為與健康度。 * 審計日誌(Audit Log):保存請求、輸出與工具呼叫紀錄以便稽核與追溯。 * 角色存取控制(RBAC):以角色與權限限制誰能使用哪些模型與資料。 * 提示測試(Prompt Unit Test):以固定案例驗證提示在更新後仍維持品質。 * 自動化評測(Evals):用基準或合成任務批量評估模型表現與回歸。 * 級聯模型(Cascade):先用便宜模型篩選,再交給昂貴模型精審以降成本。 * 模型路由(Model Routing):依任務類型/長度/敏感度動態選擇最合適模型。 * 混合專家(MoE):多個專家子網路由門控機制選擇啟用以提效與擴容。 * 紅隊測試(Red Teaming):以攻擊者思維主動測出安全與穩定性弱點。 * Anaconda:資料科學與機器學習常用的發行版,整合 Python、套件與環境管理工具。 * Conda:Anaconda 內建的套件與環境管理器,用於建立、管理虛擬環境與安裝套件。 * 虛擬環境(Virtual Environment):隔離的 Python 執行環境,避免不同專案套件依賴衝突。 * Python 版本管理:為確保兼容性,專案需指定特定版本(如 3.8、3.9、3.10)。 * Jupyter Notebook:互動式開發環境,支援程式碼、文件、可視化與實驗。 * VS Code(Visual Studio Code):常用的跨平台 IDE,支援 Python 與資料科學工作流程。 * PyCharm:另一款常用的 Python IDE,適合大型專案開發。 * pip:Python 套件管理工具,用於安裝與管理第三方套件。 * pip list:檢查當前環境已安裝的套件清單的指令。 * pip install:安裝特定 Python 套件的命令。 * ipykernel:Jupyter Notebook 執行所需的核心,需安裝於虛擬環境中。 * CLS:清除 Anaconda Prompt 或命令提示字元內容的指令。 * conda create -n:建立新虛擬環境的命令。 * conda activate:啟用指定的虛擬環境。 * conda env list:查看所有已建立的虛擬環境。 * openai 套件:與 OpenAI API 互動所需的官方 Python 套件。 * API 金鑰(API Key):用戶專屬的憑證,用來驗證並授權 API 請求。 * OpenAI API:提供存取 GPT、DALL·E、Whisper 等模型的介面。 * Quickstart 指南:OpenAI 官方提供的快速入門文件,含程式碼範例。 * Chat Completion API:專用於對話生成的 API 端點。 * Embedding API:將文字轉換為向量嵌入,用於檢索與語意搜尋。 * Fine-tuning API:針對特定資料集微調模型的功能。 * Moderation API:檢測並過濾敏感或不當內容的 API。 * DALL·E API:以文字生成圖片的模型端點。 * Whisper API:語音轉文字的 API。 * TTS(Text-to-Speech):文字轉語音的功能。 * API 請求(Request):客戶端向伺服器發送的操作指令。 * API 回應(Response):伺服器返回的處理結果或資料。 * JSON:常用的資料交換格式,OpenAI API 輸入/輸出皆支援。 * Prompt(提示):輸入給模型的文字指令,用來控制輸出。 * Token(詞元):模型處理的最小單位,計費與輸入長度的基礎。 * Context Window(上下文視窗):模型可一次處理的最大 Token 數。 * Output Tokens(輸出詞元):模型回覆中生成的 Token 數。 * Input Tokens(輸入詞元):使用者輸入提示所佔用的 Token 數。 * Rate Limit(速率限制):API 每分鐘可發送的請求或 Token 數上限。 * Usage Limit(用量上限):帳號設定的 API 使用總量限制。 * Billing(計費):依據輸入/輸出 Token 數量進行收費。 * 免費額度(Free Credit):新註冊帳號原本提供的 API 免費使用額度。 * 支付方式(Payment Method):API 使用前需綁定信用卡或扣款方式。 * 取樣策略(Sampling Strategy):控制模型輸出多樣性(如 temperature、top-k)。 * Temperature:隨機性控制參數,值越高輸出越多樣。 * Top-k:只從機率最高的 k 個詞元中取樣生成。 * Top-p(Nucleus Sampling):從累積機率達 p 的詞元集合中隨機抽取。 * Playground:OpenAI 提供的互動式測試介面,無需寫程式即可試用模型。 * SDK(Software Development Kit):開發者使用 API 的官方程式庫集合。 * CLI(Command Line Interface):以命令列與 API 互動的方式。 * 環境變數(Environment Variable):儲存 API Key 與配置的安全方式。 * Error Handling(錯誤處理):對 API 請求錯誤進行捕捉與回應處理。 * Debugging(除錯):追蹤與修正程式或 API 請求中的問題。 * Latency(延遲):API 從發送請求到回覆的時間。 * Throughput(吞吐量):API 每單位時間能處理的請求或 Token 數量。 * Logging(日誌):紀錄 API 使用狀況、錯誤與回應資訊。 * Security(安全性):保護 API Key 與使用者資料的措施。 * OpenAI API:提供存取 GPT、DALL·E、Whisper 等模型的應用程式介面 * GPT(Generative Pre-trained Transformer):大型語言模型架構,用於自然語言處理 * GPT-3.5 Turbo:經濟高效的 GPT-3.5 版本,適合聊天應用 * GPT-4:進階版大型語言模型,支援更長上下文與多模態功能 * DALL·E:根據文字提示生成圖像的模型 * Whisper:語音轉文字的自動語音辨識模型 * Embedding:將文字轉換為向量表示,用於檢索與相似度計算 * Fine-tuning:針對特定資料集微調模型以符合需求 * Moderation API:檢測並過濾不當或敏感內容的工具 * Playground:互動式介面,用於測試與探索 API 功能 * Chat Completion API:專門生成對話回覆的端點 * Completion API:舊版文字生成端點,現已逐步取代 * System Message:定義模型角色與行為的提示設定 * User Message:使用者輸入給模型的文字 * Assistant Message:模型輸出的回覆訊息 * Prompt:提供給模型的輸入文字,控制生成結果 * Token(詞元):模型處理的最小單位,計費與輸入長度依此計算 * Context Window:模型可同時處理的最大 Token 數量 * Input Tokens:使用者輸入所佔的 Token 數量 * Output Tokens:模型輸出所生成的 Token 數量 * API Key:授權並驗證 API 請求的密鑰 * Environment Variable:儲存 API Key 的安全方式 * Rate Limit:每分鐘可呼叫 API 的次數上限 * Usage Limit:帳號可使用的總量上限 * Billing:依照 Token 用量計費的機制 * Free Credit:新帳號提供的免費試用額度 * Payment Method:綁定信用卡或扣款方式以啟用付費功能 * Temperature:控制隨機性,值越高輸出越有創意 * Top-k Sampling:只從機率最高的 k 個詞元中選擇輸出 * Top-p(Nucleus Sampling):從累積機率達 p 的詞元集合中隨機抽取 * Frequency Penalty:降低重複詞元的懲罰值 * Presence Penalty:抑制模型重複使用相同概念的懲罰值 * Latency:API 從請求到回應的時間延遲 * Throughput:API 每單位時間可處理的請求或 Token 數量 * Logging:紀錄 API 使用狀況與錯誤訊息 * Error Handling:處理 API 錯誤回應的方式 * JSON:常見的 API 輸入與輸出資料格式 * Request:用戶端發送的 API 呼叫 * Response:伺服器返回的 API 結果 * SDK(Software Development Kit):官方開發套件,簡化 API 使用 * CLI(Command Line Interface):透過命令列與 API 互動的工具 * Jupyter Notebook:互動式開發環境,支援程式碼與文件 * Conda:Anaconda 的套件與環境管理器 * Virtual Environment:獨立的 Python 執行環境,避免套件衝突 * pip:Python 套件管理工具 * ipykernel:Jupyter Notebook 內核,允許特定虛擬環境執行 * Anaconda Prompt:管理 Conda 環境與啟動 Jupyter Notebook 的介面 * VS Code:常用的跨平台 IDE,適合專案開發 * Hugging Face Hub:開放模型平台,提供替代 API 與開源模型 * Open Source Model:社群訓練並開放使用的模型,通常免費或限制較少 * AGI(Artificial General Intelligence):人工通用智慧,模擬人類全面智能 * Chat Completion API:用於生成對話式回覆的 API 端點 * Completion API(舊版):早期的文字生成端點,已逐步淘汰 * client(客戶端物件):與 OpenAI API 建立連線並發送請求的程式實例 * openai.ChatCompletion.create:舊版 SDK 呼叫聊天生成的函式 * openai.chat.completions.create:新版 SDK 使用的函式名稱 * Playground(互動測試平台):線上環境,可快速測試提示與模型行為 * System Role(系統角色):設定模型行為的初始指令,例如「你是一個諷刺助理」 * User Role(使用者角色):使用者輸入的訊息或問題 * Assistant Role(助理角色):模型根據上下文生成的回覆 * Sarcasm Prompt(諷刺提示):一種系統行為設定,讓模型以諷刺方式回答 * Function Calling:讓模型呼叫程式函式,獲取結構化資料的功能 * Code Interpreter:內建 Python 環境,支援計算與數據處理 * Retrieval-Augmented Generation(RAG):檢索增強生成,結合外部知識以改善回覆品質 * NV file(.env):儲存 API Key 與環境設定的檔案 * Export API Key:臨時在終端匯出金鑰,用於當前工作階段 * Environment Variable(環境變數):系統層級的設定,用於安全存放金鑰 * API Key Injection:在程式碼中直接輸入金鑰(非安全做法) * Token-based Pricing:依據輸入與輸出 Token 數量計費的模式 * Small Prompt:短輸入提示,消耗 Token 較少 * Large Prompt:長輸入提示,會增加 Token 消耗與成本 * First Request Latency:第一次 API 呼叫時的延遲,通常比後續請求長 * Deterministic Output:設定隨機性為 0,輸出固定且一致 * Creative Output:提高溫度(temperature),產生多樣化輸出 * Error Message:API 回應的錯誤提示,指示錯誤原因 * Version Compatibility:不同 SDK 版本對應的 API 呼叫方式不同 * Model Name(模型名稱):指定要呼叫的模型,例如 "gpt-3.5-turbo" * Parameters(參數):控制輸出結果的選項(如 temperature、max\_tokens) * Prompt Engineering:設計輸入提示以影響模型輸出的技巧 * Zero-shot Prompting:不提供範例,直接讓模型生成答案 * Few-shot Prompting:提供少量範例,引導模型生成正確答案 * API Response Parsing:將 API 回應轉換為可用的程式數據格式 * DataFrame(資料框):Pandas 提供的資料結構,用於整理 API 回傳的資料 * JSON Output:API 回傳的標準格式,便於解析與處理 * Role-based Conversation:透過角色區分,維持多輪對話的上下文 * Assistant Behavior:透過系統訊息定義助理的回答風格 * Retry Logic:API 請求失敗時的重試機制 * Token Limit(詞元上限):模型可處理的最大輸入/輸出詞元數 * Billing Dashboard:OpenAI 提供的計費與用量查詢介面 * Credit Consumption(額度消耗):顯示每次 API 請求使用多少 Token * Model Deprecation:舊版模型或端點逐步淘汰的過程 * Compatibility Error:因 SDK 與 API 不相容導致的錯誤 * Session(工作階段):持續的 API 使用過程,可重複使用連線 * Debugging(除錯):找出與解決程式中 API 請求的問題 * Logging(紀錄):保存 API 請求與回應內容以便分析 * Rate Limit(速率限制):API 在時間內允許的最大請求數 * Playground View Code:Playground 產生的 Python 範例程式碼功能 * Assistant Mode(助理模式):Playground 提供的高階互動選項 * API Evolution(API 演進):不同版本之間函式命名與使用方式的變化 * Response Object(回應物件):API 呼叫後返回的完整 JSON 結構 * choices:回應中包含的候選答案清單 * index:指示每個答案在 choices 清單中的位置 * message:儲存模型生成的單一回覆(包含 role 與 content) * role:訊息角色,例如 "system"、"user"、"assistant" * content:實際的文字回覆內容 * response\["choices"]\[0]:取得第一個生成的候選答案 * response\["choices"]\[0]\["message"]:取得第一個候選答案的訊息物件 * response\["choices"]\[0]\["message"]\["content"]:提取助理的最終輸出文字 * list indexing(清單索引):使用索引號碼存取清單中的元素 * Max Tokens(最大詞元數):限制輸出回覆的最大詞元數量 * n(回覆數量):指定要生成多少個不同的候選輸出 * Multiple Completions(多重生成):同一次請求中獲得多個可能答案 * Response Type(回應類型):標示回應格式,例如 "chat.completion" * JSON Parsing(JSON 解析):將 API 回應拆解為程式可操作的資料 * Tokenizer:計算輸入與輸出所使用詞元數量的工具 * OpenAI Tokenizer:OpenAI 官方提供的詞元計算器 * Input Tokens(輸入詞元):使用者輸入提示所消耗的詞元 * Output Tokens(輸出詞元):模型回覆所產生的詞元 * Total Tokens(總詞元):輸入與輸出詞元的總和,用於計費 * Pricing per 1K Tokens:依每 1,000 詞元為單位計價 * GPT-4 Turbo Pricing:GPT-4 Turbo 模型的專屬計費方式 * GPT-3.5 Pricing:GPT-3.5 系列的專屬計費方式 * Billing Dashboard(帳務儀表板):查看 Token 用量與花費的後台 * Resource Section(資源區):平台中下載教材與範例的專區 * Enroll(註冊):加入特定教學或課程以存取資源 * Prompt(提示):傳遞給模型的輸入指令或問題 * Output Diversity(輸出多樣性):透過參數設定改變輸出內容的多樣程度 * Temperature:控制生成內容的隨機性,數值越高越有創意 * Deterministic Response(確定性回覆):低隨機性下輸出的穩定答案 * Creative Response(創造性回覆):高隨機性下產生多樣化答案 * Playground Token Counter:Playground 內建的 Token 計算顯示 * Latency(延遲):API 從請求到回覆所需的時間 * First Request Overhead(首次請求負擔):第一次呼叫 API 時較長的延遲 * Structured Output(結構化輸出):透過 Function Calling 或 JSON 格式返回的資料 * Cricket World Cup Example:展示多輸出回覆的測試案例 * Zero-shot Prompting:不提供範例,直接詢問問題 * Few-shot Prompting:給予少量範例,引導模型輸出 * Session Resource(課程資源):課程中提供的 Notebook、程式碼與文件 * Link Sharing(連結分享):講師提供的 Notebook 與平台資源 URL * Token-based Billing(詞元計費):依據輸入與輸出詞元計算成本 * Free Tier(免費額度):新帳號可獲得的試用 Token 額度 * External Models(外部模型):如 Hugging Face 或 AI21 Studio 的替代方案 * Jurassic Model(AI21 Studio 提供):可替代 GPT 的大型語言模型 * Stable Diffusion:文字生成圖像的深度學習模型 * Text-to-Image Generation:將文字描述轉換為圖像 * Image-to-Video Generation:由圖像生成影片的 AI 技術 * Vector Database:存儲與檢索 Embedding 向量的資料庫,用於 RAG * LangChain:整合 LLM 與外部工具的開源框架