瀏覽代碼

fix: incorrect tool name (#2489)

Yeuoly 1 年之前
父節點
當前提交
48bacd01cc
共有 1 個文件被更改,包括 6 次插入1 次删除
  1. 6 1
      api/core/tools/utils/parser.py

+ 6 - 1
api/core/tools/utils/parser.py

@@ -115,7 +115,12 @@ class ApiBasedToolSchemaParser:
 
             # check if there is a operation id, use $path_$method as operation id if not
             if 'operationId' not in interface['operation']:
-                interface['operation']['operationId'] = f'{interface["path"]}_{interface["method"]}'
+                # remove special characters like / to ensure the operation id is valid ^[a-zA-Z0-9_-]{1,64}$
+                path = interface['path']
+                if interface['path'].startswith('/'):
+                    path = interface['path'][1:]
+                path = path.replace('/', '_')
+                interface['operation']['operationId'] = f'{path}_{interface["method"]}'
 
             bundles.append(ApiBasedToolBundle(
                 server_url=server_url + interface['path'],