چگونه یک پلاگین ChatGPT بسازیم – بررسی روش استفاده از PodcastAPI.com و Cloudflare Pages بدون سرور
ChatGPT یک ابزار تکمیل سازی خودکار بسیار هوشمند است. دستورالعملها یا سوالهایی را به زبان طبیعی میگیرد و خروجیهای مبتنی بر متن ارائه میدهد.
اما در اینجا یک نکته وجود دارد. دانش ChatGPT فقط تا سپتامبر ۲۰۲۱ به روز رسانی شده است. بنابراین، از زمان نوشتن این مقاله(ژوئن ۲۰۲۳)، مدل از هیچ رویداد یا داده ای که مربوط به پس از سپتامبر ۲۰۲۱ است آگاه نیست.
اینجا جایی است که پلاگین های ChatGPT به کمک می آیند. این پلاگین ها به ChatGPT اجازه می دهند تا با API های خارجی برای دسترسی به اطلاعات به روز تعامل داشته باشد. آنها همچنین می توانند به ChatGPT کمک کنند تا اقدامات خاصی مانند انجام یک کار در زاپیر یا ارسال ایمیل را انجام دهد.
از دیدگاه یک ارائهدهنده API (مانند Listen Notes که PodcastAPI.com را ارائه میکند)، ایجاد یک پلاگین ChatGPT مشابه ارائه یک رابط کاربر پسند و مبتنی بر هوش مصنوعی برای API شما است. برای کاربران مشتاق ChatGPT، ساخت پلاگین های سفارشی می تواند موارد استفاده آن را به میزان قابل توجهی گسترش دهد.
در این مقاله، ما از یک نمونه واقعی از پلاگین Listen Notes ChatGPT (که از قبل در پلاگین استور موجود است) به عنوان مطالعهای برای روشن کردن روند ایجاد یک پلاگین ChatGPT استفاده خواهیم کرد.
این فرآیند ساده تر از آن چیزی است که شما فکر میکنید. در پایان این مقاله، باید درک لازم را برای استفاده از هر API و ایجاد پلاگین ChatGPT خود داشته باشید.
به راحتی می توانید پلاگین Listen Notes ChatGPT را امتحان کنید و کد آن را در GitHub پیدا کنید.
پلاگین های ChatGPT چگونه کار می کنند؟
برای یک کاربر، فرآیند استفاده از پلاگین ChatGPT ساده است. فقط باید پلاگین را در رابط کاربری ChatGPT فعال کنید و سپس دستورات را تایپ کنید.
نمونه ای از یک پلاگین ChatGPT مشغول به کار
برای توسعه دهندگان، این فرآیند به کار بیشتری نیاز دارد. شما باید با استفاده از نام دامنه (Domain) خود، یک فایل hosted ai-plugin.json را آماده کنید. این فایل شامل ابردادههای مربوط به پلاگین و مشخصات OpenAPI است که نقاط پایانی API موجود را که ChatGPT میتواند با آنها تعامل داشته باشد، شرح میدهد.
در اصل، یک پلاگین ChatGPT یک فراخواننده API هوشمند است. کاربر به جای نوشتن کد، از زبان طبیعی برای فراخوانی این APIهای خارجی استفاده می کند. تمام نقاط پایانیAPI، و همچنین ai-plugin.json و openapi.json، باید تحت یک نام دامنه میزبانی شوند.
موضوع مطالعه: چگونه با استفاده از PodcastAPI.com و صفحات Cloudflare یک پلاگین Podcast Discovery ChatGPT بسازیم
پیش نیازها
پلاگین ما باید بتواند پادکست ها یا قسمت های گوناگون را بر اساس کلمات کلیدی، زبان ها، کشورها و مدت زمان صوت و سایر عوامل جستجو کند.
ما از PodcastAPI.com و Cloudflare Pages برای ساخت این پلاگین ChatGPT استفاده خواهیم کرد.
PodcastAPI.com یک API پادکست پرکاربرد در سطح جهانی است و هزاران برنامه/وب سایت پادکست را پشتیبانی میکند. این یک API معمولی RESTful است.
به عنوان مثال، برای یافتن پادکستهای مرتبط با “startup” به زبان انگلیسی، یک درخواست API مانند GET /search?q=startup&type=podcast&language=English ارسال کنید. میتوانید به راحتی تمام نقاط پایانی Podcast API را با سرور ساختگی امتحان کنید و ببینید که دادههای JSON که به عنوان پاسخ برگرداننده میشوند در صفحه داکیومنتهای API چگونه به نظر میرسند.
Cloudflare Pages یک پلت فرم بدون سرور با هزینه رایگان است. به شما امکان می دهد یک برنامه وب پویا با جاوا اسکریپت بسازید و بدون آشکارسازی اعتبار API، درخواست ها را به طور ایمن به API های خارجی ارسال کنید. و از آنجایی که بدون سرور است، لازم نیست نگران تامین سرور، مقیاس پذیری یا مسائل عملیاتی باشید.
ما با استفاده از صفحات Cloudflare از microfeed که یک جایگزین سبک بدون سرور وردپرس است، که از آن میتوانید برای انتشار پادکستها و فایلهای رسانهای به صورت رایگان استفاده کنید، استفاده کردهایم.
این پلاگین دقیقا چگونه کار می کند؟
میتوانید کد منبع پلاگین Listen Notes ChatGPT را در GitHub پیدا کنید: github.com/ListenNotes/listennotes-chatgpt-plugin.
این پلاگین که با جاوا اسکریپت ساخته شده است، به عنوان یک برنامه وب در پلتفرم بدون سرور صفحات Cloudflare مستقر شده است. این استقرار با تکیه بر سه منبع ضروری تحت نام دامنه ai.listennotes.com خدمت می کند:
- فایل ai-plugin.json: همیشه می توانید آن را در https://ai.listennotes.com/.well-known/ai-plugin.json پیدا کنید. مسیر این فایل ثابت است و نباید تغییر کند. در اینجا کد برای مرجع شما آمده است.
- فایل openapi.json: این فایل توسط فایل ai-plugin.json مشخص می شود. در مورد ما، در https://ai.listennotes.com/chatgpt-plugin/openapi.json میزبانی می شود. شما می توانید کد منبع را در اینجا بررسی کنید.
- نقاط پایانی API پروکسی: به عنوان مثال، https://ai.listennotes.com/api/v2/search_episodes. اینها در اصل بستههای کم حجمی از نقاط پایانی واقعی PodcastAPI.com هستند. کد این نقاط پایانی را می توانید در اینجا بیابید.
بنابراین، چگونه این قطعات با هم کار می کنند؟ بیایید عمیق تر بررسی کنیم:
ChatGPT ابتدا، فایل ai-plugin.json را از مسیر ثابت /.well-known/ai-plugin.json شناسایی میکند. این فایل حاوی متادیتا های ضروری در مورد پلاگین است و به ChatGPT در مورد مکان فایل openapi.json اطلاع می دهد. در اینجا داریم:
در مرحله دوم، ChatGPT از فایل openapi.json برای درک نقاط انتهایی API موجود و پارامترهای آنها استفاده می کند. این فایل در اصل به ChatGPT کمک می کند تا نحوه تعامل با API را درک کند.
در نهایت، با استفاده از توضیحات و سایر متادیتا های مشخصشده در فایل openapi.json، ChatGPT میتواند درخواستهای زبان طبیعی را به درخواستهای API خاص ترجمه کند.
به عنوان مثال، درخواست کاربر مانند “جستجوی پادکست های استارتاپ به زبان انگلیسی” توسط ChatGPT به یک درخواست GET برای GET /search_podcasts?q=startup&language=English ترجمه می شود.
امنیت کلیدها
هنگام کار با APIهای خارجی، مانند PodcastAPI.com، یک نگرانی مهم حفظ محرمانه بودن کلیدهای API است. شما میتوانید این کار را از طریق لایههای غیرمستقیم انجام دهید. “همه مشکلات علوم کامپیوتر را میتوان غیرمستقیم حل کرد”.
در مرحله اول، کلید API واقعی (LISTEN_API_KEY در مورد ما) به عنوان یک متغیر محیطی در صفحات Cloudflare قرار دارد. این تضمین می کند که کلید API هرگز در کد نمایش داده نمی شود.
در مرحله بعد، ما از یک سیکرت (CHATGPT_SECRET) برای ChatGPT استفاده می کنیم تا نقاط پایانی API پروکسی خود را فراخوانی کنیم. هنگام ارسال پلاگین به ChatGPT، از شما خواسته می شود که این سیکرت را ارائه دهید.
پس از ارائه سیکرت، ChatGPT یک رمز تایید صادر می کند (CHATGPT_VERIFICATION_TOKEN) که در فایل ai-plugin.json قرار می گیرد. آشکار بودن این رمز هیچ اشکالی ندارد.
در مورد ما، LISTEN_API_KEY، CHATGPT_SECRET، و CHATGPT_VERIFICATION_TOKEN همگی به عنوان متغیرهای محیطی رمزگذاری شده در صفحات Cloudflare ذخیره میشوند و از دید عموم دور نگه داشته میشوند:
نحوه پیمایش در فرآیند Review
قبل از اینکه پلاگین شما در پلاگین استور ChatGPT قرار گیرد، می توانید آن را از طریق دامنه سفارشی خود (در این جا ai.listennotes.com) آزمایش کنید.
هنگامی که آماده ارسال پلاگین خود برای بررسی هستید، این کار را از طریق تیکت Intercom انجام دهید. شما باید به چندین سوال پاسخ دهید و چند نمونه دستور ارائه دهید. بر اساس تجربه ما، حدود ۲ روز طول میکشد تا یکی از اعضای تیم ChatGPT تیکت ما را بررسی کند.
در ابتدا، ارسال ما رد شد، زیرا توضیحات ما به نقطه گذاری ختم نمی شد. ما خیلی سریع یک دوره به توضیحات ai-plugin.json اضافه کردیم، دوباره درخواست را ارسال کردیم و ظرف ۲ ساعت تایید شدیم. بنابراین، از ارسال تا تایید، تقریبا ۲ روز طول کشید.
نحوه تطبیق فرآیند برای سایر API ها
اگر می خواهید کدهای listennotes-chatgpt-plugin را برای کار با سایر API ها تطبیق دهید، سه بخش اصلی وجود دارد که باید آنها را ویرایش کنید:
- ai-plugin.json (کد) را بهروزرسانی کنید: جزئیات بیشتری در این مورد در openai.com پیدا خواهید کرد.
- بهروزرسانی openapi.json (کد): این کار بسیار مهم است زیرا ChatGPT برای شناسایی نقاط پایانی پراکسی به این مشخصات OpenAPI متکی است. برای اطلاعات بیشتر، openai.com را بررسی کنید.
- نقاط پایانی پروکسی API (کد) را برای مطابقت با سایر APIها به روز کنید: نقاط پایانی پروکسی که در صفحات Cloudflare اجرا می شوند باید به روز شوند تا درخواست های API به API های انتخابی شما فرستاده شوند. ممکن است بخواهید با نحوه عملکرد توابع Cloudflare Pages آشنا شوید.
پس از انجام این به روز رسانی ها، می توانید در صفحات Cloudflare مستقر شده و سپس پلاگین خود را برای بررسی به ChatGPT ارسال کنید.
نتیجه گیری
در حالی که هدف این مقاله ارائه اطلاعات مفید برای شما است، به خاطر داشته باشید که پلاگین ChatGPT هنوز در نسخه بتا است و ممکن است تغییر کند.