当前位置: 首页 > news >正文

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

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 条真实感用户数据:
    1. 生成真实姓名,如 “John Smith”、“Sarah Johnson”
    2. 生成有效邮箱地址,如 john.smith@email.com
    3. 添加电话号码、地址和时间戳
    4. 保证数据关系与约束条件成立
  4. 格式转换 系统将生成的数据转换为所需格式:
    1. SQL:生成可直接执行的 INSERT 语句
    2. CSV:格式化为可导入表格的数据
    3. JSON:结构化为可供 API 调用的数据
  5. 安全验证 所有生成数据均经过验证以确保:
    1. 未访问任何生产数据
    2. 防止 SQL 注入
    3. 遵守记录数量限制
    4. 保持数据完整性
  6. 用户展示 最终数据在网页界面展示,包含:
    1. 实时预览表格
    2. 各格式的下载按钮
    3. 复制到剪贴板功能
    4. 成功生成的确认提示

构建数据生成器

步骤 1:配置 DigitalOcean Gradient AI 凭证

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

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

  1. 在 cloud.digitalocean.com 注册 DigitalOcean 账户
  2. 在控制台进入 “Agent Platform” 部分
  3. 创建新工作区或使用已有工作区并新建一个 Agent(可参考指南中的步骤)
  4. 创建后,前往 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 usersdef generate_orders(self, count=10, amount_range=(10, 1000), year=2024):orders = []for i in range(count):order = {'id': i + 1,'user_id': self.fake.random_int(min=1, max=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=1, max=10)}orders.append(order)return orders

完整代码位于 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_statements
def 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 文件。

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

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

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

写在最后

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

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

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

  • LLM Auditor Agent: 为你的内容添加事实核查功能,或与公司知识库集成
  • Product Documentation Agent: 扩展以支持多种文档类型(PDF、视频、内部 Wiki),或增加多语言支持
  • Twilio ​API​ Agent: 构建自动化客户支持流程或营销活动自动化

如果你还需要了解更多关于 DigitalOcean GPU 服务器及 AI 相关产品服务,可咨询 DigitalOcean 中国区独家战略合作伙伴卓普云。访问卓普云官网 aidroplet.com,可相关产品信息与教程内容。

http://www.dtcms.com/a/605753.html

相关文章:

  • 无锡网站建设方案企业计划书
  • 做购票系统网站网站开发推广方案策划书
  • JVM GC 垃圾回收体系完整讲解
  • JVM 内存结构的详细介绍
  • Linux命令-egrep命令(文本搜索工具)
  • 《Flutter全栈开发实战指南:从零到高级》- 14 -网络请求与数据解析
  • 模板网站配置文件seo难不难
  • div2 1052 个人补题笔记
  • 【1.10】基于FPGA的costas环开发4——鉴相器模块开发
  • C语言编译软件 | 如何选择适合自己的编译器
  • 怎么做网站外贸wordpress 本地 域名绑定
  • DSP中断工作原理
  • 【LeetCode】109. 有序链表转换二叉搜索树
  • Verilog 利用伪随机,时序,按键消抖等,实现一个(打地鼠)游戏
  • 【音视频】均衡器(Equalizer)技术详解
  • win11安装mysql社区版数据库
  • 菏泽定制网站建设推广花艺企业网站建设规划
  • 哪些网站可以做推广婚庆公司网站源码
  • LVS负载均衡群集(一) -- NAT模式
  • 【ZeroRnge WebRTC】RFC 8445:ICE 协议规范(中文整理与译注)
  • librtp 实现详解:仓颉语言中的 RTP和RTCP 协议库开发实践
  • Android http网络请求的那些事儿
  • 两台 centos 7.9 部署 pbs version 18.1.4 集群
  • 【动手学深度学习】8.1. 序列模型
  • 【AI软件开发】从文献管理到知识编织:构建AI驱动的学术研究工作流
  • 网站上面图片上传尺寸建设部二级结构工程师注销网站
  • PostIn从初级到进阶(3) - 如何对接口快速设计并管理接口文档
  • 按键精灵安卓/ios脚本开发辅助工具:yolo转换教程
  • 人工智能驱动下的OCR API技术演进与实践应用
  • 昆明网站建设介绍湛江专业雷剧全集