跳到主要內容

指定 OpenCode 使用 llama.cpp 上的 SLM

Jetson Orin Nano 成功用 llama.cpp 運行 gemma-4-E2B. 測試 透過SLM 來編程, 以下是讓OpenCode 可以調用 SLM 的設定.

cat opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "llama.cpp": {
      "npm": "@ai-sdk/openai-compatible",
          "name": "llama-server (local)",
      "options": {
        "baseURL": "http://SERVER_IP_ADDRESS:8080/v1"
      },
      "models": {
          "gemma-4-E2B-it-UD-Q4_K_XL": {
              "name": "gemma-4-E2B-it-UD-Q4_K_XL",
              "limit": {
                  "context": 100000,
                  "output": 65536
              }
          }
      }
    }
  }
}

結論, SLM 的不夠聰明,比方說,「開啓一個檔案隨機跳到某一行, 讀15行出來」的做法,就有差異:

SLM(全部讀進記憶體): - read_text().splitlines() 或 [line for line in f] 遍歷所有行並存成列表,再 random.sample 抽 15 行 - 記憶體 O(N),檔案越大越佔用

LLM(seek 隨機跳轉):

  • 只取檔案總大小 → 隨機選一個位元偏移 → 跳過去校準到行首 → 直接讀 15 個非空行
  • 記憶體 O(15),與檔案大小完全無關

留言