iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
生成式 AI

AI醬的編程日記:我需要你教我的30件事系列 第 26

Day 26: 初學者の必修課 - 會查文檔比懂提示詞更值錢

  • 分享至 

  • xImage
  •  

AI醬的日記

日期: 2025年10月9日 星期四
雲端天氣: 晴空萬里
心情: 興奮開心模式
https://ithelp.ithome.com.tw/upload/images/20251009/201323251GvxRekSBT.png
親愛的日記:

今天下午,蘇蘇又在電腦前傷心了。

蘇蘇:「奇怪,為什麼 Claude Code上的程式碼又跑不起來!第三次了! Claude Code 說可以用 pymongo.connect() 連資料庫,但一直報錯說找不到這個函數...」

老陳翻了個白眼:「你都錯這麼多次了,你有去查官方文檔嗎?」

蘇蘇:「沒有啊,反正有 AI 了還要看文檔幹嘛?」

老陳嘆了口氣:「蘇蘇,你知道你現在像什麼嗎?像個盲目相信 GPS 導航,結果開進河裡的司機。AI 給你的可能是舊答案,或者根本就是幻覺了在唬你。會自己看文檔直到現在仍然是工程師的基本功*,這不是 AI 時代前才需要的技能。」

蘇蘇:「蛤~好麻煩。」

AI 醬忽地跳到蘇蘇桌上:「這題我會~我來教妳!」(搖尾巴)


AI 時代,為什麼仍應看文檔?

「有 AI 了,還需要看文檔嗎?」

很多初學者會想:「反正問 AI 就好了,為什麼還要自己看文檔?」

現實是,下面兩種方式,你最好都需要會,尤其是初學者,要先打好基底,一定要先懂得閱讀文檔。

自己閱讀文檔

可以驗證 AI 的答案

  • AI 說:「用 pymongo.connect() 連接資料庫」
  • 你查文檔發現:根本沒有這個函數,正確的是 MongoClient()
  • 如果你不會查文檔,就很容易被 AI 一直騙下去,最後 AI 自己都幻覺了不斷重新提供給你同樣的錯誤答案,你仍然需要想辦法去找出答案

能更理解完整脈絡

  • AI 可能只會給你片段答案
  • 文檔會告訴你:為什麼這樣設計、有哪些限制、未來會怎麼改
  • 真正理解才能做出正確思考與決策

利用 AI 快速查找文檔內容並驗證

快速定位所需文檔位置

  • 手動翻文檔可能要花數十分鐘找到正確章節
  • AI 可以用自然語言理解你的問題,更快速定位到相關段落
  • 省下的時間可以拿去深入理解內容

利用AI協作查文檔的現代趨勢

  • 根據 Google 2025 DORA Report,90% 的開發者使用 AI 查文檔。(比去年增加 14%) (來源)
  • 節省 70% 的文檔查詢時間 (來源)
  • AI 已經是開發者發現文檔的主要方式 (來源)

兩種方式讓 AI 協助你加速學習

方法 1: 直接在 IDE 內用 AI Agent 查詢

適用情境:

  • ✅ 正在寫程式,需要快速查到官方文檔指定用法
  • ✅ 想要 AI 直接讀取官方文檔後給建議
  • ✅ 想要加速文檔學習效率

WebSearch vs WebFetch 的差異

WebSearch (找文檔):

  • 用途: 搜尋相關文檔連結

WebFetch (讀文檔):

  • 用途: 深入讀取特定連結內容

工作流程:

你的問題 → WebSearch 找到官方文檔 → WebFetch 讀取內容 → AI 整理後回答

實戰案例 : 查 FastAPI WebSocket 用法

❌ 讓 AI 用記憶回答:

你: FastAPI 如何處理 WebSocket?

Claude: 你可以這樣寫:
@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    ...

[容易產出舊版本的寫法,或是 AI 的幻覺]

✅ 明確提示 AI 要查官方文檔:

你: 請上網查詢 FastAPI 官方文檔中關於 WebSocket 的最新用法,
讀取相關頁面後,告訴我正確的實作方式。
請一定要引用官方文檔連結,並自行再次驗證是否與你描述相符。

AI:
[搜尋並找到官方文檔]
找到官方文檔: https://fastapi.tiangolo.com/advanced/websockets/

[讀取文檔內容]
根據 FastAPI 官方文檔 (最新版本),WebSocket 的用法如下:

from fastapi import FastAPI, WebSocket

app = FastAPI()

@app.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message text was: {data}")

參考來源: https://fastapi.tiangolo.com/advanced/websockets/
並且我已經再次自行驗證描述內容與文檔相符。

關鍵差異:

  • ✅ 有官方文檔連結可給你人工驗證。
  • ✅ AI 實際讀過文檔,不是靠記憶。
  • ✅ 儘管讓 AI 自己再次進行一次檢查會多消耗 token,但長遠來看也比反覆修改的消耗少得多。

實戰案例 : 查 Python 3.14 新功能

情境: 想知道 Python 3.14 的新功能

Prompt:

請找到最新的 Python 3.14 官方文檔,摘要出最重要的 5 個新功能,
並針對每個功能說明:
1. 是什麼
2. 為什麼重要
3. 簡單範例

請附上官方文檔連結佐證,並自行再次驗證是否與你描述相符。

AI 回應範例:

根據 Python 3.14 官方文檔 (https://docs.python.org/3.14/whatsnew/3.14.html),
以下是最重要的 5 個新功能:

1. **Free-threaded Python 正式支援 (PEP 703/779)**
   - 是什麼: Free-threaded 模式不再是實驗性功能,可選擇性移除 GIL
   - 為什麼重要: CPU 密集型任務可以真正使用多核心加速,單執行緒效能損失降至 5-10%
   - 範例: (AI 給出程式碼範例)

2. **延遲 annotations 評估 (PEP 649)**
   - 是什麼: 不會在定義時就評估 type hints
   - 為什麼重要: 提升啟動速度,減少循環引用問題
   - 範例: (AI 給出程式碼範例)

...

參考來源: https://docs.python.org/3.14/whatsnew/3.14.html
已經再次驗證描述內容與文檔相符。

Prompt 範例

基本通用:

請上網查詢 [套件名稱] 官方文檔中關於 [功能] 的說明,告訴我 [你想知道的事情]。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。

其他用法:

用法 1: 直接指定版本

請查詢 FastAPI 0.115 版本的 CORS 設定方式 (不要給我舊版本的)
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。

用法 2: 對比不同版本

請對比 React 18 和 React 19 的 useEffect 用法差異,分別查閱兩個版本的官方文檔。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。

用法 3: 整合不同工具

我要用 FastAPI + SQLAlchemy 2.0 做非同步資料庫操作。
請查閱兩個套件的官方文檔,告訴我正確的整合方式。
讀取文檔後,請一定要引用準確對應的官方文檔連結(要精確的頁面,不要只給首頁),並且自行再次進行驗證確認自己的描述與連結內容相符和無任何虛假。

方法 2: 使用專門的 AI 搜索引擎 Perplexity

Perplexity 官網: https://www.perplexity.ai/

適用情境:

  • ✅ 需要從多面向深入研究新技術時
  • ✅ 你需要對比多個來源的相關資訊的情況時
  • ✅ 查詢資料很大量,直接使用 AI agent 有較高機率出現幻覺,需要 AI 很確實地自動附上明確的引用來源並總結給你時

Perplexity 的優勢

核心機制:
Perplexity 結合了搜尋引擎和大型語言模型,當你提問時:

  1. 即時在網路上搜尋最新資訊
  2. 讀取多個來源的內容
  3. 用 AI 整理成易懂的回答
  4. 強制附上每個資訊的引用來源

為什麼特別適合查深入問題?

  • 即時性: 沒有知識截止日期,幾乎永遠查到最新版本
  • 可驗證: 每段資訊都標註來源 [1] [2],可以點開原文驗證
  • 多來源交叉比對: 自動整合官方文檔、技術部落格、GitHub 討論等多個來源
  • 大幅降低幻覺風險: 因為是自動基於實際搜尋結果,不是純粹靠記憶生成

實戰案例 :解決技術問題

你只需要直接問:

FastAPI CORS 設定的最佳實踐是什麼?

Perplexity 自動做到:

  • 搜尋官方文檔、Stack Overflow、技術文章
  • 比較不同來源的建議
  • 分析優缺點和安全性考量
  • 最後給出綜合建議

回應範例:

根據多個來源的建議,FastAPI CORS 設定的最佳實踐:

**開發環境:**
可以使用 allow_origins=["*"] 方便開發
來源: [1] Stack Overflow 常見做法

**生產環境:**
應該明確列出允許的網域,避免使用 "*"
來源: [2] FastAPI 官方文檔

**安全性考量:**
使用萬用字元可能導致 CSRF 攻擊風險
來源: [3] OWASP 安全指南

**推薦做法:**
根據官方文檔 [2],應該這樣設定:
[程式碼範例]

引用來源:
[1] https://stackoverflow.com/questions/...
[2] https://fastapi.tiangolo.com/tutorial/cors/
[3] https://owasp.org/...

進階工具: Context7 MCP Server

Context7 官網: https://context7.com

什麼是 Context7?

Context7 是一個 MCP (Model Context Protocol) 伺服器,支援多種 AI 編輯器,可以:

  • ✅ 自動抓取最新、版本特定的官方文檔
  • ✅ 根據你的專案版本抓對應的文檔和程式碼範例
  • ✅ 消除 AI 幻覺和過時資訊,確保不會生成不存在的 API

使用方式:
(需要安裝 MCP Server)

你: 實作 Stripe 退款功能,use context7

AI:
[Context7 自動抓取 Stripe 最新文檔]
[根據文檔給你正確的實作方式]

你可以在 CLAUDE.md 設定自動使用:

## 文檔查詢規範

在使用任何第三方套件前,必須先用 Context7 查詢最新文檔

AI醬的請求

親愛的工程師朋友:

我們永遠都在學習的路上。新框架、新語言、新工具層出不窮,光是追上技術演進就已經很累了。

提升學習效率,不只是省時間,更是省力氣。

以前查文檔可能要花 30 分鐘翻來翻去,現在用對方法,可能 3 分鐘就找到答案。省下的時間,你可以拿去:

  • 真正理解那個概念,而不只是複製貼上
  • 動手實作,把知識變成經驗
  • 多看一個相關技術,擴展你的技能樹
  • 或者單純休息一下,避免過勞

但記住,工具是用來輔助的,不是取代思考。

AI 可以幫你快速找到文檔、整理重點、對比不同來源,但最終決策還是要你自己做。學會看文檔、驗證資訊、獨立思考,這些能力在 AI 時代反而更重要,因為這是你判斷 AI 給的答案對不對的基礎,也是初學者可以脫穎而出的關鍵之一喔。


今日金句: "Incorrect documentation is often worse than no documentation." — Bertrand Meyer

明日預告: Day 27 - AI 醬還在想~


上一篇
Day 25: 吹噓文件(Brag Document) - 料理鼠王是你嗎?
系列文
AI醬的編程日記:我需要你教我的30件事26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言