From d68b706f8f4911ce421d1e2d6f50ee83ff26e70e Mon Sep 17 00:00:00 2001 From: TaeBbong Date: Tue, 27 Jan 2026 18:14:33 -0800 Subject: [PATCH] feat: introduce base_url_fixed for local model - Add field `base_url_fixed` to setup base_url for llm_engine_fixed - Use field `base_url_fixed` for each flow modules --- agentflow/agentflow/models/initializer.py | 4 ++-- agentflow/agentflow/models/planner.py | 8 ++++---- agentflow/agentflow/models/verifier.py | 4 ++-- agentflow/agentflow/solver.py | 3 +++ agentflow/agentflow/tools/base_generator/tool.py | 4 +++- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/agentflow/agentflow/models/initializer.py b/agentflow/agentflow/models/initializer.py index a19d7b1..f556c3d 100644 --- a/agentflow/agentflow/models/initializer.py +++ b/agentflow/agentflow/models/initializer.py @@ -225,9 +225,9 @@ def _load_single_tool(self, root: str, import_path: str, agentflow_dir: str) -> if engine == "Default": tool_instance = obj() elif engine == "self": - tool_instance = obj(model_string=self.model_string) + tool_instance = obj(model_string=self.model_string, base_url=self.base_url) else: - tool_instance = obj(model_string=engine) + tool_instance = obj(model_string=engine, base_url=self.base_url) else: tool_instance = obj() diff --git a/agentflow/agentflow/models/planner.py b/agentflow/agentflow/models/planner.py index 9cb6ccc..327cf04 100644 --- a/agentflow/agentflow/models/planner.py +++ b/agentflow/agentflow/models/planner.py @@ -13,18 +13,18 @@ class Planner: def __init__(self, llm_engine_name: str, llm_engine_fixed_name: str = "dashscope", toolbox_metadata: dict = None, available_tools: List = None, - verbose: bool = False, base_url: str = None, is_multimodal: bool = False, + verbose: bool = False, base_url: str = None, base_url_fixed: str = None, is_multimodal: bool = False, check_model: bool = True, temperature : float = .0): self.llm_engine_name = llm_engine_name self.llm_engine_fixed_name = llm_engine_fixed_name self.is_multimodal = is_multimodal # self.llm_engine_mm = create_llm_engine(model_string=llm_engine_name, is_multimodal=False, base_url=base_url, temperature = temperature) - self.llm_engine_fixed = create_llm_engine(model_string=llm_engine_fixed_name, is_multimodal=False, temperature = temperature) - self.llm_engine = create_llm_engine(model_string=llm_engine_name, is_multimodal=False, base_url=base_url, temperature = temperature) + self.llm_engine_fixed = create_llm_engine(model_string=llm_engine_fixed_name, base_url=base_url_fixed, is_multimodal=False, temperature=temperature) + self.llm_engine = create_llm_engine(model_string=llm_engine_name, base_url=base_url, is_multimodal=False, temperature=temperature) self.toolbox_metadata = toolbox_metadata if toolbox_metadata is not None else {} self.available_tools = available_tools if available_tools is not None else [] - self.verbose = verbose + def get_image_info(self, image_path: str) -> Dict[str, Any]: image_info = {} if image_path and os.path.isfile(image_path): diff --git a/agentflow/agentflow/models/verifier.py b/agentflow/agentflow/models/verifier.py index 9b2d3be..211841e 100644 --- a/agentflow/agentflow/models/verifier.py +++ b/agentflow/agentflow/models/verifier.py @@ -13,12 +13,12 @@ class Verifier: def __init__(self, llm_engine_name: str, llm_engine_fixed_name: str = "dashscope", toolbox_metadata: dict = None, available_tools: list = None, - verbose: bool = False, base_url: str = None, is_multimodal: bool = False, + verbose: bool = False, base_url: str = None, base_url_fixed: str = None, is_multimodal: bool = False, check_model: bool = True, temperature: float = .0): self.llm_engine_name = llm_engine_name self.llm_engine_fixed_name = llm_engine_fixed_name self.is_multimodal = is_multimodal - self.llm_engine_fixed = create_llm_engine(model_string=llm_engine_fixed_name, is_multimodal=False, temperature=temperature) + self.llm_engine_fixed = create_llm_engine(model_string=llm_engine_fixed_name, is_multimodal=False, base_url=base_url_fixed, temperature=temperature) self.llm_engine = create_llm_engine(model_string=llm_engine_name, is_multimodal=False, base_url=base_url, temperature=temperature) self.toolbox_metadata = toolbox_metadata if toolbox_metadata is not None else {} self.available_tools = available_tools if available_tools is not None else [] diff --git a/agentflow/agentflow/solver.py b/agentflow/agentflow/solver.py index f91a565..cdf9c87 100644 --- a/agentflow/agentflow/solver.py +++ b/agentflow/agentflow/solver.py @@ -207,6 +207,7 @@ def construct_solver(llm_engine_name : str = "gpt-4o", verbose : bool = True, vllm_config_path : str = None, base_url : str = None, + base_url_fixed : str = None, temperature: float = 0.0 ): @@ -235,6 +236,7 @@ def construct_solver(llm_engine_name : str = "gpt-4o", available_tools=initializer.available_tools, verbose=verbose, base_url=base_url, + base_url_fixed=base_url_fixed, temperature=temperature ) @@ -246,6 +248,7 @@ def construct_solver(llm_engine_name : str = "gpt-4o", available_tools=initializer.available_tools, verbose=verbose, base_url=base_url if verifier_engine == llm_engine_name else None, + base_url_fixed=base_url_fixed, temperature=temperature ) diff --git a/agentflow/agentflow/tools/base_generator/tool.py b/agentflow/agentflow/tools/base_generator/tool.py index ad121a2..ff5f130 100644 --- a/agentflow/agentflow/tools/base_generator/tool.py +++ b/agentflow/agentflow/tools/base_generator/tool.py @@ -22,7 +22,7 @@ class Base_Generator_Tool(BaseTool): require_llm_engine = True - def __init__(self, model_string="gpt-4o-mini"): + def __init__(self, model_string="gpt-4o-mini", base_url=None): super().__init__( tool_name=TOOL_NAME, tool_description="A generalized tool that takes query from the user, and answers the question step by step to the best of its ability. It can also accept an image.", @@ -59,6 +59,7 @@ def __init__(self, model_string="gpt-4o-mini"): ) self.model_string = model_string + self.base_url = base_url print(f"Initializing Generalist Tool with model: {self.model_string}") # multimodal = True if image else False multimodal = False @@ -68,6 +69,7 @@ def __init__(self, model_string="gpt-4o-mini"): self.llm_engine = create_llm_engine( model_string=self.model_string, is_multimodal=multimodal, + base_url=base_url, temperature=0.0, top_p=1.0, frequency_penalty=0.0,