برنامه نویسی

ساخت یک SQL Query Generator با استفاده از ToolJet + Gemini API

معرفی

این آموزش شما را در فرآیند ساخت یک تولید کننده پرس و جوی SQL مبتنی بر هوش مصنوعی با استفاده از ToolJet، سازنده اپلیکیشن بصری با کد پایین، و Gemini API، یک API پردازش زبان طبیعی قدرتمند، راهنمایی می کند. برنامه به دست آمده کاربران را قادر می سازد تا درخواست های ورودی را به زبان انگلیسی ساده وارد کنند، که سپس به پرس و جوهای SQL اجرایی ترجمه می شوند. ما از سازنده برنامه بصری ToolJet برای ایجاد یک رابط کاربری کاربرپسند و سازنده Query با کد پایین ToolJet برای اتصال آن به نقاط انتهایی API Gemini استفاده خواهیم کرد.


پیش نیازها:

  • ابزار جت: یک پلتفرم منبع باز و با کد پایین که برای ساخت و استقرار سریع ابزارهای داخلی طراحی شده است. در اینجا برای یک حساب ابری ToolJet ثبت نام کنید.
  • کلید API Gemini: با استفاده از اعتبارنامه های موجود Google خود وارد Google AI Studio شوید. در رابط AI Studio، می‌توانید کلید API خود را پیدا کرده و کپی کنید.

در اینجا یک پیش نمایش سریع از برنامه نهایی ما آمده است:
توضیحات تصویر


ایجاد رابط کاربری ما

  • به حساب ToolJet خود وارد شوید. به داشبورد ToolJet بروید و روی آن کلیک کنید برنامه جدید ایجاد کنید دکمه در گوشه بالا سمت چپ ToolJet دارای بیش از 45 جزء داخلی است. این به ما این امکان را می دهد که در کمترین زمان رابط کاربری خود را راه اندازی کنیم.
  • بکشید و رها کنید ظرف جزء روی بوم از کتابخانه مؤلفه در سمت راست. ارتفاع و عرض را تنظیم کنید ظرف جزء مناسب
  • به طور مشابه، آن را بکشید و رها کنید آیکون و دو متن اجزای داخل ظرف شما ما از این دو استفاده خواهیم کرد متن اجزای هدر و متون فرعی ما.
  • انتخاب کنید آیکون جزء، به پانل ویژگی های آن در سمت راست بروید و نماد پایگاه داده را در زیر آن انتخاب کنید آیکون ویژگی.
  • رنگ را تغییر دهید آیکون و متن قطعات با توجه به ترجیح شما در اینجا از سایه آبی (کد HEX: #4A7EE2) استفاده خواهیم کرد.
  • اندازه فونت و محتوای آن را تغییر دهید متن جزء مناسب

توضیحات تصویر

  • بکشید و رها کنید کشویی جزء داخل کانتینر ما از این مؤلفه برای انتخاب بین مدل های ارائه شده توسط شرکت استفاده خواهیم کرد جوزا API.
  • این جزء را به عنوان تغییر نام دهید مدل کشویی. تغییر نام مؤلفه ها به دسترسی سریع به داده های آنها در طول توسعه کمک می کند.
  • به طور مشابه، سه را بکشید و رها کنید Textarea اجزای داخل کانتینر ما از این مؤلفه ها برای ورودی Data Schema، ورودی پرس و جوی متنی و سومی برای نمایش پرس و جوی SQL تولید شده استفاده خواهیم کرد.
  • نام سه را تغییر دهید Textarea اجزاء به عنوان پایگاه داده SchemaInput، textPrompt، و generatedQuery به ترتیب.
  • ارتفاع و عرض را تنظیم کنید Textarea اجزاء به طور مناسب
  • زیر خواص بخش، ورودی مقدار پیش‌فرض را پاک کرده و متن Placeholder مناسب را وارد کنید.
  • دیگری را بکشید و رها کنید متن جزء. ما از این به عنوان یک برچسب برای درخواست ایجاد شده خود استفاده خواهیم کرد Textarea جزء. رنگ، اندازه فونت و محتوا را به درستی تغییر دهید.
  • بیایید آخرین مؤلفه خود، کشیدن و رها کردن a را اضافه کنیم دکمه جزء. ما از این برای ایجاد پرس و جوی SQL استفاده خواهیم کرد. رنگ، اندازه و محتوا را به درستی تغییر دهید.

توضیحات تصویر


ایجاد پرس و جو

ToolJet امکان اتصال به API های شخص ثالث را با استفاده از ویژگی پرس و جو REST API خود فراهم می کند. ما از این برای ادغام رابط کاربری خود با نقاط پایانی Gemini API استفاده خواهیم کرد. ما دو عبارت REST API جداگانه ایجاد خواهیم کرد:

  1. اولین پرس و جو لیستی از تمام مدل های هوش مصنوعی ارائه شده توسط شرکت را دریافت می کند جوزا API.
  2. پرس و جو دوم یک درخواست POST خواهد بود که ورودی های کاربر را به آن ارسال می کند جوزا نقطه پایانی API. پرس و جوی SQL تولید شده را بر اساس آن ورودی ها برمی گرداند.

ما همچنین از ToolJet استفاده خواهیم کرد ثابت های فضای کاری برای ذخیره ایمن ما جوزا کلید ای پی ای. ثابت‌های فضای کاری در سمت سرور حل می‌شوند. این تضمین می کند که مقادیر واقعی ثابت ها با بارهای شبکه ارسال نمی شوند. در عوض، سرور این مقادیر را حل می‌کند و در نتیجه آنها را از قرار گرفتن در معرض مشتری محافظت می‌کند.

  • برای ایجاد یک ثابت فضای کاری، روی لوگوی ToolJet در گوشه سمت چپ بالا کلیک کنید. از منوی کشویی انتخاب کنید ثابت های فضای کاری.
  • کلیک کنید روی ثابت جدید ایجاد کنید دکمه. نام را به عنوان تنظیم کنید GEMINI_API_KEY و خود را وارد کنید جوزا کلید API در ورودی مقدار.
  • کلیک کنید روی ثابت اضافه کنید دکمه. این ثابت اکنون در سراسر فضای کاری ما در دسترس خواهد بود و با استفاده از آن می توان به آن دسترسی داشت {{constants.GEMINI_API_KEY}}.
  • به برنامه خود برگردید و Query Manager را باز کنید.
  • کلیک کنید بر روی + اضافه کردن را فشار دهید و انتخاب کنید REST API گزینه.
  • نام پرس و جو را به عنوان تغییر نام دهید getModels.
  • روش درخواست را حفظ کنید گرفتن و آدرس زیر را در ورودی URL قرار دهید. این نقطه پایانی Gemini API است که مدل‌های موجود را به ما برمی‌گرداند.
https://generativelanguage.googleapis.com/v1beta/models?key={{constants.GEMINI_API_KEY}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • برای اطمینان از اینکه پرس و جو در هر بار بارگیری برنامه اجرا می شود، آن را فعال کنید این پرس و جو در بارگذاری برنامه اجرا شود؟ تغییر وضعیت.
  • به طور مشابه، یک پرس و جو دیگر ایجاد کنید و آن را به عنوان نامگذاری کنید getSqlQuery.
  • در درخواست پارامتر، انتخاب کنید پست به عنوان Method از منوی کشویی و URL زیر را جایگذاری کنید.
https://generativelanguage.googleapis.com/v1beta/{{components.modelDropdown.value}}:generateContent?key={{constants.GEMINI_API_KEY}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • به بخش Body of the بروید getSqlQuery. روشن کنید JSON خام و کد زیر را وارد کنید:
{{
  `{
   "contents": [{
     "parts": [{
       "text": "Data Schema: ${components.databaseSchemaInput.value.replaceAll("\n"," ")}, Text Prompt: Write a standard SQL query that will ${components.textPrompt.value.replaceAll("\n"," ")}. Return with correct formatting but without any code highlighting and any backticks"
      },],
    },],
  }`
}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


ادغام UI با Queries

اکنون که با موفقیت UI و پرس و جوهای خود را ساخته ایم، گام بعدی ادغام آنها است.

  • انتخاب کنید دکمه جزء، تحت خواص بخش، و کلیک کنید مدیریت رویداد جدید را فشار دهید تا یک رویداد جدید ایجاد کنید.
  • انتخاب کنید روی کلیک به عنوان رویداد، Query را اجرا کنید به عنوان عمل، و انتخاب کنید getSqlQuery به عنوان پرس و جو.
  • انتخاب کنید کشویی جزء، تحت خواص بخش، و کد زیر را برای مقادیر و برچسب های Option وارد کنید.

مقادیر گزینه:

{{queries.getModels.data.models.map(item => item.name)}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برچسب های گزینه:

{{queries.getModels.data.models.map(item => item.displayName)}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  • انتخاب کنید generatedQuery Textarea جزء، تحت خواص بخش، و کد زیر را برای ورودی مقدار پیش فرض وارد کنید.

مقدار پیش فرض:

{{queries.getSqlQuery.data.candidates[0].content.parts[0].text}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مولد پرس و جوی SQL با هوش مصنوعی ما کامل است. بیایید نمونه ای از داده ها را برای آزمایش آن ارائه کنیم.

طرحواره پایگاه داده:

Orders (id, product_id, address, customer_name, is_paid)
Products (id, quantity, moq)
Customers (id, name, email, phone, addresses)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

درخواست/پرسش متنی:

find all the prepaid orders from a customer named Alex JR
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی مورد انتظار:

توضیحات تصویر


نتیجه

بابت ساخت موفقیت آمیز یک مولد پرس و جوی SQL مبتنی بر هوش مصنوعی با استفاده از ToolJet و Gemini API تبریک می گویم. اکنون می‌توانید درخواست‌هایی را به زبان انگلیسی ساده وارد کنید که سپس با دقت به دستورات SQL قابل اجرا ترجمه می‌شوند.
برای یادگیری و کاوش بیشتر در مورد ToolJet، اسناد ToolJet را بررسی کنید یا با ما تماس بگیرید و سوالات خود را در Slack ارسال کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا