Skip to content

Latest commit

 

History

History
171 lines (131 loc) · 6.04 KB

File metadata and controls

171 lines (131 loc) · 6.04 KB

LLM Metadata

LLM メタデータを発見・統合するための軽量な「静的 API」。ライブ: GitHub Pages · Cloudflare Pages

English | 简体中文 | 日本語

高スループットに親和的な静的インターフェース: 変更時のみ再ビルドし、GitHub Pages から静的 JSON を配信します。

データソース: models.dev/api.json + BaseLLM コミュニティの貢献

クイックスタート

要件: Node.js 18+(ネイティブ fetch を使用)

npm install
npm run build

出力: dist/api/

スクリプト:

  • npm run build — TypeScript をコンパイルし、API を構築(変更がなければ無変更)
  • npm run build:force — すべてのファイルを強制再生成
  • npm run check — 変更検出のみ(CI 用)
  • npm run clean.cachedist を削除
  • npm run compile — TypeScript のみコンパイル
  • npm run dev — ウォッチモードでコンパイル

国際化(ドキュメントと API)

ドキュメント i18n は i18n/docs/*.jsoni18n/locales.json(mkdocs-static-i18n)で管理し、API i18n は i18n/api/*.jsondata/overrides/** で管理します。

ディレクトリ構成

i18n/
  locales.json          # 言語一覧(唯一の信頼できるソース)
  docs/
    en.json             # ドキュメント UI 文字列(英語がフォールバック)
    zh.json
    ja.json
  api/
    en.json             # 機能ラベル + 既定の説明テンプレート
    zh.json
    ja.json
docs/
  en/ index.md data.md
  zh/ index.md data.md
  ja/ index.md data.md

言語を追加する(例: fr

  1. i18n/locales.json に追加:
{
  "locales": [
    { "locale": "en", "default": true },
    { "locale": "zh" },
    { "locale": "ja" },
    { "locale": "fr" }
  ]
}
  1. i18n/docs/en.json をコピーして i18n/docs/fr.json を作成し翻訳
  2. i18n/api/en.json をコピーして i18n/api/fr.json を作成し翻訳(機能ラベル + 既定説明テンプレート)
  3. docs/fr/index.md を作成し、空の docs/fr/data.md を用意(ビルドで自動生成)
  4. 任意: mkdocs.ymlfrnav_translations を追加
  5. ビルド: npm run build

API i18n の詳細

  • 機能ラベル(capability labels)は i18n/api/<locale>.json から取得し、以下に適用されます:
    • 明示的な model.tags
    • ブール能力: tools / files / reasoning / temperature / open_weights
    • モダリティ由来タグ: vision / audio
  • ローカライズ済み API 出力:
    • dist/api/i18n/<locale>/all.json
    • dist/api/i18n/<locale>/providers.json, index.json
    • 分割ファイル: dist/api/i18n/<locale>/{providers,models}/...
  • NewAPI ペイロード:
    • 英語(安定版): dist/api/newapi/{vendors.json,models.json}
    • ローカライズ版: dist/api/i18n/<locale>/newapi/{vendors.json,models.json}
  • 既定の説明テンプレート(ロケールごと):
    • i18n/api/<locale>.jsondefaults.model_description
    • プレースホルダ: ${modelName}, ${providerId}
    • あるモデルの説明が英語の既定説明と一致する場合、ローカライズ構築ではロケールのテンプレートに置換

ドキュメント i18n(MkDocs)

  • 文字列は i18n/docs/<locale>.json から取得(欠落キーは英語へフォールバック)
  • npm run builddocs/<locale>/data.md を自動生成
  • プレビュー: pip install -r requirements.txt の後、mkdocs serve

更新モード

  • 手動: data/** を編集して main にプッシュ → CI がビルド&公開
  • 自動: スケジュール取得で差分検出、ポリシーで許可されたモデルのみ増分更新

GitHub Actions トリガー:

  • pushscripts/**, data/** 等)
  • workflow_dispatch(手動)
  • schedule(6 時間ごと)

自動更新ポリシー

設定ファイル: data/policy.json(既定で auto=true)。例:

{
  "providers": {
    "deepseek": { "auto": true },
    "xai": { "auto": true }
  },
  "models": {
    "deepseek/deepseek-reasoner": { "auto": false },
    "xai/grok-4": { "auto": true }
  }
}

モデルが auto=false の場合、自動モードは既存の静的ファイルを上書きしません(初回生成は行われます)。

オーバーライド(Overrides、ディレクトリ構成)

単一の data/overrides.json から、競合に強いディレクトリ構成へ移行しました。以下の場所に小さな JSON を置くと、ビルド時に深いマージで統合されます:

data/
  overrides/
    providers/
      <providerId>.json            # プロバイダーの上書き(lobeIcon、iconURL、name、api、doc など)
    models/
      <providerId>/<modelId>.json  # モデルの上書き(description、limit、modalities、cost、各種フラグ)
    i18n/
      providers/<providerId>.json  # 任意: プロバイダーの名前/説明のローカライズ
      models/<providerId>/<modelId>.json  # 任意: モデルの名前/説明のローカライズ

例:

プロバイダーアイコン(data/overrides/providers/openai.json):

{ "lobeIcon": "OpenAI.Color" }

モデル上書き(data/overrides/models/openai/gpt-4o.json):

{
  "description": "強力な推論を備えたマルチモーダル最適化モデル。",
  "limit": { "context": 131072, "output": 8192 },
  "modalities": { "input": ["text", "image"], "output": ["text"] },
  "reasoning": true,
  "tool_call": true,
  "attachment": false
}

注意:

  • 深いマージを適用。未指定のフィールドは保持されます。
  • モデル上書きの許可キー(サニタイズ対象): id, name, description, reasoning, tool_call, attachment, temperature, knowledge, release_date, last_updated, open_weights, modalities, limit, cost
  • 参照元は data/overrides/** のみ。