my_llm.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # my_llm.py
  2. import os
  3. from typing import Optional
  4. from openai import OpenAI
  5. from hello_agents import HelloAgentsLLM
  6. class MyLLM(HelloAgentsLLM):
  7. def __init__(
  8. self,
  9. model: Optional[str] = None,
  10. api_key: Optional[str] = None,
  11. base_url: Optional[str] = None,
  12. provider: Optional[str] = "auto",
  13. **kwargs
  14. ):
  15. # 检查provider是否为我们想处理的'modelscope'
  16. if provider == "modelscope":
  17. print("正在使用自定义的 ModelScope Provider")
  18. self.provider = "modelscope"
  19. # 解析 ModelScope 的凭证
  20. self.api_key = api_key or os.getenv("MODELSCOPE_API_KEY")
  21. self.base_url = base_url or "https://api-inference.modelscope.cn/v1/"
  22. # 验证凭证是否存在
  23. if not self.api_key:
  24. raise ValueError("ModelScope API key not found. Please set MODELSCOPE_API_KEY environment variable.")
  25. # 设置默认模型和其他参数
  26. self.model = model or os.getenv("LLM_MODEL_ID") or "Qwen/Qwen2.5-VL-72B-Instruct"
  27. self.temperature = kwargs.get('temperature', 0.7)
  28. self.max_tokens = kwargs.get('max_tokens')
  29. self.timeout = kwargs.get('timeout', 60)
  30. # 使用获取的参数创建OpenAI客户端实例
  31. self._client = OpenAI(api_key=self.api_key, base_url=self.base_url, timeout=self.timeout)
  32. else:
  33. # 如果不是 modelscope, 则完全使用父类的原始逻辑来处理
  34. super().__init__(model=model, api_key=api_key, base_url=base_url, provider=provider, **kwargs)