1 line
6.8 KiB
JSON
1 line
6.8 KiB
JSON
{"repo": "auto-actions/hyperagent", "files": {"MetaGPT/metagpt/configs/llm_config.py": {"1154fe3fb6aaa174acec2a818f1a50008d896eb0": {"t": 1785674648.5572047, "n": 2830, "h": "8eb9e806f70126c9", "c": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@Time : 2024/1/4 16:33\n@Author : alexanderwu\n@File : llm_config.py\n\"\"\"\nfrom enum import Enum\nfrom typing import Optional\n\nfrom pydantic import field_validator\n\nfrom metagpt.const import LLM_API_TIMEOUT\nfrom metagpt.utils.yaml_model import YamlModel\n\n\nclass LLMType(Enum):\n OPENAI = \"openai\"\n ANTHROPIC = \"anthropic\"\n CLAUDE = \"claude\" # alias name of anthropic\n SPARK = \"spark\"\n ZHIPUAI = \"zhipuai\"\n FIREWORKS = \"fireworks\"\n OPEN_LLM = \"open_llm\"\n GEMINI = \"gemini\"\n METAGPT = \"metagpt\"\n AZURE = \"azure\"\n OLLAMA = \"ollama\"\n QIANFAN = \"qianfan\" # Baidu BCE\n DASHSCOPE = \"dashscope\" # Aliyun LingJi DashScope\n MOONSHOT = \"moonshot\"\n MISTRAL = \"mistral\"\n YI = \"yi\" # lingyiwanwu\n OPENROUTER = \"openrouter\"\n BEDROCK = \"bedrock\"\n ARK = \"ark\"\n\n def __missing__(self, key):\n return self.OPENAI\n\n\nclass LLMConfig(YamlModel):\n \"\"\"Config for LLM\n\n OpenAI: https://github.com/openai/openai-python/blob/main/src/openai/resources/chat/completions.py#L681\n Optional Fields in pydantic: https://docs.pydantic.dev/latest/migration/#required-optional-and-nullable-fields\n \"\"\"\n\n api_key: str = \"sk-\"\n api_type: LLMType = LLMType.OPENAI\n base_url: str = \"https://api.openai.com/v1\"\n api_version: Optional[str] = None\n\n model: Optional[str] = None # also stands for DEPLOYMENT_NAME\n pricing_plan: Optional[str] = None # Cost Settlement Plan Parameters.\n\n # For Cloud Service Provider like Baidu/ Alibaba\n access_key: Optional[str] = None\n secret_key: Optional[str] = None\n endpoint: Optional[str] = None # for self-deployed model on the cloud\n\n # For Spark(Xunfei), maybe remove later\n app_id: Optional[str] = None\n api_secret: Optional[str] = None\n domain: Optional[str] = None\n\n # For Chat Completion\n max_token: int = 4096\n temperature: float = 0.0\n top_p: float = 1.0\n top_k: int = 0\n repetition_penalty: float = 1.0\n stop: Optional[str] = None\n presence_penalty: float = 0.0\n frequency_penalty: float = 0.0\n best_of: Optional[int] = None\n n: Optional[int] = None\n stream: bool = True\n # https://cookbook.openai.com/examples/using_logprobs\n logprobs: Optional[bool] = None\n top_logprobs: Optional[int] = None\n timeout: int = 600\n\n # For Amazon Bedrock\n region_name: str = None\n\n # For Network\n proxy: Optional[str] = None\n\n # Cost Control\n calc_usage: bool = True\n\n @field_validator(\"api_key\")\n @classmethod\n def check_llm_key(cls, v):\n if v in [\"\", None, \"YOUR_API_KEY\"]:\n raise ValueError(\"Please set your API key in config2.yaml\")\n return v\n\n @field_validator(\"timeout\")\n @classmethod\n def check_timeout(cls, v):\n return v or LLM_API_TIMEOUT\n"}}, "metagpt/configs/llm_config.py": {"1154fe3fb6aaa174acec2a818f1a50008d896eb0": {"t": 1785674649.217987, "n": 3425, "h": "89b79cfe07edf0bc", "c": "#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@Time : 2024/1/4 16:33\n@Author : alexanderwu\n@File : llm_config.py\n\"\"\"\nfrom enum import Enum\nfrom typing import Optional\n\nfrom pydantic import field_validator\n\nfrom metagpt.const import CONFIG_ROOT, LLM_API_TIMEOUT, METAGPT_ROOT\nfrom metagpt.utils.yaml_model import YamlModel\n\n\nclass LLMType(Enum):\n OPENAI = \"openai\"\n ANTHROPIC = \"anthropic\"\n CLAUDE = \"claude\" # alias name of anthropic\n SPARK = \"spark\"\n ZHIPUAI = \"zhipuai\"\n FIREWORKS = \"fireworks\"\n OPEN_LLM = \"open_llm\"\n GEMINI = \"gemini\"\n METAGPT = \"metagpt\"\n AZURE = \"azure\"\n OLLAMA = \"ollama\"\n QIANFAN = \"qianfan\" # Baidu BCE\n DASHSCOPE = \"dashscope\" # Aliyun LingJi DashScope\n MOONSHOT = \"moonshot\"\n MISTRAL = \"mistral\"\n YI = \"yi\" # lingyiwanwu\n OPENROUTER = \"openrouter\"\n BEDROCK = \"bedrock\"\n ARK = \"ark\"\n\n def __missing__(self, key):\n return self.OPENAI\n\n\nclass LLMConfig(YamlModel):\n \"\"\"Config for LLM\n\n OpenAI: https://github.com/openai/openai-python/blob/main/src/openai/resources/chat/completions.py#L681\n Optional Fields in pydantic: https://docs.pydantic.dev/latest/migration/#required-optional-and-nullable-fields\n \"\"\"\n\n api_key: str = \"sk-\"\n api_type: LLMType = LLMType.OPENAI\n base_url: str = \"https://api.openai.com/v1\"\n api_version: Optional[str] = None\n\n model: Optional[str] = None # also stands for DEPLOYMENT_NAME\n pricing_plan: Optional[str] = None # Cost Settlement Plan Parameters.\n\n # For Cloud Service Provider like Baidu/ Alibaba\n access_key: Optional[str] = None\n secret_key: Optional[str] = None\n endpoint: Optional[str] = None # for self-deployed model on the cloud\n\n # For Spark(Xunfei), maybe remove later\n app_id: Optional[str] = None\n api_secret: Optional[str] = None\n domain: Optional[str] = None\n\n # For Chat Completion\n max_token: int = 4096\n temperature: float = 0.0\n top_p: float = 1.0\n top_k: int = 0\n repetition_penalty: float = 1.0\n stop: Optional[str] = None\n presence_penalty: float = 0.0\n frequency_penalty: float = 0.0\n best_of: Optional[int] = None\n n: Optional[int] = None\n stream: bool = True\n # https://cookbook.openai.com/examples/using_logprobs\n logprobs: Optional[bool] = None\n top_logprobs: Optional[int] = None\n timeout: int = 600\n\n # For Amazon Bedrock\n region_name: str = None\n\n # For Network\n proxy: Optional[str] = None\n\n # Cost Control\n calc_usage: bool = True\n\n @field_validator(\"api_key\")\n @classmethod\n def check_llm_key(cls, v):\n if v in [\"\", None, \"YOUR_API_KEY\"]:\n repo_config_path = METAGPT_ROOT / \"config/config2.yaml\"\n root_config_path = CONFIG_ROOT / \"config2.yaml\"\n if root_config_path.exists():\n raise ValueError(\n f\"Please set your API key in {root_config_path}. If you also set your config in {repo_config_path}, \\nthe former will overwrite the latter. This may cause unexpected result.\\n\"\n )\n elif repo_config_path.exists():\n raise ValueError(f\"Please set your API key in {repo_config_path}\")\n else:\n raise ValueError(\"Please set your API key in config2.yaml\")\n return v\n\n @field_validator(\"timeout\")\n @classmethod\n def check_timeout(cls, v):\n return v or LLM_API_TIMEOUT\n"}}}} |