Files
aiagent/backend/insert_template_data_simple.py

202 lines
7.4 KiB
Python
Raw Normal View History

2026-01-19 00:09:36 +08:00
#!/usr/bin/env python3
"""
简单的模板数据插入脚本
直接使用数据库连接不依赖app模块
"""
import pymysql
import json
import uuid
from datetime import datetime, timedelta
import random
# 数据库配置从config.py中获取
DB_CONFIG = {
'host': 'gz-cynosdbmysql-grp-d26pzce5.sql.tencentcdb.com',
'port': 24936,
'user': 'root',
'password': '!Rjb12191',
'database': 'agent_db',
'charset': 'utf8mb4'
}
# 模板数据
TEMPLATES = [
{
"name": "智能客服工作流",
"description": "一个完整的智能客服工作流,支持自动回复、问题分类和转人工功能。",
"category": "llm",
"tags": ["客服", "AI", "自动化"],
"is_featured": True
},
{
"name": "数据清洗工作流",
"description": "自动清洗和转换数据,支持多种数据源格式。",
"category": "data_processing",
"tags": ["数据处理", "ETL", "数据清洗"],
"is_featured": False
},
{
"name": "定时数据同步",
"description": "定时从数据库同步数据到另一个系统,支持增量同步。",
"category": "automation",
"tags": ["定时任务", "数据同步", "自动化"],
"is_featured": True
},
{
"name": "API数据聚合",
"description": "从多个API获取数据并聚合处理支持错误重试。",
"category": "integration",
"tags": ["API", "数据聚合", "集成"],
"is_featured": False
},
{
"name": "邮件通知工作流",
"description": "根据条件发送邮件通知支持HTML格式和附件。",
"category": "automation",
"tags": ["邮件", "通知", "自动化"],
"is_featured": True
},
{
"name": "内容生成工作流",
"description": "使用AI生成文章、摘要等内容支持多种格式输出。",
"category": "llm",
"tags": ["AI", "内容生成", "LLM"],
"is_featured": False
},
{
"name": "文件处理工作流",
"description": "批量处理文件,支持上传、下载、格式转换等功能。",
"category": "data_processing",
"tags": ["文件处理", "批量操作"],
"is_featured": False
},
{
"name": "Webhook触发器",
"description": "接收外部Webhook请求并触发工作流支持多种认证方式。",
"category": "integration",
"tags": ["Webhook", "触发器", "集成"],
"is_featured": True
}
]
# 简单的节点和边配置
SIMPLE_NODES = [
{"id": "start", "type": "start", "position": {"x": 100, "y": 100}, "data": {"label": "开始"}},
{"id": "input", "type": "input", "position": {"x": 300, "y": 100}, "data": {"label": "输入"}},
{"id": "process", "type": "transform", "position": {"x": 500, "y": 100}, "data": {"label": "处理"}},
{"id": "output", "type": "output", "position": {"x": 700, "y": 100}, "data": {"label": "输出"}},
{"id": "end", "type": "end", "position": {"x": 900, "y": 100}, "data": {"label": "结束"}}
]
SIMPLE_EDGES = [
{"id": "e1", "source": "start", "target": "input"},
{"id": "e2", "source": "input", "target": "process"},
{"id": "e3", "source": "process", "target": "output"},
{"id": "e4", "source": "output", "target": "end"}
]
def insert_templates():
"""插入模板数据"""
try:
# 连接数据库
connection = pymysql.connect(**DB_CONFIG)
try:
with connection.cursor() as cursor:
# 获取第一个用户ID
cursor.execute("SELECT id FROM users LIMIT 1")
user_result = cursor.fetchone()
if not user_result:
print("❌ 没有找到用户,请先创建用户")
return
user_id = user_result[0]
print(f"✅ 使用用户ID: {user_id}")
print()
# 检查模板是否已存在
cursor.execute("SELECT COUNT(*) FROM workflow_templates WHERE user_id = %s", (user_id,))
existing_count = cursor.fetchone()[0]
if existing_count > 0:
print(f" 已存在 {existing_count} 个模板,跳过插入")
return
# 插入模板
added_count = 0
for template_info in TEMPLATES:
template_id = str(uuid.uuid4())
nodes_json = json.dumps(SIMPLE_NODES, ensure_ascii=False)
edges_json = json.dumps(SIMPLE_EDGES, ensure_ascii=False)
tags_json = json.dumps(template_info["tags"], ensure_ascii=False)
view_count = random.randint(0, 1000)
use_count = random.randint(0, 100)
rating_count = random.randint(0, 50)
rating_avg = round(random.uniform(3.5, 5.0), 1)
days_ago = random.randint(0, 30)
created_at = datetime.now() - timedelta(days=days_ago)
updated_at = datetime.now() - timedelta(days=random.randint(0, 7))
sql = """
INSERT INTO workflow_templates (
id, name, description, category, tags, nodes, edges,
is_public, is_featured, view_count, use_count, rating_count, rating_avg,
user_id, created_at, updated_at
) VALUES (
%s, %s, %s, %s, %s, %s, %s,
%s, %s, %s, %s, %s, %s,
%s, %s, %s
)
"""
cursor.execute(sql, (
template_id,
template_info["name"],
template_info["description"],
template_info["category"],
tags_json,
nodes_json,
edges_json,
True,
template_info["is_featured"],
view_count,
use_count,
rating_count,
rating_avg,
user_id,
created_at,
updated_at
))
added_count += 1
print(f"✅ 添加模板: {template_info['name']}")
connection.commit()
print()
print("=" * 60)
print(f"✅ 数据添加完成!")
print(f" 新增: {added_count} 个模板")
print("=" * 60)
# 查询总数
cursor.execute("SELECT COUNT(*) FROM workflow_templates WHERE user_id = %s", (user_id,))
total_count = cursor.fetchone()[0]
print(f" 当前模板总数: {total_count}")
finally:
connection.close()
except Exception as e:
print(f"❌ 执行失败: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
print("=" * 60)
print("模板市场假数据生成工具")
print("=" * 60)
print()
insert_templates()