大数跨境
0
0

基于AI Agent模板:快速生成 SQL 测试数据

基于AI Agent模板:快速生成 SQL 测试数据 卓普云 AI Droplet
2025-11-13
0

DigitalOcean 云平台一直在不断研发以代码为核心的项目,帮助用户快速构建可投入生产的应用程序,并能根据自己的需求进行扩展。

DigitalOcean 的 Gradient™ AI 平台近期推出了 Agent Templates(智能体模板),为开发者提供了即插即用的 AI 工具。 本文将以 SQL Agent 模板 为例,演示如何扩展它,实现自动生成安全测试数据和 SQL 插入脚本的功能,让数据库测试更快、更智能、更安全。

什么是 Agent Templates(智能体模板)?

Gradient AI 平台是 DigitalOcean 提供的一个一体化 AI 云服务平台,覆盖从生成式模型调用、智能 Agent 构建、GPU 服务器(如 H200、H100、RTX 6000 等按需/裸金属)、到 Serverless 推理服务的完整流程。

Agent Templates 是在 DigitalOcean Gradient AI 平台 上构建的、以代码为核心的即插即用入门套件。

每个模板都是一个 Python 项目,你可以在几分钟内克隆、配置并部署。无论是构建 SQL 查询助手、客服 Bot 还是文档问答系统,只需克隆模板、配置少量参数,就能立即部署到生产环境。

以下是当前可用的模板:

模板
功能
主要技术特性
LLM Auditor Agent
通过 Tavily API 搜索网络,并可选地使用结构化外部知识进行验证,为 LLM 添加验证或事实核查层。
• 集成 Tavily API• 支持可选的知识库(KB)接地以获得更可靠的回答
Product Documentation Agent
利用产品文档构建支持型聊天机器人,使用户可以提问并从文档中获取准确答案。
• 基于嵌入的文档检索• 聊天记录 / 对话上下文支持• 可处理任意产品文档
SQL Agent
将自然语言提示转换为针对 MySQL 数据库的 SQL 查询(只读),动态检索架构并执行安全查询。
• 架构自省,识别表和字段结构• 只读查询防护• 自然语言到 SQL 转换并带安全校验
Twilio API Agent
通过 Twilio 发送短信(营销或事务性),并可实现自动化消息流逻辑。
• 集成 Twilio SDK/API• 可插拔消息逻辑

你可以直接使用这些模板,也可以直接在此基础上扩展功能,无需从零配置环境或重写推理逻辑,从而极大地缩短智能体开发周期。

合成数据生成服务的工作原理

合成数据生成服务用于创建逼真的模拟数据集,用于测试和开发。

它采用一个编排的微服务架构,由以下四个层组成:

当有人点击 “Generate Data(生成数据)” 按钮,或输入类似 “Generate 10 mock users(生成10个模拟用户)” 的自然语言请求时,系统会这样工作:


  1. 用户输入处理层

通过聊天界面或手动配置捕获用户请求,提取诸如数据类型、记录数和输出格式等参数。

  1. AI 驱动的请求解析层

利用 DigitalOcean Gradient AI 平台 理解自然语言请求,并确定合适的数据生成策略,包括安全验证,确保不会访问生产数据。

  1. 合成数据生成引擎

接收解析后的请求,使用 Faker 库 创建具有真实字段类型、关系和约束的模拟数据。 该引擎可生成用户、订单、支付、产品及自定义数据结构。

  1. 多格式输出层

将生成的数据转换为用户请求的格式(SQL INSERT 语句、CSV 或 JSON),并以实时预览和下载选项的形式呈现。

详细数据流示例

当用户请求 “Generate 10 mock users with random names and emails(生成10个随机姓名和邮箱的模拟用户)” 时,系统执行以下步骤:

1、用户输入处理
Streamlit 界面捕获请求并提取参数(count=10,data_type=users,fields=[‘name’, ‘email’])。
2、AI 请求解析
Gradient AI Agent 处理自然语言请求,确定需要生成用户数据并满足特定字段要求。
3、数据生成引擎
SyntheticDataGenerator 使用 Faker 生成 10 条真实感用户数据:
  • 生成真实姓名,如 “John Smith”、“Sarah Johnson”

  • 生成有效邮箱地址,如 john.smith@email.com

  • 添加电话号码、地址和时间戳

  • 保证数据关系与约束条件成立

4、格式转换
系统将生成的数据转换为所需格式:
  • SQL:生成可直接执行的 INSERT 语句
  • CSV:格式化为可导入表格的数据
  • JSON:结构化为可供 API 调用的数据
5、安全验证
 所有生成数据均经过验证以确保:
  • 未访问任何生产数据
  • 防止 SQL 注入
  • 遵守记录数量限制
  • 保持数据完整性
6、用户展示
 最终数据在网页界面展示,包含:
  • 实时预览表格
  • 各格式的下载按钮
  • 复制到剪贴板功能
  • 成功生成的确认提示

构建数据生成器

步骤 1:配置 DigitalOcean Gradient AI 凭证

在扩展 SQL Agent 模板前,需要配置你的 DigitalOcean Gradient AI 凭证。

这对实现 AI 驱动的自然语言处理功能至关重要。

  • 在 cloud.digitalocean.com 注册 DigitalOcean 账户
  • 在控制台进入 “Agent Platform” 部分
  • 创建新工作区或使用已有工作区并新建一个 Agent(可参考指南中的步骤)
  • 创建后,前往 Gradient AI 工作区设置,获取 API 访问令牌并记录工作区 ID

控制台中 DigitalOcean Gradient AI Agent 示例如下:


步骤 2:扩展 SQL Agent 模板

接下来,我们将为 DigitalOcean 的 SQL Agent 模板增加合成数据生成功能。

基础模板已提供安全 SQL 查询执行与架构自省功能,我们在此基础上增强数据生成能力。

核心扩展架构:

增强版 SQL Agent 通过集成合成数据生成器并更新系统提示来处理数据生成请求。 它保留了原有 SQL 功能,同时新增了数据生成的自然语言处理能力。 完整代码位于 src/agent.py

步骤 3:构建合成数据生成引擎

扩展的核心是 SyntheticDataGenerator 类,利用 Faker 库 生成逼真的模拟数据。 它支持多种数据类型(用户、订单、支付、产品),可通过参数配置生成逻辑。

class SyntheticDataGenerator:    def __init__(self, locale='en_US'):        self.fake = Faker(locale)
    def generate_users(self, count=10, fields=None):        users = []        for i in range(count):            user = {                'id': i + 1,                'name'self.fake.name(),                'email'self.fake.email(),                'phone'self.fake.phone_number(),                'address'self.fake.address(),                'created_at'self.fake.date_time_between(start_date='-2y', end_date='now')            }            users.append(user)        return users
    def generate_orders(self, count=10, amount_range=(101000), year=2024):        orders = []        for i in range(count):            order = {                'id': i + 1,                'user_id'self.fake.random_int(min=1max=count),                'amount'self.fake.random_int(min=amount_range[0], max=amount_range[1]),                'status'self.fake.random_element(elements=('pending''completed''cancelled''shipped')),                'order_date'self.fake.date_between(start_date=f'{year}-01-01', end_date=f'{year}-12-31'),                'product_name'self.fake.catch_phrase(),                'quantity'self.fake.random_int(min=1max=10)            }            orders.append(order)        return orders

完整代码位于 src/synthetic_data_generator.py:

https://github.com/Haimantika/Gradient-SQL-template/blob/main/src/synthetic_data_generator.py

数据生成工作原理:

  1. Faker 库集成:
    使用 Faker 提供的 200+ 数据生成器,生成姓名、地址、邮箱、电话号码、日期等真实感数据。
  2. 可配置字段生成:
    每种数据类型(用户、订单、支付、产品)都有特定字段生成逻辑,以保持真实关系与约束。
  3. 区域支持:
    支持多种区域(如 en_US、en_GB)生成对应地区风格的数据。
  4. 参数化生成:
    可通过参数(数量、日期范围、金额范围、字段选择)定制生成结果。

步骤 4:实现多格式输出支持

系统将生成的数据转换为多种格式,以适应不同场景。

以下为 SQL 转换示例:

def to_sql_inserts(self, data, table_name):    if not data:        return []
    columns = list(data[0].keys())    column_str = ', '.join(columns)    insert_statements = []
    for record in data:        values = []        for col in columns:            value = record[col]            if value is None:                values.append('NULL')            elif isinstance(value, str):                escaped_value = value.replace("'""''")                values.append(f"'{escaped_value}'")            elif isinstance(value, datetime):                values.append(f"'{value.strftime('%Y-%m-%d %H:%M:%S')}'")            else:                values.append(str(value))
        values_str = ', '.join(values)        insert_stmt = f"INSERT INTO {table_name} ({column_str}) VALUES ({values_str});"        insert_statements.append(insert_stmt)
    return insert_statementsdef to_csv(self, data):    df = pd.DataFrame(data)    return df.to_csv(index=False)def to_json(self, data):    return json.dumps(data, indent=2, default=str)

输出生成原理:

  1. SQL INSERT 生成:
    将每条记录转换为格式化的 SQL INSERT 语句,并处理转义与数据类型。
  2. CSV 导出:
    使用 pandas DataFrame 将数据转换为 CSV,确保编码和格式正确。
  3. JSON 导出:
    将数据转换为 JSON,正确序列化日期时间和复杂类型。
  4. 安全校验:
    所有输出格式都包含安全检查,防止 SQL 注入并保持数据完整性。

示例输出:

INSERT INTO users (id, name, email, phone, address, created_at) VALUES (1, 'John Smith', 'john.smith@email.com', '+1-555-123-4567', '123 Main St, Anytown, ST 12345', '2023-06-15 14:30:22');INSERT INTO users (id, name, email, phone, address, created_at) VALUES (2, 'Jane Doe', 'jane.doe@email.com', '+1-555-987-6543', '456 Oak Ave, Somewhere, ST 67890', '2023-07-22 09:15:45');

步骤 5:创建增强版 Agent 界面

增强版 Agent 将基础 SQL Agent 的功能与合成数据生成结合,能解析自然语言请求、提取参数并路由到相应的数据生成函数。

相关代码位于 src/agent.py 文件:

https://github.com/Haimantika/Gradient-SQL-template/blob/main/src/agent.py

最后,将整个应用整合进一个简单的 Streamlit UI,其完整代码可在 GitHub 仓库中找到。

这是一个简单的示例,展示了如何扩展 SQL Agent 模板。

你可以直接使用这种集成方式,或进一步扩展以构建自己的版本。

写在最后

本教程展示了如何使用这些现成模板来满足你公司或项目的需求。

这些模板的魅力在于,它们为你提供了坚实的基础,你只需确定自己要解决的问题,并在其上添加相应功能即可。

以下是一些可在其他模板基础上扩展的思路:

  • LLM Auditor Agent:为你的内容添加事实核查功能,或与公司知识库集成
  • Product Documentation Agent:扩展以支持多种文档类型(PDF、视频、内部 Wiki),或增加多语言支持
  • Twilio API Agent:构建自动化客户支持流程或营销活动自动化
如果你还需要了解更多关于DigitalOcean GPU 服务器及 AI 相关产品服务,可扫描文末二维码咨询DigitalOcean 中国区独家战略合作伙伴卓普云。访问卓普云官网 aidroplet.com,可阅读更多相关产品信息与教程内容。




About us

 关于 DigitalOcean
作为全球领先的云基础设施提供商之一,DigitalOcean 专注于为开发者和企业提供简单、高性能的云服务,包括 Droplet 云主机、 GPU Droplet 云服务、托管数据库(PostgreSQL、MySQL 、MongoDB 、Kafka 和 Redis)、对象存储、块存储和Kubernetes、负载均衡等。
自2012年成立以来,凭借简单透明的定价和开发者友好的产品,DigitalOcean 在全球已经有 60 万企业用户在使用。如今,对于中国的出海企业,DigitalOcean 还特别通过中国区独家战略合作伙伴卓普云提供技术支持、售前服务。所有用户都可以通过卓普云与 DigitalOcean 进行直签,并享受相同的服务以及中文的技术支持。
往期回顾

Read More

【声明】内容源于网络
0
0
卓普云 AI Droplet
DigitalOcean中国在等你
内容 209
粉丝 0
卓普云 AI Droplet DigitalOcean中国在等你
总阅读1
粉丝0
内容209