یک رابط چت مبتنی بر هوش مصنوعی (AI) برای رابط های برنامه نویسی سیستم کسب و کار خود بسازید و به همکاران خود اجازه دهید در مورد داده های کسب و کار شما سؤال بپرسند. انجام تجزیه و تحلیل و گزارش داده های سازمان شما برای بهبود نحوه انجام تجارت ضروری است. یافتن مشکلات، کشف روندها و بررسی نتایج همه با داده های مناسب امکان پذیر است، اما به عنوان یک توسعه دهنده، کمک به همکاران غیر کدنویس خود در کشف داده های مناسب می تواند چالش برانگیز باشد.
پروژه SQL Talk یک برنامه متن باز است که از فناوری هوش مصنوعی مولد برای پاسخ دادن به سوالات مربوط به داده های تجاری استفاده می کند. این پروژه از Gemini API و ویژگی Function Calling برای تبدیل سوالات داده های کسب و کار به پرس و جوهای SQL و فراخوانی های API و سپس تبدیل نتایج به زبان ساده استفاده می کند. شما می توانید از این پروژه به عنوان نقطه شروعی برای ایجاد یک عامل داده برای کسب و کار خود استفاده کنید و به همکاران خود کمک کنید تا بدون نیاز به نوشتن یکسری کدهای یکبار مصرف، پاسخ دریافت کنند.
برای یک نمای کلی ویدیویی از پروژه و نحوه گسترش آن، از جمله بینش افرادی که آن را می سازند، AI Data Agent | با هوش مصنوعی گوگل بسازید . در غیر این صورت، می توانید با استفاده از دستورالعمل های زیر، توسعه پروژه را شروع کنید.
شکل 1. رابط کاربری برنامه پروژه SQL Talk.
راه اندازی پروژه
این دستورالعملها شما را در راهاندازی پروژه SQL Talk برای توسعه و آزمایش راهنمایی میکنند. مراحل کلی عبارتند از ایجاد پروژه SQL Talk، راه اندازی یک پروژه توسعه Google Cloud Shell Editor ، دریافت شناسه پروژه Google Cloud و استفاده از یک اسکریپت برای پیکربندی تنظیمات پروژه. این دستورالعملها نحوه راهاندازی پروژه را با استفاده از Cloud Shell Editor توضیح میدهند که راهاندازی، اجرا و بهروزرسانی پروژه را سریع و راحت میکند.
یک نمونه Cloud Shell برای پروژه ایجاد کنید
می توانید پروژه SQL Talk را با شبیه سازی مخزن پروژه در یک نمونه Cloud Shell راه اندازی کنید. این فرآیند یک نمونه محیط توسعه مجازی را در زیرساخت Google Cloud برای پروژه راهاندازی میکند و مخزن کد را در آن محیط مجازی شبیهسازی میکند.
برای ایجاد یک نمونه Cloud Shell برای SQL Talk:
- برای ایجاد یک نمونه Cloud Shell از SQL Talk روی پیوند زیر کلیک کنید.
این پیوند یک نمونه Google Cloud Shell Editor را راهاندازی میکند و مخزن SQL Talk را در نمونه شبیهسازی میکند.
شکل 2. پروژه SQL Talk در محیط توسعه Google Cloud Shell Editor کلون شده است.
شناسه پروژه Cloud دریافت کنید
پروژه SQL Talk از شناسه پروژه Google Cloud برای اتصال به سرویسهای Google Cloud از جمله مدلهای Gemini استفاده میکند. شما یک شناسه پروژه را در ویرایشگر Cloud Shell پیکربندی میکنید تا به برنامه اجازه دهد با این سرویسها ارتباط برقرار کند.
برای اتصال ویرایشگر پوسته ابری به شناسه پروژه:
- به کنسول Google Cloud بروید و در صورت نیاز وارد سیستم شوید.
- یک پروژه Cloud موجود را انتخاب کنید یا یک پروژه جدید ایجاد کنید .
- شناسه پروژه ابری پروژه را یادداشت کنید.
نمونه ویرایشگر را به پروژه خود متصل کرده و پروژه را پیکربندی کنید. در پنجره Cloud Shell Editor، پنل ترمینال دستور زیر را وارد کنید:
gcloud config set project YOUR_PROJECT_ID
پروژه SQL Talk را پیکربندی کنید
پروژه SQL Talk از خدمات Google Cloud برای اجرای پروژه استفاده می کند، از جمله سرویس پایگاه داده BigQuery و Vertex AI API برای اتصال به مدل های Gemini. پروژه SQL Talk شامل یک اسکریپت setup.sh
است که پروژه را با سرویس های Google Cloud مورد نیاز پیکربندی می کند و نسخه پیش فرض پروژه را شروع می کند.
برای پیکربندی و اجرای نمونه پروژه Cloud Shell Editor:
در پنل ترمینال پنجره Cloud Shell Editor، به فهرست پروژه Cloud Shell SQL Talk (
/sql-talk-app
) بروید:cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
در پنل ترمینال دستور زیر را وارد کنید:
bash setup.sh
هنگامی که اسکریپت راه اندازی با موفقیت کامل شد، باید پیامی شبیه به زیر را در پنجره ترمینال Cloud Shell Editor مشاهده کنید. این پیام نشان می دهد که فرآیند راه اندازی موفقیت آمیز بوده و برنامه SQL Talk در حال اجرا است:
You can now view your Streamlit app in your browser.
Network URL: http://##.##.##.##:8080
External URL: http://##.##.##.##:8080
پروژه را تست کنید
هنگامی که راه اندازی پروژه SQL Talk را کامل کردید، می توانید برنامه را آزمایش کنید تا بررسی کنید که مطابق انتظار عمل می کند. اسکریپت راه اندازی به طور خودکار برنامه را با اجرای آن شروع می کند و می توانید با استفاده از مراحل زیر برنامه را مجددا راه اندازی کنید.
برای اجرای برنامه SQL Talk:
اگر ویرایشگر پوسته ابری غیرفعال و قطع شده است، ممکن است لازم باشد دوباره به شناسه پروژه Cloud خود متصل شوید.
gcloud config set project YOUR_PROJECT_ID
در پنل ترمینال پنجره Cloud Shell Editor، به فهرست پروژه Cloud Shell SQL Talk بروید.
cd ~/cloudshell_open/generative-ai/gemini/function-calling/sql-talk-app
در پنل ترمینال دستور زیر را وارد کنید.
~/miniforge/bin/streamlit run app.py --server.enableCORS=false \ --server.enableXsrfProtection=false --server.port 8080
برنامه SQL Talk را مشاهده کنید. در سمت راست بالای پنجره Cloud Shell Editor، دکمه Web Preview و سپس Preview در پورت 8080 را انتخاب کنید.
برای مشاهده بهروزرسانیهای برنامه SQL Talk:
- در پیشنمایش وب برنامه وب SQL Talk، مرورگر یا برگه مرورگر را دوباره بارگیری کنید.
برای توقف برنامه SQL Talk:
- در پنل ترمینال پنجره Cloud Shell Editor، Ctrl-C را تایپ کنید.
برنامه را اصلاح کنید
میتوانید رفتار را تغییر دهید و با تغییر کد پایتون برنامه، قابلیتهایی را به برنامه SQL Talk اضافه کنید. در این بخش نحوه افزودن یک فراخوانی تابع جدید به برنامه SQL Talk توضیح داده شده است.
ویژگی Gemini API Function Calling از یک نحو خاص برای تعریف توابعی استفاده میکند تا توسط مدل مولد برای پاسخ به سؤالات یا حل مشکلات استفاده شود. این نحو نیازی به مطابقت دقیق با نحو یک فراخوانی API واقعی ندارد. در عوض، از ویژگی فراخوانی تابع استفاده میکنید تا مدل تولیدی را مجبور کنید ورودی داده یا پارامترهای خاصی را ارائه کند که با نحو فراخوانی API مطابقت دارد، و سپس از آن پارامترها برای اجرای فراخوانهای API واقعی در کد برنامهتان استفاده کنید.
اجرای این مثال به شما نشان میدهد که چگونه یک تعریف فراخوانی تابع برای فهرست کردن پرسشها یا کارهای پایگاه داده اخیر ایجاد کنید و سپس آن تعریف را به فراخوانی API واقعی در کد برنامه SQL Talk ترسیم کنید.
تعریف فراخوانی تابع را اضافه کنید
یک فراخوان تابع جدید برای فهرست کردن پرسشها یا کارهای پایگاه داده اخیر اضافه کنید. این تعریف توسط مدل مولد برای درک اینکه فراخوانی API چه کاری انجام می دهد و به چه پارامترهای ورودی نیاز دارد استفاده می شود. این تعریف تابع مثال بدون هیچ پارامتری تعریف شده است.
برای افزودن یک فراخوانی تابع جدید به برنامه:
- در پنجره Cloud Shell Editor، فایل کد
sql-talk-app/app.py
را باز کنید. پس از اعلان تابع
list_datasets_func
، یکFunctionDeclaration
جدید اضافه کنید.list_jobs_func = FunctionDeclaration( name="list_jobs", description="Get a list of the 10 most recent database requests to help answer the user's question", parameters={ "type": "object", "properties": { }, }, )
تابع جدید را به شی
sql_query_tool
اضافه کنید.sql_query_tool = Tool( function_declarations=[ sql_query_func, list_datasets_func, List_jobs_func, # add this new function list_tables_func, get_table_func, ], )
برای افزودن کد برای اجرای فراخوانی API برای تابع جدید:
در فایل کد
sql-talk-app/app.py
، یک بندif
جدید به حلقهwhile function_calling_in_process:
اضافه کنید.if response.function_call.name == "list_datasets": ... # add this if clause for list_jobs function if response.function_call.name == "list_jobs": api_response = client.list_jobs(max_results=10) # API request(s) api_response = str([job.job_id for job in api_response]) api_requests_and_responses.append( [response.function_call.name,params, api_response])
منابع اضافی
برای اطلاعات بیشتر در مورد پروژه SQL Query، به مخزن کد مراجعه کنید و پست وبلاگ انجمن ابری را در مورد پروژه SQL Talk بررسی کنید. اگر برای ساختن برنامه به کمک نیاز دارید یا به دنبال همکاری با توسعه دهندگان دیگر هستید، سرور Discord انجمن توسعه دهندگان Google و انجمن AI/ML Google Cloud را بررسی کنید. برای پروژههای Build with Google AI، لیست پخش ویدیو را بررسی کنید.