# LLM 測試檔案 { #llm-test-file }
本文件用來測試用於翻譯文件的 LLM 是否理解 `scripts/translate.py` 中的 `general_prompt`,以及 `docs/{language code}/llm-prompt.md` 中的語言特定提示。語言特定提示會附加在 `general_prompt` 後面。
此處新增的測試會提供給所有語言特定提示的設計者參考。
使用方式:
* 準備語言特定提示 - `docs/{language code}/llm-prompt.md`。
* 針對本文件做一次全新的翻譯為你想要的目標語言(例如使用 `translate.py` 的 `translate-page` 指令)。這會在 `docs/{language code}/docs/_llm-test.md` 產生翻譯檔。
* 檢查翻譯是否正確。
* 如有需要,改進你的語言特定提示、通用提示,或英文原文。
* 然後手動修正翻譯中剩下的問題,讓它成為一個好的譯文。
* 重新翻譯,並保留這份好的譯文。理想結果是 LLM 不再對該譯文做任何變更。這代表通用提示與你的語言特定提示已經盡可能完善(有時它仍可能做出幾個看似隨機的變更,原因是LLMs 並非決定性演算法)。
測試:
## 程式碼片段 { #code-snippets }
//// tab | 測試
這是一個程式碼片段:`foo`。這是另一個程式碼片段:`bar`。還有一個:`baz quux`。
////
//// tab | 資訊
程式碼片段內的內容應保持原樣。
請見 `scripts/translate.py` 中通用提示的 `### Content of code snippets` 小節。
////
## 引號 { #quotes }
//// tab | 測試
Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'".
/// note | 注意
LLM 很可能會把這段翻譯錯。重點只在於重新翻譯時是否能保留已修正的翻譯。
///
////
//// tab | 資訊
提示設計者可以選擇是否將中性引號轉換為排印引號。保留原樣也可以。
例如請見 `docs/de/llm-prompt.md` 中的 `### Quotes` 小節。
////
## 程式碼片段中的引號 { #quotes-in-code-snippets }
//// tab | 測試
`pip install "foo[bar]"`
程式碼片段中字串常值的例子:"this"、'that'。
較難的程式碼片段中字串常值例子:`f"I like {'oranges' if orange else "apples"}"`
進階:`Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"`
////
//// tab | 資訊
... 不過,程式碼片段中的引號必須保持原樣。
////
## 程式碼區塊 { #code-blocks }
//// tab | 測試
一個 Bash 程式碼範例...
```bash
# 向宇宙輸出問候
echo "Hello universe"
```
...以及一個主控台範例...
```console
$ fastapi run main.py
FastAPI Starting server
Searching for package file structure
```
...以及另一個主控台範例...
```console
// 建立目錄 "code"
$ mkdir code
// 切換到該目錄
$ cd code
```
...以及一個 Python 程式碼範例...
```Python
wont_work() # 這不會運作 😱
works(foo="bar") # 這可以運作 🎉
```
...就是這樣。
////
//// tab | 資訊
程式碼區塊中的程式碼不應修改,註解除外。
請見 `scripts/translate.py` 中通用提示的 `### Content of code blocks` 小節。
////
## 分頁與色塊 { #tabs-and-colored-boxes }
//// tab | 測試
/// info | 資訊
Some text
///
/// note | 注意
Some text
///
/// note | 技術細節
Some text
///
/// check | 檢查
Some text
///
/// tip | 提示
Some text
///
/// warning | 警告
Some text
///
/// danger | 危險
Some text
///
////
//// tab | 資訊
分頁與 `Info`/`Note`/`Warning`/等區塊,應在直線(`|`)後加入其標題的翻譯。
請見 `scripts/translate.py` 中通用提示的 `### Special blocks` 與 `### Tab blocks` 小節。
////
## 網頁與內部連結 { #web-and-internal-links }
//// tab | 測試
連結文字應被翻譯,連結位址應保持不變:
* [連結到上方標題](#code-snippets)
* [內部連結](index.md#installation){.internal-link target=_blank}
* 外部連結
* 連結到樣式
* 連結到腳本
* 連結到圖片
連結文字應被翻譯,連結位址應指向對應的翻譯版本:
* FastAPI 連結
////
//// tab | 資訊
連結應翻譯其文字,但位址需保持不變。例外是指向 FastAPI 文件網站的絕對連結,該情況下位址應指向對應的翻譯版本。
請見 `scripts/translate.py` 中通用提示的 `### Links` 小節。
////
## HTML「abbr」元素 { #html-abbr-elements }
//// tab | 測試
以下是一些包在 HTML「abbr」元素中的內容(部分為杜撰):
### abbr 提供完整詞組 { #the-abbr-gives-a-full-phrase }
* GTD
* lt
* XWT
* PSGI
### abbr 提供完整詞組與說明 { #the-abbr-gives-a-full-phrase-and-an-explanation }
* MDN
* I/O.
////
//// tab | 資訊
「abbr」元素的「title」屬性需依特定規則翻譯。
翻譯可以自行新增「abbr」元素(例如為解釋英文單字),LLM 不應移除它們。
請見 `scripts/translate.py` 中通用提示的 `### HTML abbr elements` 小節。
////
## HTML「dfn」元素 { #html-dfn-elements }
* 叢集
* 深度學習
## 標題 { #headings }
//// tab | 測試
### 開發網頁應用程式 - 教學 { #develop-a-webapp-a-tutorial }
Hello.
### 型別提示與註解 { #type-hints-and-annotations }
Hello again.
### 超類與子類別 { #super-and-subclasses }
Hello again.
////
//// tab | 資訊
標題唯一的硬性規則是保留花括號中的雜湊片段不變,以確保連結不會失效。
請見 `scripts/translate.py` 中通用提示的 `### Headings` 小節。
關於語言特定的說明,參見例如 `docs/de/llm-prompt.md` 中的 `### Headings` 小節。
////
## 文件中使用的術語 { #terms-used-in-the-docs }
//// tab | 測試
* you
* your
* e.g.
* etc.
* `foo` as an `int`
* `bar` as a `str`
* `baz` as a `list`
* 教學 - 使用者指南
* 進階使用者指南
* SQLModel 文件
* API 文件
* 自動文件
* 資料科學
* 深度學習
* 機器學習
* 相依性注入
* HTTP 基本驗證
* HTTP 摘要驗證
* ISO 格式
* JSON Schema 標準
* JSON 結構描述
* 結構描述定義
* 密碼流程
* 行動裝置
* 已棄用
* 設計的
* 無效
* 即時
* 標準
* 預設
* 區分大小寫
* 不區分大小寫
* 提供應用程式服務
* 提供頁面服務
* 應用程式
* 應用程式
* 請求
* 回應
* 錯誤回應
* 路徑操作
* 路徑操作裝飾器
* 路徑操作函式
* 主體
* 請求主體
* 回應主體
* JSON 主體
* 表單主體
* 檔案主體
* 函式主體
* 參數
* 主體參數
* 路徑參數
* 查詢參數
* Cookie 參數
* 標頭參數
* 表單參數
* 函式參數
* 事件
* 啟動事件
* 伺服器的啟動
* 關閉事件
* 生命週期事件
* 處理器
* 事件處理器
* 例外處理器
* 處理
* 模型
* Pydantic 模型
* 資料模型
* 資料庫模型
* 表單模型
* 模型物件
* 類別
* 基底類別
* 父類別
* 子類別
* 子類別
* 同級類別
* 類別方法
* 標頭
* 標頭
* 授權標頭
* `Authorization` 標頭
* 轉送標頭
* 相依性注入系統
* 相依項
* 可相依對象
* 相依者
* I/O 受限
* CPU 受限
* 並發
* 平行處理
* 多處理程序
* 環境變數
* 環境變數
* `PATH`
* `PATH` 變數
* 驗證
* 驗證提供者
* 授權
* 授權表單
* 授權提供者
* 使用者進行驗證
* 系統驗證使用者
* CLI
* 命令列介面
* 伺服器
* 用戶端
* 雲端提供者
* 雲端服務
* 開發
* 開發階段
* dict
* 字典
* 列舉
* enum
* 列舉成員
* 編碼器
* 解碼器
* 編碼
* 解碼
* 例外
* 拋出
* 運算式
* 陳述式
* 前端
* 後端
* GitHub 討論
* GitHub 議題
* 效能
* 效能優化
* 回傳型別
* 回傳值
* 安全性
* 安全性機制
* 任務
* 背景任務
* 任務函式
* 樣板
* 樣板引擎
* 型別註解
* 型別提示
* 伺服器工作進程
* Uvicorn 工作進程
* Gunicorn 工作進程
* 工作進程
* worker 類別
* 工作負載
* 部署
* 部署
* SDK
* 軟體開發工具組
* `APIRouter`
* `requirements.txt`
* Bearer Token
* 相容性破壞變更
* 錯誤
* 按鈕
* 可呼叫對象
* 程式碼
* 提交
* 情境管理器
* 協程
* 資料庫工作階段
* 磁碟
* 網域
* 引擎
* 假的 X
* HTTP GET 方法
* 項目
* 函式庫
* 生命週期
* 鎖
* 中介軟體
* 行動應用程式
* 模組
* 掛載
* 網路
* 來源
* 覆寫
* 有效負載
* 處理器
* 屬性
* 代理
* pull request
* 查詢
* RAM
* 遠端機器
* 狀態碼
* 字串
* 標籤
* Web 框架
* 萬用字元
* 回傳
* 驗證
////
//// tab | 資訊
這是一份不完整且非規範性的(多為)技術術語清單,來源為文件內容。它可能有助於提示設計者判斷哪些術語需要 LLM 的特別協助。例如當 LLM 反覆把好的翻譯改回成較差的版本,或在你的語言中對某詞的詞形變化處理有困難時。
請見例如 `docs/de/llm-prompt.md` 中的 `### List of English terms and their preferred German translations` 小節。
////