Update alphaear skills to use MiniMax as default LLM
Changes: - Added 'minimax' provider to LLM factory - Changed default LLM_PROVIDER from 'ust' to 'minimax' - Changed default LLM_MODEL from 'Qwen' to 'MiniMax-Text-01' - Updated REASONING_MODEL_PROVIDER and TOOL_MODEL_PROVIDER to minimax - Sentiment tools now prefer MINIMAX_API_KEY over UST_KEY_API - .env.example updated with MiniMax defaults
This commit is contained in:
@@ -77,7 +77,7 @@ if __name__ == "__main__":
|
||||
load_dotenv(os.path.expanduser("~/.config/opencode/.env"))
|
||||
|
||||
# 测试当前配置的模型
|
||||
p = os.getenv("LLM_PROVIDER", "ust")
|
||||
p = os.getenv("LLM_PROVIDER", "minimax")
|
||||
m = os.getenv("LLM_MODEL", "Qwen")
|
||||
|
||||
print(f"Testing {p}/{m}...")
|
||||
|
||||
@@ -5,10 +5,11 @@ from agno.models.dashscope import DashScope
|
||||
from agno.models.deepseek import DeepSeek
|
||||
from agno.models.openrouter import OpenRouter
|
||||
|
||||
|
||||
def get_model(model_provider: str, model_id: str, **kwargs):
|
||||
"""
|
||||
Factory to get the appropriate LLM model.
|
||||
|
||||
|
||||
Args:
|
||||
model_provider: "openai", "ollama", "deepseek"
|
||||
model_id: The specific model ID (e.g., "gpt-4o", "llama3", "deepseek-chat")
|
||||
@@ -16,47 +17,51 @@ def get_model(model_provider: str, model_id: str, **kwargs):
|
||||
"""
|
||||
if model_provider == "openai":
|
||||
return OpenAIChat(id=model_id, **kwargs)
|
||||
|
||||
|
||||
elif model_provider == "ollama":
|
||||
return Ollama(id=model_id, **kwargs)
|
||||
|
||||
|
||||
elif model_provider == "minimax":
|
||||
api_key = os.getenv("MINIMAX_API_KEY")
|
||||
if not api_key:
|
||||
print("Warning: MINIMAX_API_KEY not set.")
|
||||
|
||||
return OpenAIChat(
|
||||
id=model_id,
|
||||
base_url=os.getenv("MINIMAX_API_BASE", "https://api.minimax.io/v1"),
|
||||
api_key=api_key,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
elif model_provider == "deepseek":
|
||||
# DeepSeek is OpenAI compatible
|
||||
api_key = os.getenv("DEEPSEEK_API_KEY")
|
||||
if not api_key:
|
||||
print("Warning: DEEPSEEK_API_KEY not set.")
|
||||
|
||||
return DeepSeek(
|
||||
id=model_id,
|
||||
api_key=api_key,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
return DeepSeek(id=model_id, api_key=api_key, **kwargs)
|
||||
elif model_provider == "dashscope":
|
||||
api_key = os.getenv("DASHSCOPE_API_KEY")
|
||||
if not api_key:
|
||||
print("Warning: DASHSCOPE_API_KEY not set.")
|
||||
|
||||
|
||||
return DashScope(
|
||||
id=model_id,
|
||||
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
||||
api_key=api_key,
|
||||
**kwargs
|
||||
**kwargs,
|
||||
)
|
||||
elif model_provider == 'openrouter':
|
||||
elif model_provider == "openrouter":
|
||||
api_key = os.getenv("OPENROUTER_API_KEY")
|
||||
if not api_key:
|
||||
print('Warning: OPENROUTER_API_KEY not set.')
|
||||
|
||||
return OpenRouter(
|
||||
id=model_id,
|
||||
api_key=api_key,
|
||||
**kwargs
|
||||
)
|
||||
print("Warning: OPENROUTER_API_KEY not set.")
|
||||
|
||||
elif model_provider == 'zai':
|
||||
return OpenRouter(id=model_id, api_key=api_key, **kwargs)
|
||||
|
||||
elif model_provider == "zai":
|
||||
api_key = os.getenv("ZAI_KEY_API")
|
||||
if not api_key:
|
||||
print('Warning: ZAI_KEY_API not set.')
|
||||
print("Warning: ZAI_KEY_API not set.")
|
||||
|
||||
# role_map to ensure compatibility.
|
||||
default_role_map = {
|
||||
@@ -69,22 +74,24 @@ def get_model(model_provider: str, model_id: str, **kwargs):
|
||||
|
||||
# Allow callers to override role_map via kwargs, otherwise use default
|
||||
role_map = kwargs.pop("role_map", default_role_map)
|
||||
|
||||
|
||||
return OpenAIChat(
|
||||
id=model_id,
|
||||
base_url="https://api.z.ai/api/paas/v4",
|
||||
api_key=api_key,
|
||||
timeout=60,
|
||||
role_map=role_map,
|
||||
extra_body={"enable_thinking": False}, # TODO: one more setting for thinking
|
||||
**kwargs
|
||||
extra_body={
|
||||
"enable_thinking": False
|
||||
}, # TODO: one more setting for thinking
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
elif model_provider == 'ust':
|
||||
|
||||
elif model_provider == "ust":
|
||||
api_key = os.getenv("UST_KEY_API")
|
||||
if not api_key:
|
||||
print('Warning: UST_KEY_API not set.')
|
||||
|
||||
print("Warning: UST_KEY_API not set.")
|
||||
|
||||
# Some UST-compatible endpoints expect the standard OpenAI role names
|
||||
# (e.g. "system", "user", "assistant") rather than Agno's default
|
||||
# mapping which maps "system" -> "developer". Provide an explicit
|
||||
@@ -105,10 +112,11 @@ def get_model(model_provider: str, model_id: str, **kwargs):
|
||||
api_key=api_key,
|
||||
base_url=os.getenv("UST_URL"),
|
||||
role_map=role_map,
|
||||
extra_body={"enable_thinking": False}, # TODO: one more setting for thinking
|
||||
**kwargs
|
||||
extra_body={
|
||||
"enable_thinking": False
|
||||
}, # TODO: one more setting for thinking
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
else:
|
||||
raise ValueError(f"Unknown model provider: {model_provider}")
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ class AutoSynthesisTrainer:
|
||||
self.model.load_state_dict(base_model.state_dict(), strict=False)
|
||||
|
||||
# LLM for causality verification
|
||||
provider = os.getenv("LLM_PROVIDER", "ust")
|
||||
provider = os.getenv("LLM_PROVIDER", "minimax")
|
||||
model_id = os.getenv("LLM_MODEL", "Qwen")
|
||||
self.llm_agent = Agent(model=get_model(provider, model_id))
|
||||
|
||||
|
||||
@@ -563,7 +563,7 @@ class SearchTools:
|
||||
4. Return strictly JSON: {{"reuse": true/false, "index": <candidate_index_int>, "reason": "short explanation"}}
|
||||
"""
|
||||
# 初始化模型
|
||||
provider = os.getenv("LLM_PROVIDER", "ust")
|
||||
provider = os.getenv("LLM_PROVIDER", "minimax")
|
||||
model_id = os.getenv("LLM_MODEL", "Qwen")
|
||||
host = os.getenv("LLM_HOST")
|
||||
if host:
|
||||
|
||||
Reference in New Issue
Block a user