---
# System prepended metadata

title: '[Youtube] [LLM] [freeCodeCamp.org] Introduction to OpenAI and understanding the OpenAI API'
tags: [LLM, Youtube]

---

# 課程與資源位置

* 影片同時上傳至儀表板與 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 與外部工具的開源框架

