feat: Add model version control func

This commit is contained in:
Fayche
2025-01-13 20:26:39 +08:00
parent cf4d5fe3c2
commit a8dee2fc41
3 changed files with 78 additions and 74 deletions
+26
View File
@@ -0,0 +1,26 @@
[qwen-max]
qwen-max-latest
qwen-max-2024-09-19
qwen-max-2024-04-28
qwen-max-2024-04-03
qwen-max-2024-01-07
[qwen-plus]
qwen-plus-latest
qwen-plus-2024-11-27
qwen-plus-2024-11-25
qwen-plus-2024-09-19
qwen-plus-2024-08-06
qwen-plus-2024-07-23
qwen-plus-2024-06-24
qwen-plus-2024-02-06
[qwen-turbo]
qwen-turbo-latest
qwen-turbo-2024-11-01
qwen-turbo-2024-09-19
qwen-turbo-2024-06-24
qwen-turbo-2024-02-06
[qwen-long]
qwen-long
+11
View File
@@ -0,0 +1,11 @@
[qwen-vl-max]
qwen-vl-max-latest
qwen-vl-max-2024-11-19
qwen-vl-max-2024-10-30
qwen-vl-max-2024-08-09
qwen-vl-max-2024-02-01
[qwen-vl-plus]
qwen-vl-plus-latest
qwen-vl-plus-2024-08-09
qwen-vl-plus-2023-12-01
+41 -74
View File
@@ -20,78 +20,55 @@ def get_image_url(image):
return image_name
def get_model_versions(model_type):
model_versions = []
current_group = None
model_versions_file = f"model_versions/{model_type}.txt"
with open(model_versions_file, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if not line or line.startswith("#"):
continue
if line.startswith("[") and line.endswith("]"):
current_group = line[1:-1]
continue
model_versions.append(line)
return model_versions
class DashscopeLLMLoader:
def __init__(self):
pass
@classmethod
def INPUT_TYPES(cls):
model_versions = get_model_versions("llm")
return {
"required": {
"model_type": (
["qwen_max", "qwen_plus", "qwen_turbo", "qwen_long"],
{"default": "qwen_max"},
"model_version": (
model_versions,
{
"default": (
model_versions[0] if model_versions else "qwen-max-latest"
)
},
),
"qwen_max": (
[
"qwen-max",
"qwen-max-latest",
"qwen-max-2024-09-19",
"qwen-max-2024-04-28",
"qwen-max-2024-04-03",
"qwen-max-2024-01-07",
],
{"default": "qwen-max-latest"},
),
"qwen_plus": (
[
"qwen-plus",
"qwen-plus-latest",
"qwen-plus-2024-11-27",
"qwen-plus-2024-11-25",
"qwen-plus-2024-09-19",
"qwen-plus-2024-08-06",
"qwen-plus-2024-07-23",
"qwen-plus-2024-06-24",
"qwen-plus-2024-02-06",
],
{"default": "qwen-plus-latest"},
),
"qwen_turbo": (
[
"qwen-turbo",
"qwen-turbo-latest",
"qwen-turbo-2024-11-01",
"qwen-turbo-2024-09-19",
"qwen-turbo-2024-06-24",
"qwen-turbo-2024-02-06",
],
{"default": "qwen-turbo-latest"},
),
"qwen_long": (["qwen_long"], {"default": "qwen_long"}),
}
}
FUNCTION = "select_model"
OUTPUT_NODE = True
RETURN_TYPES = ("STRING",)
CATEGORY = "dashscope"
def select_model(
self, model_type, qwen_max, qwen_plus, qwen_turbo, qwen_long
) -> tuple[str]:
if model_type == "qwen_max":
model_version = qwen_max
elif model_type == "qwen_plus":
model_version = qwen_plus
elif model_type == "qwen_turbo":
model_version = qwen_turbo
elif model_type == "qwen_long":
model_version = qwen_long
else:
raise ValueError(f"Invalid model type: {model_type}")
def select_model(self, model_version) -> tuple[str]:
print("Selected model version:", model_version)
if not model_version:
raise ValueError("Model version cannot be empty")
return (model_version,)
@@ -101,22 +78,18 @@ class DashscopeVLMLoader:
@classmethod
def INPUT_TYPES(cls):
model_versions = get_model_versions()
return {
"required": {
"model_version": (
[
"qwen-vl-max",
"qwen-vl-max-latest",
"qwen-vl-max-2024-11-19",
"qwen-vl-max-2024-10-30",
"qwen-vl-max-2024-08-09",
"qwen-vl-max-2024-02-01",
"qwen-vl-plus",
"qwen-vl-plus-latest",
"qwen-vl-plus-2024-08-09",
"qwen-vl-plus-2023-12-01",
],
{"default": "qwen-vl-max-latest"},
model_versions,
{
"default": (
model_versions[0]
if model_versions
else "qwen-vl-max-latest"
)
},
),
}
}
@@ -187,7 +160,6 @@ class DashscopeModelCaller:
)
else:
print("Call the VLM model")
print("Model version is: ", model_version)
image_url = get_image_url(image)
messages = [
{"role": "system", "content": system_prompt},
@@ -209,10 +181,5 @@ class DashscopeModelCaller:
if response is None:
raise ValueError("API call returned None")
print("API Response:", response)
if "output" not in response:
raise ValueError(f"Unexpected response format. Response: {response}")
message_content = response.output.choices[0].message.content[0]["text"]
return (message_content,)