add llm provider registry

This commit is contained in:
geekan 2023-12-19 17:55:34 +08:00 committed by better629
parent bd12087be4
commit f32f9c82e5
9 changed files with 89 additions and 52 deletions

View file

@ -8,12 +8,8 @@
from metagpt.config import CONFIG
from metagpt.provider.base_gpt_api import BaseGPTAPI
from metagpt.provider.fireworks_api import FireWorksGPTAPI
from metagpt.provider.human_provider import HumanProvider
from metagpt.provider.open_llm_api import OpenLLMGPTAPI
from metagpt.provider.openai_api import OpenAIGPTAPI
from metagpt.provider.spark_api import SparkAPI
from metagpt.provider.zhipuai_api import ZhiPuAIGPTAPI
from metagpt.provider.llm_provider_registry import LLMProviderRegistry
_ = HumanProvider() # Avoid pre-commit error
@ -21,17 +17,4 @@ _ = HumanProvider() # Avoid pre-commit error
def LLM() -> BaseGPTAPI:
"""initialize different LLM instance according to the key field existence"""
# TODO a little trick, can use registry to initialize LLM instance further
if CONFIG.openai_api_key:
llm = OpenAIGPTAPI()
elif CONFIG.spark_api_key:
llm = SparkAPI()
elif CONFIG.zhipuai_api_key:
llm = ZhiPuAIGPTAPI()
elif CONFIG.open_llm_api_base:
llm = OpenLLMGPTAPI()
elif CONFIG.fireworks_api_key:
llm = FireWorksGPTAPI()
else:
raise RuntimeError("You should config a LLM configuration first")
return llm
return LLMProviderRegistry.get_provider(CONFIG.get_default_llm_provider_enum())