From 1859d57784b15faa68e01313f4c139da1c39c1c0 Mon Sep 17 00:00:00 2001 From: mbo Date: Mon, 13 Jan 2025 17:49:30 +0800 Subject: [PATCH] api tool support multiple env url (#12249) Co-authored-by: mabo --- api/core/tools/utils/parser.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/core/tools/utils/parser.py b/api/core/tools/utils/parser.py index 30e4fdcf06..9d88d6d6ef 100644 --- a/api/core/tools/utils/parser.py +++ b/api/core/tools/utils/parser.py @@ -5,6 +5,7 @@ from json import loads as json_loads from json.decoder import JSONDecodeError from typing import Optional +from flask import request from requests import get from yaml import YAMLError, safe_load # type: ignore @@ -29,6 +30,10 @@ class ApiBasedToolSchemaParser: raise ToolProviderNotFoundError("No server found in the openapi yaml.") server_url = openapi["servers"][0]["url"] + request_env = request.headers.get("X-Request-Env") + if request_env: + matched_servers = [server["url"] for server in openapi["servers"] if server["env"] == request_env] + server_url = matched_servers[0] if matched_servers else server_url # list all interfaces interfaces = []