feat(tool system): Tool info add tags variable
This commit is contained in:
@@ -33,7 +33,7 @@ async def list_apps():
|
||||
"""列出可访问的应用(占位)"""
|
||||
return success(data=[], msg="App API - Coming Soon")
|
||||
|
||||
# /v1/apps/{resource_id}/chat
|
||||
# /v1/app/chat
|
||||
|
||||
# @router.post("/chat")
|
||||
# @require_api_key(scopes=["app"])
|
||||
@@ -49,7 +49,6 @@ async def list_apps():
|
||||
# scopes: 所需的权限范围列表["app", "rag", "memory"]
|
||||
|
||||
# Args:
|
||||
# resource_id: 如果是应用的apikey传的是应用id; 如果是服务的apikey传的是工作空间id
|
||||
# message: 请求参数
|
||||
# request: 声明请求
|
||||
# api_key_auth: 包含验证后的API Key 信息
|
||||
|
||||
@@ -87,7 +87,8 @@ async def create_tool(
|
||||
tenant_id=current_user.tenant_id,
|
||||
icon=request.icon,
|
||||
description=request.description,
|
||||
config=request.config
|
||||
config=request.config,
|
||||
tags=request.tags
|
||||
)
|
||||
return success(data={"tool_id": tool_id}, msg="工具创建成功")
|
||||
except ValueError as e:
|
||||
@@ -112,7 +113,8 @@ async def update_tool(
|
||||
description=request.description,
|
||||
icon=request.icon,
|
||||
config=request.config,
|
||||
is_enabled=request.config.get("is_enabled", None)
|
||||
is_enabled=request.config.get("is_enabled", None),
|
||||
tags=request.tags
|
||||
)
|
||||
if not success_flag:
|
||||
raise HTTPException(status_code=404, detail="工具不存在")
|
||||
@@ -220,6 +222,8 @@ async def test_tool_connection(
|
||||
else:
|
||||
# 普通连接测试
|
||||
result = await service.test_connection(tool_id, current_user.tenant_id)
|
||||
if result["success"] is False:
|
||||
raise HTTPException(status_code=400, detail=result["message"])
|
||||
return success(data=result, msg="连接测试完成")
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
@@ -30,32 +30,5 @@
|
||||
"parameters": {
|
||||
"api_key": {"type": "string", "description": "百度搜索API密钥", "sensitive": true, "required": true}
|
||||
}
|
||||
},
|
||||
"mineru": {
|
||||
"name": "MinerU",
|
||||
"description": "PDF文档解析工具",
|
||||
"tool_class": "MinerUTool",
|
||||
"category": "document",
|
||||
"requires_config": true,
|
||||
"version": "1.0.0",
|
||||
"enabled": true,
|
||||
"parameters": {
|
||||
"api_key": {"type": "string", "description": "MinerU API密钥", "sensitive": true, "required": true},
|
||||
"base_url": {"type": "string", "description": "API地址", "default": "https://api.mineru.com"}
|
||||
}
|
||||
},
|
||||
"textin": {
|
||||
"name": "TextIn",
|
||||
"description": "OCR文字识别服务",
|
||||
"tool_class": "TextInTool",
|
||||
"category": "ocr",
|
||||
"requires_config": true,
|
||||
"version": "1.0.0",
|
||||
"enabled": true,
|
||||
"parameters": {
|
||||
"api_key": {"type": "string", "description": "TextIn API密钥", "sensitive": true, "required": true},
|
||||
"api_secret": {"type": "string", "description": "TextIn API密钥", "sensitive": true, "required": true},
|
||||
"base_url": {"type": "string", "description": "API地址", "default": "https://api.textin.com/v1"}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -191,6 +191,7 @@ class ToolCreateRequest(BaseModel):
|
||||
icon: Optional[str] = Field(None, max_length=255)
|
||||
tool_type: ToolType
|
||||
config: Dict[str, Any] = Field(default_factory=dict)
|
||||
tags: List[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ToolUpdateRequest(BaseModel):
|
||||
@@ -200,6 +201,7 @@ class ToolUpdateRequest(BaseModel):
|
||||
icon: Optional[str] = Field(None, max_length=255)
|
||||
config: Optional[Dict[str, Any]] = None
|
||||
is_enabled: Optional[bool] = None
|
||||
tags: Optional[List[str]] = None
|
||||
|
||||
|
||||
class ToolExecuteRequest(BaseModel):
|
||||
|
||||
@@ -83,7 +83,8 @@ class ToolService:
|
||||
tenant_id: uuid.UUID,
|
||||
icon: Optional[str] = None,
|
||||
description: Optional[str] = None,
|
||||
config: Optional[Dict[str, Any]] = None
|
||||
config: Optional[Dict[str, Any]] = None,
|
||||
tags: Optional[List[str]] = None
|
||||
) -> str:
|
||||
"""创建工具"""
|
||||
if tool_type == ToolType.BUILTIN:
|
||||
@@ -98,7 +99,8 @@ class ToolService:
|
||||
tool_type=tool_type.value,
|
||||
tenant_id=tenant_id,
|
||||
status=ToolStatus.AVAILABLE.value,
|
||||
config_data=config or {}
|
||||
config_data=config or {},
|
||||
tags=tags
|
||||
)
|
||||
self.db.add(tool_config)
|
||||
self.db.flush()
|
||||
@@ -123,7 +125,8 @@ class ToolService:
|
||||
description: Optional[str] = None,
|
||||
icon: Optional[str] = None,
|
||||
config: Optional[Dict[str, Any]] = None,
|
||||
is_enabled: Optional[bool] = None
|
||||
is_enabled: Optional[bool] = None,
|
||||
tags: Optional[List[str]] = None
|
||||
) -> bool:
|
||||
"""更新工具"""
|
||||
config_obj = self._get_tool_config(tool_id, tenant_id)
|
||||
@@ -140,6 +143,8 @@ class ToolService:
|
||||
config_obj.description = description
|
||||
if icon:
|
||||
config_obj.icon = icon
|
||||
if tags:
|
||||
config_obj.tags = tags
|
||||
if config:
|
||||
config_obj.config_data = config.copy()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user