80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
"""
|
|||
|
|
初始化内置工具脚本
|
|||
|
|
"""
|
|||
|
|
import sys
|
|||
|
|
import os
|
|||
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|||
|
|
|
|||
|
|
from app.core.database import SessionLocal
|
|||
|
|
from app.models.tool import Tool
|
|||
|
|
from app.services.tool_registry import tool_registry
|
|||
|
|
from app.services.builtin_tools import (
|
|||
|
|
http_request_tool,
|
|||
|
|
file_read_tool,
|
|||
|
|
HTTP_REQUEST_SCHEMA,
|
|||
|
|
FILE_READ_SCHEMA
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
def init_builtin_tools():
|
|||
|
|
"""初始化内置工具"""
|
|||
|
|
db = SessionLocal()
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
# 注册内置工具到注册表
|
|||
|
|
tool_registry.register_builtin_tool(
|
|||
|
|
"http_request",
|
|||
|
|
http_request_tool,
|
|||
|
|
HTTP_REQUEST_SCHEMA
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
tool_registry.register_builtin_tool(
|
|||
|
|
"file_read",
|
|||
|
|
file_read_tool,
|
|||
|
|
FILE_READ_SCHEMA
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print("✅ 内置工具已注册到工具注册表")
|
|||
|
|
|
|||
|
|
# 保存到数据库
|
|||
|
|
tools_to_create = [
|
|||
|
|
("http_request", HTTP_REQUEST_SCHEMA, "发送HTTP请求,支持GET、POST、PUT、DELETE方法"),
|
|||
|
|
("file_read", FILE_READ_SCHEMA, "读取文件内容,只能读取项目目录下的文件")
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
created_count = 0
|
|||
|
|
for tool_name, tool_schema, description in tools_to_create:
|
|||
|
|
existing = db.query(Tool).filter(Tool.name == tool_name).first()
|
|||
|
|
if not existing:
|
|||
|
|
tool = Tool(
|
|||
|
|
name=tool_name,
|
|||
|
|
description=description,
|
|||
|
|
category="builtin",
|
|||
|
|
function_schema=tool_schema,
|
|||
|
|
implementation_type="builtin",
|
|||
|
|
is_public=True
|
|||
|
|
)
|
|||
|
|
db.add(tool)
|
|||
|
|
created_count += 1
|
|||
|
|
print(f"✅ 创建工具: {tool_name}")
|
|||
|
|
else:
|
|||
|
|
# 更新工具定义
|
|||
|
|
existing.function_schema = tool_schema
|
|||
|
|
existing.description = description
|
|||
|
|
print(f"ℹ️ 更新工具: {tool_name}")
|
|||
|
|
|
|||
|
|
db.commit()
|
|||
|
|
print(f"\n✅ 内置工具初始化完成!创建了 {created_count} 个工具")
|
|||
|
|
except Exception as e:
|
|||
|
|
db.rollback()
|
|||
|
|
print(f"❌ 初始化失败: {str(e)}")
|
|||
|
|
import traceback
|
|||
|
|
traceback.print_exc()
|
|||
|
|
finally:
|
|||
|
|
db.close()
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
init_builtin_tools()
|