اگر به دنبال یک دستیار هوشمند مبتنی بر هوش مصنوعی برای کمک به نوشتن کدهای برنامه‌نویسی هستید، احتمالاً با کد جی پی تی (CodeGPT) برخورد کرده‌اید. کد جی پی تی یکی از ابزارهای متعدد مبتنی بر هوش مصنوعی است که این روزها می‌توانید برای کمک به برنامه‌نویسی از آن‌ها استفاده کنید. اما آیا کد جی پی تی واقعا می‌تواند کد بنویسد؟ این سؤالی است که در ادامه این مقاله از دیجی رو قصد داریم پاسخی برای آن بیابیم. با ما همراه باشید.

کد جی پی تی (CodeGPT) چیست؟

کد جی پی تی یک افزونه اختصاصی است که از مدل‌های مختلف هوش مصنوعی برای کمک به برنامه‌نویسان در نوشتن و اصلاح کدهای نوشته شده استفاده می‌کند. این افزونه شامل ویژگی‌های مختلفی برای برنامه‌نویسی سریع‌تر و آسان‌تر است؛ از جمله تکمیل خودکار، توضیح کد، بازسازی، مستندسازی، تست واحد، بررسی خطا و رفع اشکال. همچنین یک رابط کاربری شبیه چت‌جی‌پی‌تی نیز دارد که می‌توانید از طریق ویرایشگر کد خود به آن دسترسی پیدا کنید.

این افزونه به خصوص به این دلیل بسیار محبوب شده است که به شما اجازه می‌دهد به مدل‌های زبانی بزرگ (LLM) رایج از ارائه دهندگان مختلف مثل OpenAI و گوگل متصل شوید. علاوه بر این، کد جی پی تی به شما امکان می‌دهد ابزارهای هوش مصنوعی اختصاصی خود را بسازید و آن‌ها را با دیگران به اشتراک گذاشته یا در پروژه‌های خود مورد استفاده قرار دهید.

در حالی که چندین ویرایشگر کد برای لینوکس، مک و ویندوز وجود دارد، کد جی پی تی فقط در دو مورد در دسترس است. امروزه، شما می‌توانید کد جی پی تی را در VS Code یا Cursor که یک شاخه از VS Code است، نصب و استفاده کنید.

هزینه کد جی پی تی چقدر است؟

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

کد جی پی تی پلاس سه طرح اشتراکی دارد. طرح پایه 9.99 دلار در ماه هزینه دارد. پس از آن، طرح استاندارد با هزینه اشتراک ماهانه 19.99 دلاری و طرح طلایی با هزینه 49.99 دلار در ماه قرار دارند. یک دوره آزمایشی رایگان نیز موجود است که می‌توانید از آن برای یاد گرفتن ویژگی‌های مختلف افزونه استفاده کنید. هر کدام از این طرح‌ها به شما دسترسی به ابزارهای هوش مصنوعی خاصی را با تعاملات نامحدود ارائه می‌دهد.

توجه داشته باشید که برای استفاده نامحدود از مدل‌های هوش مصنوعی شخص ثالث مثل مدل GPT-4 از محصولات OpenAI، باید هزینه پرداخت کنید. اگر چه می‌توانید به کمک برخی سایت‌ها به طور رایگان به GPT-4 دسترسی پیدا کنید، اما نمی‌توانید این کار را از داخل VS Code یا Cursor انجام دهید.

کد جی پی تی

آیا کد جی پی تی واقعا می‌تواند کد بنویسد؟

برای بررسی این موضوع، سعی می‌کنیم از افزونه کد جی پی تی در تولید دو نمونه مختلف کد در پایتون استفاده کنیم.

ابتدا از مدل می‌خواهیم یک ساختمان داده پشته (stack data structure) در پایتون را به همراه تمام روش‌های مربوطه تولید کند. برای این منظور، از درخواست زیر استفاده کردیم:

Create a stack in Python and include all the necessary methods

پاسخی که کد جی پی تی تولید کرد به صورت زیر است:

classStack:
    def__init__(self):
        self.stack = []
​
    defpush(self, item):
        self.stack.append(item)
​
    defpop(self):
        if self.is_empty():
            raise IndexError("Pop from empty stack")
        return self.stack.pop()
​
    defpeek(self):
        if self.is_empty():
            raise IndexError("Peek from empty stack")
        return self.stack[-1]
​
    defis_empty(self):
        return len(self.stack) == 0
​
    defsize(self):
        return len(self.stack)

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

در چالش دوم، از کد جی پی تی خواستیم که پاسخی به فرمت JSON را که از رابط برنامه‌نویسی JSONPlaceholder دریافت شده، در یک فایل CSV ذخیره کند. پاسخ دریافتی از رابط برنامه‌نویسی JSONPlaceholder به این شکل است:

{
 'userId': 1,
 'id': 1,
 'title': 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit',
 'body': 'quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto'
}

ما از کد جی پی تی سؤال زیر را پرسیدیم:

I’ve made a request to an external API at https://jsonplaceholder.typicode.com/posts/1 and I’m getting a response back. I’ve formatted the response as json, how can I save it in a csv file?

(به فارسی: من یک درخواست به API خارجی در https://jsonplaceholder.typicode.com/posts/1 ارسال کرده و یک پاسخ دریافت می‌کنم. پاسخ را به صورت json فرمت کرده‌ام، چگونه می‌توانم آن را در یک فایل csv ذخیره کنم؟)

کدی که کد جی پی تی در پاسخ ارائه داد به شرح زیر است:

import csv
import requests

# Make a GET request to the API
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
# Convert the response to JSON format
data = response.json()

# Since we're receiving a dictionary, we need to turn it into a list of one dictionary
data = [data]

# Open (or create) a CSV file to write the data
with open('output.csv', 'w', newline='') as output_file:
   # Create a CSV writer object
   writer = csv.DictWriter(output_file, fieldnames=data[0].keys())
   # Write the CSV headers
   writer.writeheader()
   # Write the data to the CSV file
   writer.writerows(data)

به طور کلی، این پاسخ خوب است؛ نیازی به دستکاری مجدد برای کار کردن ندارد. کد جی پی تی همچنین توضیحاتی را برای تشریح هدف سطرهای مختلف کد اضافه کرده است که برای کسانی که اولین بار با کد برخورد می‌کنند، بسیار مفید خواهد بود.

تنها مشکل در اینجا این است که پاسخ هنگام فراخوانی ()open نوع رمزگذاری را مشخص نمی‌کند. در حالی که به طور پیش‌فرض یک نوع رمزگذاری اعمال می‌شود، مشخص کردن نوع رمزگذاری توصیه می‌شود و هنگام ذخیره اطلاعات در فایل‌ها در پایتون به عنوان بهترین شیوه در نظر گرفته می‌شود. رعایت این نکته می‌تواند شما را از تفسیر نادرست متن و در نتیجه تولید متون نامفهوم نجات دهد.

نتیجه‌گیری

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