fix(validation): respect settings-bound provider and correct multimodal heuristic
This commit is contained in:
@@ -74,7 +74,7 @@ def test_render_prompt_replaces_known_placeholders():
|
|||||||
def test_is_multimodal_model_detects_known_vision_models():
|
def test_is_multimodal_model_detects_known_vision_models():
|
||||||
assert is_multimodal_model("gpt-4o") is True
|
assert is_multimodal_model("gpt-4o") is True
|
||||||
assert is_multimodal_model("claude-3-5-sonnet") is True
|
assert is_multimodal_model("claude-3-5-sonnet") is True
|
||||||
assert is_multimodal_model("stepfun/step-3.5-flash:free", "openrouter") is True
|
assert is_multimodal_model("stepfun/step-3.5-flash:free", "openrouter") is False
|
||||||
assert is_multimodal_model("text-only-model") is False
|
assert is_multimodal_model("text-only-model") is False
|
||||||
# [/DEF:test_is_multimodal_model_detects_known_vision_models:Function]
|
# [/DEF:test_is_multimodal_model_detects_known_vision_models:Function]
|
||||||
|
|
||||||
|
|||||||
@@ -161,13 +161,9 @@ def is_multimodal_model(model_name: str, provider_type: Optional[str] = None) ->
|
|||||||
"internvl",
|
"internvl",
|
||||||
"qwen-vl",
|
"qwen-vl",
|
||||||
"qwen2-vl",
|
"qwen2-vl",
|
||||||
"stepfun/step-3.5",
|
|
||||||
)
|
)
|
||||||
if any(marker in token for marker in multimodal_markers):
|
if any(marker in token for marker in multimodal_markers):
|
||||||
return True
|
return True
|
||||||
# OpenRouter model ids are heterogeneous; keep permissive path for known StepFun family.
|
|
||||||
if provider == "openrouter" and token.startswith("stepfun/step-3.5"):
|
|
||||||
return True
|
|
||||||
return False
|
return False
|
||||||
# [/DEF:is_multimodal_model:Function]
|
# [/DEF:is_multimodal_model:Function]
|
||||||
|
|
||||||
|
|||||||
@@ -51,30 +51,11 @@
|
|||||||
validatingIds = new Set(validatingIds);
|
validatingIds = new Set(validatingIds);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// TODO: Get provider_id from settings or prompt user
|
|
||||||
// For now, we assume a default provider or let the backend handle it if possible,
|
|
||||||
// but the plugin requires provider_id.
|
|
||||||
// In a real implementation, we might open a modal to select provider if not configured globally.
|
|
||||||
// Or we pick the first active one.
|
|
||||||
|
|
||||||
// Fetch active provider first
|
|
||||||
const providers = await api.fetchApi("/llm/providers");
|
|
||||||
const activeProvider = providers.find((p: any) => p.is_active);
|
|
||||||
|
|
||||||
if (!activeProvider) {
|
|
||||||
toast(
|
|
||||||
"No active LLM provider found. Please configure one in settings.",
|
|
||||||
"error",
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await api.postApi("/tasks", {
|
await api.postApi("/tasks", {
|
||||||
plugin_id: "llm_dashboard_validation",
|
plugin_id: "llm_dashboard_validation",
|
||||||
params: {
|
params: {
|
||||||
dashboard_id: dashboard.id.toString(),
|
dashboard_id: dashboard.id.toString(),
|
||||||
environment_id: environmentId,
|
environment_id: environmentId,
|
||||||
provider_id: activeProvider.id,
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user