شروع کار با Codex

منتشر‌شده در towardsdatascience به تاریخ ۱۹ سپتامبر ۲۰۲۱
لینک منبع A first taste of Codex

یکی از نکات برجسته زندگی فنی من در سال ۲۰۲۰، دسترسی به GPT-۳ بود. با تشکر از توصیه‌های ارائه شده در این ویدئو، من توانستم به GPT-3 دسترسی پیدا کنم و مجموعه ای از ویدئوها را که تجربیاتی را که با GPT-3 برای ایجاد دستوراتgit از Englis h ، ایجاد یک چت‌بات فیلم و توصیف برای حرکت در مترو لندن و متروی شهر نیویورک شرح داده بودم، منتشر کنم.

من تحت‌تاثیر مشکلات مختلفی قرار گرفتم که GPT-۳ می‌توانست آن‌ها را حل کند، بنابراین وقتی در مورد Codex شنیدم، مشتاق بودم که آن‌ها را امتحان کنم. کدکس بر یکی از قابلیت‌های GPT-۳ تمرکز کرد و کدهایی از توصیفات زبان انگلیسی تولید کرد. Codex کد را به زبان‌های مختلف از جمله پایتون و JavaScript تولید می‌کند. من به ندرت از JavaScript استفاده می‌کنم، بنابراین وقتی به Codex دسترسی پیدا کردم فکر کردم خوب است که آن را با استفاده از چند مورد ساده از JavaScript تمرین کنم. من به اندازه کافی با JavaScript آشنا هستم که بتوانم مشکلات ساده را با آنچه که Codex تولید می‌کند حل کنم، اما در عین حال به اندازه کافی با JavaScript جستجو می‌کنم تا اگرCodex بتواند برای من کد تولید کند، مفید واقع شوم.

در این مقاله آنچه را که از یک آزمایش اولیه با Codex یاد گرفتم، توضیح خواهم داد.

هدف

برای این آزمایش اولیه، می‌خواستم که Codex یک صفحه وب ساده ایجاد کند که به من اجازه دهد تا ایالت‌های آمریکا را انتخاب کنم و زمانی که یک ایالت انتخاب شد، نقشه آن ایالت را نمایش دهم.

من باید توجه داشته باشم که من در ابتدا تلاش کرده بودم این آزمایش را برای استان‌های کانادا به جای ایالات آمریکا انجام دهم. من وارد برخی مسائل شدم که به گمان من به دلیل مطالب آموزشی برای استان‌های کانادا بود که نسبت به ایالات آمریکا فراوانی کمتری داشتند. هنگامی که من ناحیه مورد نظر را از استان‌های کانادا به ایالات آمریکا تغییر دادم، توانستم نتایج خوبی برای مورد استفاده خود به دست آورم.

آزمایش

شروع کار با کدکس واقعا آسان بود. ایمیل دسترسی که من از OpenAI دریافت کردم مرا به محیط بتا برد و به آنچه که می‌خواستم اشاره کرد. من در سندباکس برای تولید کد به موارد زیر وارد شدم:

یک کنترل با ایالات‌متحده:

create a selection list of the states of the united states

این امر کد JavaScript زیر را ایجاد می‌کند:

·         /* create a selection list of the states of the united states */
·         var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado',
·         'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana',
·         'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan',
·         'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey',
·         'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania',
·         'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia',
·         'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
·         var stateSelect = document.createElement('select');
·         stateSelect.id = 'stateSelect';
·         for (var i = 0; i < states.length; i++) {
·           var stateOption = document.createElement('option');
·           stateOption.value = states[i];
·           stateOption.innerHTML = states[i];
·           stateSelect.appendChild(stateOption);
·         }
·         document.body.appendChild(stateSelect);

یک تصویر نقشه اولیه برای اولین حالت در لیست انتخاب. من یاد گرفتم که باید Codex را باURL یک تصویر که ساختار منظمی داشت و URL های تصویر معتبری تولید می‌کرد، زمانی که نام ایالت اولیه با دیگر نام‌های ایالت جایگزین شد ترکیب می‌کردم. همچنین یاد گرفتم که با نامگذاری صریح کنترل (برای مثال، «map _ image») ، من می‌توانم به طور خاص به آن در مراحل بعدی اشاره کنم:

display an image of a map of Alabama sized 40% from https://www.nationsonline.org/maps/USA/Alabama_map.jpg. call the image "map_image"

این امر موجب تولید کدJavaScript زیر می‌شود:

·         /* display an image of a map of Alabama sized 40% from https://www.nationsonline.org/maps/USA/Alabama_map.jpg. call the image &quotmap_image&quot */
·         var map_image = document.createElement('img');
·         map_image.src = 'https://www.nationsonline.org/maps/USA/Alabama_map.jpg';
·         map_image.style.width = '40%';
·         document.body.appendChild(map_image);

جایگزینی تصویر نقشه اولیه با تصویر نقشه حالت انتخاب‌شده فعلی. من یاد گرفتم که به منظور ایجادURL های معتبر برای تصاویر ایالت‌های با نام‌های چند کلمه‌ای (به عنوان مثال، نیوجرسی، داکوتای جنوبی) ، من باید به صراحت از Codex می‌خواستم تا فضاهای نام ایالت را با نمرات زیر عوض کند:

when a state is selected from the selection list, replace map_image with the image of the map of that state. Replace spaces with underscores in the state names

این امر موجب تولید کد JavaScript زیر می‌شود:

· stateSelect.addEventListener('change', function() {

· var state = stateSelect.value;

· map_image.src = 'https://www.nationsonline.org/maps/USA/' + state.replace(/ /g, '_') + '_map.jpg';

  • });

اینها مواردی هستند که من برای کاربرد ساده و کدهای تولید شده به آن‌ها نیاز داشتم.

نتایج آزمایش

پس از کمی آزمون و خطا، این سوسری‌ها کدی را تولید کردند که آنچه را که من می‌خواستم درCodex Sandbox ایجاد کرد:

شکل ۲: برنامه در حال اجرا درCodex JavaScript Sandbox
شکل ۲: برنامه در حال اجرا درCodex JavaScript Sandbox

هنگامی که برنامه را در جعبه‌ابزار JavaScript تست کردم، روی دکمه صادرات به JSFiddle کلیک کردم تا بهFiddle برسم:

شکل ۳: کد تولید شده توسطCodex در Fiddle
شکل ۳: کد تولید شده توسطCodex در Fiddle

درFiddle، جاوا اسکریپتی که Codex در JavaScript Playground ایجاد کرده بود درHTML ارائه شد. من می‌توانم این HTML را ذخیره کنم تا یک نسخه کامل از برنامه به دست آورم.

نتیجه‌گیری

تنها با سه پیام کوتاه و کمی آزمون و خطا، توانستم یک برنامه ساده و جامع از Codex به دست آورم. به عنوان یک کاربر گاه به گاه در جاوا اسکریپت، من واقعا از Codex که از جزئیات نحو مراقبت می‌کند، قدردانی می‌کنم. وقتی به نتایج غیرمنتظره‌ای رسیدم (به عنوان مثال، نقشه‌های متعدد به جای نقشه‌ای که تنها ایالت انتخاب شده در حال حاضر را نشان می‌داد)، اشکال زدایی مشکل، به روزرسانی کد تولید شده و رفع مشکل آسان بود.

این متن با استفاده از ربات ترجمه مقاله علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.