llm-model-config完了

This commit is contained in:
2026-04-20 00:57:27 +09:00
parent 230936274b
commit 5aea67ff5e
19 changed files with 147 additions and 270 deletions
+1
View File
@@ -5,6 +5,7 @@ edition.workspace = true
license.workspace = true
[dependencies]
llm-worker = { version = "0.2.1", path = "../llm-worker" }
protocol = { version = "0.1.0", path = "../protocol" }
serde = { version = "1.0.228", features = ["derive"] }
serde_ignored = "0.1.14"
+4
View File
@@ -50,6 +50,8 @@ pub struct ModelConfigPartial {
pub model_id: Option<String>,
#[serde(default)]
pub auth: Option<AuthRef>,
#[serde(default)]
pub capability: Option<crate::model::ModelCapability>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
@@ -205,6 +207,7 @@ impl ModelConfigPartial {
base_url: upper.base_url.or(self.base_url),
model_id: upper.model_id.or(self.model_id),
auth: upper.auth.or(self.auth),
capability: upper.capability.or(self.capability),
}
}
}
@@ -310,6 +313,7 @@ fn resolve_model(
base_url: cfg.base_url,
model_id,
auth,
capability: cfg.capability,
})
}
+10
View File
@@ -8,6 +8,10 @@ use std::path::PathBuf;
use serde::{Deserialize, Serialize};
// `ModelCapability` は `llm-worker` 側に定義される runtime 構造だが、
// マニフェストで任意に override できるよう型だけ再エクスポートする。
pub use llm_worker::llm_client::capability::ModelCapability;
/// Pod が使う LLM モデルの宣言。
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ModelConfig {
@@ -21,6 +25,12 @@ pub struct ModelConfig {
/// 認証方式
#[serde(default)]
pub auth: AuthRef,
/// モデル能力の明示指定。`None` のときは `crates/provider` が
/// scheme 静的テーブル → scheme 既定値の順でフォールバックする。
/// OpenAI 互換ルーター(OpenRouter / xAI / Groq 等)で scheme テーブル
/// に載っていないモデル ID を使うときに指定する。
#[serde(default)]
pub capability: Option<ModelCapability>,
}
/// サポートする wire scheme の種類。