Interpreter 是 [[Obsidian Web Clipper 簡介|Web Clipper]] 的一項功能,可讓你使用自然語言與網頁互動。Interpreter 能協助你擷取並修改想要儲存至 Obsidian 的資料。例如:
- 擷取特定的文字片段。
- 摘要或解釋資訊。
- 將文字從一種格式轉換為另一種格式。
- 將文字翻譯為不同語言。
Interpreter 運用語言模型來處理網頁上的資訊,並透過[[變數]]回傳結果,你可以將這些變數加入到你的 [[Obsidian Web Clipper/模板|Web Clipper 模板]]中。
<div style="padding:62.29% 0 0 0;position:relative;"><div class="interface" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe src="https://fast.wistia.net/embed/iframe/8j5qu8twj1?web_component=true&seo=false" title="2026-04-22 Video" allow="autoplay; fullscreen" allowtransparency="true" frameborder="0" scrolling="no" class="wistia_embed" name="wistia_embed" width="100%" height="100%"></iframe></div></div>
## 提示詞範例
提示詞使用[[變數|變數]]語法 `{{"your prompt"}}`。你可以將此語法用於任何自然語言查詢,例如:
- `{{"a summary of the page"}}` 擷取頁面摘要。
- `{{"a three bullet point summary, translated to French"}}` 擷取頁面的三個要點,並翻譯成法文。
- `{{"un resumé de la page en trois points"}}` 使用法文提示詞擷取三個要點。
提示詞的輸出結果可以透過[[過濾設定]]進一步處理。過濾設定會在從模型收到提示詞回應後才進行處理。例如:`{{"a summary of the page"|blockquote}}` 會將回應轉換為區塊引用。
## 開始使用
Interpreter 幾乎適用於任何語言模型提供者,包括可在你的裝置上私密運行的選項。設定 Interpreter 的步驟:
1. 前往 Web Clipper 設定中的 **Interpreter** 區段。
2. 開啟 **Enable Interpreter**。
3. 設定你的提供者與模型,請參閱下方的[[解讀網頁#模型|模型]]區段。
4. 將[[變數|提示詞變數]]新增至你的[[Obsidian Web Clipper/模板|模板]]中。
5. 如果你的模板包含提示詞變數,當你[[擷取網頁|擷取頁面]]時,Interpreter 區段會顯示出來。點選 **interpret** 以處理提示詞變數。
## 運作方式
當 Interpreter 已啟用*且*你的模板包含[[變數#提示詞變數|提示詞變數]]時,擴充功能視窗中會在 **Add to Obsidian** 按鈕上方顯示新的 Interpreter 區段。此區段可讓你選擇模型並對當前頁面執行 Interpreter。
當你點選 **interpret** 時,Interpreter 會將頁面內容連同模板中的*所有*提示詞一併以單一請求發送至你選擇的模型。根據你選擇的模型提供者,這可以是外部呼叫或在你的裝置本機執行。模型會根據頁面內容評估你的提示詞,並回傳回應結果。接著 Interpreter 會將提示詞變數替換為回應資料。
整個過程可能只需幾毫秒,也可能超過 30 秒,取決於你使用的模型以及處理的資料量。
## 上下文
*上下文*一詞是指 Interpreter 用來處理提示詞的頁面資料。上下文越小,Interpreter 執行越快。
預設情況下,Interpreter 使用整個頁面的 HTML 作為上下文,但這可能會使提示詞處理變慢且產生不必要的費用。
你可以在 Interpreter 的**進階設定**中覆寫預設上下文,並為每個[[Obsidian Web Clipper/模板|模板]]定義上下文。
若要定義更精確的上下文,請使用[[變數#選擇器變數|選擇器變數]](或其他變數類型)來解讀頁面的特定區段。例如,你可以在模板的 Interpreter 上下文中使用以下選擇器變數:
```
{{selectorHtml:#main}}
```
這樣只會對網頁中的 `#main` 元素執行 Interpreter(如果該元素存在的話)。[[過濾設定#HTML 處理|HTML 處理過濾設定]]如 `remove_html`、`strip_tags` 和 `strip_attr` 可用於進一步減少上下文長度並加速處理。
## 模型
> [!warning] 隱私
> 使用第三方模型提供者即表示你同意其條款與隱私政策。Interpreter 的請求會直接發送至你選擇的提供者。Obsidian 不會蒐集或儲存任何關於你請求的資料。
### 預設提供者
Interpreter 包含數個預設提供者。若要使用這些提供者,你需要一組 API 金鑰,可透過登入提供者的帳戶取得。你還需要決定要使用哪些模型。
| 提供者 | API 金鑰 | 模型 |
| ------------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Anthropic | [API 金鑰](https://console.anthropic.com/settings/keys) | [模型](https://docs.anthropic.com/en/docs/about-claude/models) |
| Azure OpenAI | [API 金鑰](https://oai.azure.com/portal/) | [模型](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models) |
| DeepSeek | [API 金鑰](https://platform.deepseek.com/api_keys) | [模型](https://api-docs.deepseek.com/quick_start/pricing) |
| Google Gemini | [API 金鑰](https://aistudio.google.com/apikey) | [模型](https://ai.google.dev/gemini-api/docs/models/gemini) |
| Hugging Face | [API 金鑰](https://huggingface.co/settings/tokens) | [模型](https://huggingface.co/models?pipeline_tag=text-generation&sort=trending) |
| Meta | [API 金鑰](https://llama.developer.meta.com) | [模型](https://llama.developer.meta.com/docs/models) |
| Ollama | 無需 | [模型](https://ollama.com/search) |
| OpenAI | [API 金鑰](https://platform.openai.com/api-keys) | [模型](https://platform.openai.com/docs/models) |
| OpenRouter | [API 金鑰](https://openrouter.ai/settings/keys) | [模型](https://openrouter.ai/models) |
| Perplexity | [API 金鑰](https://www.perplexity.ai/settings/api) | [模型](https://docs.perplexity.ai/guides/model-cards) |
| xAI Grok | [API 金鑰](https://console.x.ai/team/default/api-keys) | [模型](https://docs.x.ai/docs/models) |
### 選擇模型
一般來說,我們建議在 Web Clipper 中使用小型模型,因為它們速度較快,且在此任務中表現相當準確。較小型模型的範例包括 **Anthropic 的 Claude Haiku**、**Google Gemini Flash**、具有 3B 或 8B 參數的 **Llama**,或 **OpenAI 的 Mini** 系列模型。
### 自訂提供者與模型
若要新增自訂提供者和/或模型,請前往 Web Clipper **[[設定]]** → **Interpreter**:
- **Add provider** 用於設定預設和自訂提供者。
- **Add model** 用於設定預設和自訂模型。
新增自訂提供者時,我們建議你使用其 chat completions 端點作為 **Base URL**——通常以 `/chat/completions` 結尾。
### 本機模型
Interpreter 可以使用本機模型,提供更高的隱私性和離線相容性。有多種執行本機模型的選項。其中最容易設定的是 Ollama。
#### Ollama
[Ollama](https://ollama.com/) 可讓你在裝置上本機且私密地執行語言模型。
下載並安裝 Ollama 後,在 Interpreter 設定中使用 **Add provider** 新增 Ollama。Ollama 不需要 API 金鑰。然後從[模型列表](https://ollama.com/search)中選擇一個模型。例如,如果你想使用 [Llama 3.2](https://ollama.com/library/llama3.2),請點選 **Add model**,然後:
- **Provider:** Ollama
- **Display name:** Llama 3.2,此值可自訂。
- **Model ID:** `llama3.2`,必須與 Ollama 的模型 ID 完全一致。
**啟動 Ollama 伺服器**
若要讓瀏覽器擴充功能與 Ollama 互動,你必須在執行伺服器時[給予明確的指示](https://github.com/ollama/ollama/issues/2308),否則會看到 `403` 錯誤。
關閉 Ollama 應用程式,然後在終端機中執行以下命令。如果你使用的不是 Chrome 或 Firefox,請將協定更改為你瀏覽器的擴充功能協定。
```
OLLAMA_ORIGINS=moz-extension://*,chrome-extension://*,safari-web-extension://* ollama serve
```
然後以正常方式使用 Ollama 執行你的模型,例如:
```
ollama run llama3.2
```
**上下文長度**
Ollama 的上下文視窗預設為 2048 個 token。這是訊息和回應的最大 token 數量。擷取較長的網頁時,你很容易超過此限制。Ollama 會靜默失敗並回傳不相關的結果。一些解決方案:
- 增加 Ollama 的 `num_ctx` 參數。請注意,較長的上下文需要更多記憶體。
- 在模板中使用[[#上下文]]欄位提供更精確的頁面區段,或使用[[過濾設定|過濾設定]]修剪上下文,例如 `{{content|slice:0,1000}}`。