Упрощённое тестирование с шаблоном Gradient™ AI SQL Agent
ИИ значительно сократил время, необходимое для создания проектов с нуля. На Linux-Console.net мы постоянно работаем над проектами с упором на код, которые могут помочь вам создавать готовые к производству приложения, а также адаптировать их под ваши собственные нужды.
В прошлом месяце мы анонсировали стартовый набор SeaNotes, а в этом месяце рады представить шаблоны агентов.
В этой статье вы узнаете, как можно расширить шаблон агента SQL для включения синтетической генерации запросов, которая создает безопасные тестовые наборы данных и предлагает скрипты вставки, не затрагивая данные производственной базы.
Вот как это работает:
Основные выводы
Прочитав эту статью, вы узнаете, как:
- Используйте шаблоны агентов и расширяйте их для вашего собственного варианта использования
- Как вы можете добавить агентные возможности в свои приложения с помощью платформы Gradient AI от Linux-Console.net.
Что такое шаблоны агентов?
Шаблоны агентов — это готовые к использованию стартовые наборы с приоритетом на код, предназначенные для использования на платформе Gradient AI от Linux-Console.net. Каждый шаблон представляет собой проект на Python, который вы можете клонировать, настроить и развернуть за считанные минуты.
Вот шаблоны, которые доступны в настоящее время:
| Шаблон | Возможности | Ключевые технические характеристики |
|---|---|---|
| Агент Аудитора LLM | Добавляет слой проверки или факт-чеккинга к большой языковой модели (LLM), осуществляя поиск в интернете (через API Tavily) и при необходимости используя структурированные внешние данные для обоснования. | • Интегрируется с API Tavily • Поддерживает опциональное использование базы знаний (KB) для более надежных ответов |
| Агент по документации продукта | Создаёт чат-бота поддержки, используя документацию вашего продукта, чтобы пользователи могли задавать вопросы и получать точные ответы из документации. | • Поиск документов на основе встраивания • Поддержка истории чата/контекста разговора • Работает с любыми предоставленными вами документами о продукте |
| Агент SQL | Преобразует команды на естественном языке в SQL-запросы (только для чтения) к базе данных MySQL, динамически извлекая схему и выполняя безопасные запросы. | • Инспекция схемы для понимания структуры таблиц/столбцов • Механизмы защиты для обеспечения запросов только на чтение • Преобразование естественного языка в SQL с проверкой безопасности |
| Агент Twilio API | Обеспечивает отправку SMS (маркетинговых или транзакционных) через Twilio с логикой для автоматизации потоков сообщений. | • Интеграция SDK/API Twilio • Подключаемая логика обмена сообщениями • |
Вы можете использовать эти шаблоны как есть или адаптировать их для собственного использования.
Как работает сервис генерации синтетических данных
Сервис генерации синтетических данных создан для создания реалистичных тестовых наборов данных для тестирования и разработки. Он использует следующие четыре уровня в организованной архитектуре микросервисов: когда кто-то нажимает кнопку «Сгенерировать данные» или вводит запрос на естественном языке, например «Сгенерируй 10 тестовых пользователей», происходит следующее:
1. Слой обработки ввода пользователя: Обрабатывает запрос пользователя через чат-интерфейс или ручную настройку, извлекая такие параметры, как тип данных, количество записей и формат вывода.
2. Слой интерпретации запросов с поддержкой ИИ: Использует платформу Gradient AI от Linux-Console.net для понимания запросов на естественном языке и определения подходящей стратегии генерации данных, включая проверку безопасности, чтобы гарантировать, что к производственным данным не осуществляется доступ.
3. Движок генерации синтетических данных: Принимает интерпретированный запрос и использует библиотеку Faker для создания реалистичных тестовых данных с правильными типами полей, связями и ограничениями. Этот движок может генерировать пользователей, заказы, платежи, продукты и пользовательские схемы.
4. Слой вывода в нескольких форматах: Преобразует сгенерированные данные в запрошенный формат (SQL INSERT-запросы, CSV или JSON) и предоставляет пользователю с опциями загрузки и предварительным просмотром в реальном времени.
Подробный поток данных
Вот что именно происходит, когда пользователь запрашивает «Сгенерировать 10 фиктивных пользователей с случайными именами и адресами электронной почты»:
1. Обработка ввода пользователя: Интерфейс Streamlit принимает запрос и извлекает параметры (count=10, data_type=users, fields=[‘name’, ’email’])
2. Интерпретация запроса ИИ: Агент Gradient AI обрабатывает запрос на естественном языке и определяет, что необходимо сгенерировать данные пользователя с определенными требованиями к полям
3. Модуль генерации данных: SyntheticDataGenerator создаёт 10 реалистичных пользовательских записей с помощью Faker: — Генерирует реалистичные имена, такие как «John Smith», «Sarah Johnson» — Создаёт действительные адреса электронной почты, такие как john.smith@email.com — Добавляет номера телефонов, адреса и временные метки — Обеспечивает соблюдение связей между данными и ограничений
4. Преобразование формата: Система конвертирует сгенерированные данные в запрошенный формат вывода:- SQL: Создает инструкции INSERT, готовые для выполнения в базе данных- CSV: Форматирует данные для импорта в таблицы- JSON: Структурирует данные для использования через API
5. Проверка безопасности: Все сгенерированные данные проверяются для обеспечения: — Отсутствия доступа к производственным данным — Предотвращения SQL-инъекций — Соблюдения лимитов количества записей — Сохранения целостности данных
6. Презентация для пользователя: Финальные данные отображаются в веб-интерфейсе с: — Таблицей предварительного просмотра в реальном времени — Кнопками загрузки для каждого формата — Функцией копирования в буфер обмена — Сообщениями о успешном выполнении
Постройте генератор
Шаг 1 — Настройка учетных данных Gradient AI на Linux-Console.net
Перед расширением шаблона SQL Agent необходимо настроить учетные данные Linux-Console.net Gradient AI. Это важно для возможностей обработки естественного языка на базе ИИ.
- Зарегистрируйтесь для создания аккаунта Linux-Console.net на cloud.linux-console.net
- Перейдите в раздел «Платформа агента» на панели управления Linux-Console.net
- Создайте новое рабочее пространство или используйте существующее, и создайте агента. Вы можете следовать шагам, указанным в этом руководстве по созданию агента.
- После создания агента перейдите в настройки рабочего пространства Gradient AI, получите токен доступа для API и запишите идентификатор вашего рабочего пространства
Вот как выглядит агент Gradient AI на Linux-Console.net в консоли:
Шаг 2 — Расширение шаблона агента SQL
Далее мы расширяем шаблон агента SQL Linux-Console.net возможностями генерации синтетических данных. Базовый шаблон обеспечивает безопасное выполнение SQL-запросов и интроспекцию схемы, которую мы дополняем функциями генерации данных.
Основная архитектура расширений:
Расширенный SQL-агент дополняет базовый шаблон интеграцией генератора синтетических данных и обновлением системного запроса для обработки запросов на генерацию данных. Он сохраняет все исходные возможности 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=(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 с правильной сериализацией объектов datetime и других сложных типов.
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 — Создание усовершенствованного интерфейса агента
Улучшенный агент сочетает в себе возможности базового SQL-агента с генерацией синтетических данных. Он обрабатывает запросы на естественном языке, извлекает параметры и направляет их к соответствующим функциям генерации данных.
Вы можете найти код этого раздела в файле src/agent.py
Заключительная часть, которая объединяет всё приложение, заключается в размещении всего в простом интерфейсе Streamlit, а код для этого можно найти в репозитории на GitHub.
Это очень простой пример того, как вы можете расширить шаблон агента SQL. Вы можете использовать интеграцию как есть или расширить её, чтобы создать что-то подобное тому, что я сделал в этом руководстве.
Прежде чем мы закончим
Этот учебник был быстрым способом показать, как вы можете использовать готовые шаблоны для нужд вашей компании и проекта.
Красота этих шаблонов заключается в том, что они предоставляют вам прочную основу, вам лишь нужно определить, какую конкретную проблему вы пытаетесь решить, и добавить эту функциональность сверху.
Вот несколько идей, на которых вы можете строить, используя другие шаблоны:
- Агент Аудитора LLM: Добавляйте проверку фактов для вашего собственного контента или интегрируйте с базой знаний вашей компании
- Агент документации продукта: расширьте его возможности для работы с несколькими типами документов (PDF, видео, внутренние вики) или добавьте поддержку нескольких языков
- Агент Twilio API: Создавайте автоматизированные сценарии обслуживания клиентов или автоматизацию маркетинговых кампаний
Спасибо, что учитесь вместе с сообществом Linux-Console.net.





Добавить комментарий