برنامهنویسی با ChatGPT؛ آموزش کامل کدنویسی، دیباگ و ساخت پروژه با هوش مصنوعی
در این راهنمای عملی یاد میگیرید چگونه از ChatGPT برای تحلیل نیازمندی، تولید کد، دیباگ، تست، ریفکتور و مستندسازی استفاده کنید و همین قابلیتها را با API درواره وارد نرمافزار خود کنید.
برنامهنویسی با ChatGPT یا کد نویسی با چتجیپیتی فقط به این معنی نیست که یک درخواست کوتاه بنویسیم و انتظار داشته باشیم هوش مصنوعی تمام پروژه را بدون خطا تحویل دهد. استفاده حرفهای از ChatGPT در برنامهنویسی به معنای تقسیم مسئله، ارائه Context مناسب، تعریف محدودیتها، بررسی کد تولیدشده، اجرای تست و اصلاح مرحلهای نتیجه است.
ChatGPT میتواند در بسیاری از مراحل توسعه نرمافزار به برنامهنویس کمک کند:
- توضیح مفاهیم و کدهای پیچیده
- تبدیل نیازمندی به برنامه اجرایی
- طراحی ساختار پروژه
- تولید تابع، کلاس، API و Query
- پیدا کردن علت خطا
- نوشتن تست
- ریفکتور کد
- ساخت مستندات
- بررسی Pull Request
- تبدیل کد میان زبانهای برنامهنویسی
- یادگیری فریمورک جدید
- پیشنهاد راهحلهای جایگزین
بااینحال، ChatGPT جایگزین درک مسئله، طراحی نرمافزار، تست، بازبینی و مسئولیت فنی برنامهنویس نیست. بهترین نتیجه زمانی به دست میآید که هوش مصنوعی را مانند یک همکار فنی سریع اما نیازمند نظارت در نظر بگیریم.
در این مقاله یاد میگیرید چگونه از ChatGPT برای برنامهنویسی استفاده کنید، چه پرامپتهایی بنویسید، چگونه پاسخها را ارزیابی کنید و چگونه همین قابلیتها را با API درواره در ابزار یا محصول خود به کار بگیرید.
آیا ChatGPT میتواند برنامهنویسی کند؟
بله، ChatGPT میتواند کد تولید کند، کد موجود را توضیح دهد، خطاهای احتمالی را پیدا کند و راهکارهای پیادهسازی پیشنهاد دهد. اما عبارت «برنامهنویسی با ChatGPT» ممکن است سه شیوه متفاوت را شامل شود.
| شیوه استفاده | توضیح | مناسب برای |
|---|---|---|
| گفتوگو در ChatGPT | کاربر کد و درخواست را در محیط چت وارد میکند | یادگیری، سؤال فنی، قطعهکد و تحلیل |
| ابزار کدنویسی داخل IDE | هوش مصنوعی به فایلها و ترمینال پروژه دسترسی کنترلشده دارد | توسعه و اصلاح پروژه واقعی |
| API هوش مصنوعی | قابلیت تولید یا تحلیل کد داخل نرمافزار شما قرار میگیرد | محصولات SaaS، ابزارهای توسعه و اتوماسیون |
ChatGPT یک محصول آماده برای تعامل مستقیم با کاربر است. API هوش مصنوعی نیز رابطی است که توسعهدهنده از طریق آن مدل را به نرمافزار خود متصل میکند. این دو مفهوم را نباید یکسان در نظر گرفت.
اگر میخواهید بهصورت شخصی درباره کد سؤال بپرسید، محیط ChatGPT مناسب است. اگر میخواهید قابلیت تولید، بررسی یا توضیح کد را داخل محصول خود قرار دهید، به API نیاز دارید.
ChatGPT در کدام بخشهای برنامهنویسی مفید است؟
ChatGPT میتواند تقریباً در تمام چرخه توسعه نرمافزار نقش کمکی داشته باشد.
| مرحله | کاربرد ChatGPT |
|---|---|
| تحلیل مسئله | تبدیل ایده خام به نیازمندی و User Story |
| طراحی | پیشنهاد معماری، ماژولها و مدل داده |
| پیادهسازی | تولید تابع، کلاس، Endpoint و Component |
| اشکالزدایی | تحلیل Error، Stack Trace و رفتار برنامه |
| تست | تولید Unit Test، Integration Test و Edge Case |
| بازبینی | شناسایی پیچیدگی، تکرار و مشکلات نگهداری |
| مستندسازی | تولید README، Docstring و API Documentation |
| استقرار | پیشنهاد Dockerfile و تنظیمات اجرای برنامه |
| نگهداری | توضیح کد قدیمی و برنامهریزی برای ریفکتور |
| یادگیری | آموزش زبان، کتابخانه و الگوی طراحی |
ChatGPT همچنین میتواند فایلهای متنی و اسناد متداول را تحلیل کند. قابلیت Projects نیز امکان نگهداری چتها، فایلها و دستورهای مرتبط با یک هدف مشترک را فراهم میکند. دسترسی دقیق به این امکانات ممکن است به نسخه و پلن کاربر وابسته باشد. راهنمای رسمی قابلیتهای ChatGPT
مزایای برنامهنویسی با ChatGPT
شروع سریعتر پروژه
بهجای نوشتن تمام کدهای تکراری از ابتدا، میتوانید اسکلت پروژه، مدلهای داده، Routeهای اولیه و فایلهای تنظیمات را تولید کنید.
یادگیری در زمان انجام پروژه
اگر با یک مفهوم آشنا نیستید، میتوانید همان بخش را در Context واقعی پروژه یاد بگیرید:
Dependency Injection را در FastAPI توضیح بده و یک مثال مرتبط با
احراز هویت کاربر در API من ارائه کن.
کاهش زمان جستوجوی خطا
با ارائه پیام خطا، Stack Trace، نسخه کتابخانه و کد مرتبط، ChatGPT میتواند چند علت محتمل و روش آزمایش هر علت را پیشنهاد دهد.
تولید تستهای اولیه
هوش مصنوعی میتواند مسیر عادی، ورودی نامعتبر، مقدار مرزی و شرایط خطا را برای یک تابع شناسایی کند و تست اولیه بنویسد.
درک سریع کدهای قدیمی
در پروژههای Legacy میتوانید از ChatGPT بخواهید مسئولیت هر بخش، جریان داده، وابستگیها و نقاط پرریسک را توضیح دهد.
مقایسه چند راهحل
بهجای درخواست یک پاسخ، میتوانید چند گزینه با مزایا و معایب بخواهید:
سه روش برای پیادهسازی Rate Limiting در FastAPI پیشنهاد بده.
گزینهها را از نظر پیچیدگی، مقیاسپذیری و نیاز به Redis مقایسه کن.
هنوز کد ننویس.
محدودیتهای برنامهنویسی با ChatGPT
استفاده مفید از ChatGPT نیازمند شناخت محدودیتهای آن است.
ممکن است کد ظاهراً درست اما معیوب تولید کند
یک پاسخ میتواند از نظر نحوی صحیح باشد، اما:
- منطق تجاری را اشتباه پیادهسازی کند.
- یک Edge Case را نادیده بگیرد.
- از API منسوخشده استفاده کند.
- نوع داده را اشتباه فرض کند.
- خطای همزمانی ایجاد کند.
- وابستگی نصبنشدهای اضافه کند.
- تست ناکافی تولید کند.
تمام Context پروژه را بهطور خودکار نمیداند
اگر فقط یک تابع را ارسال کنید، مدل از قراردادهای سایر فایلها، Schema دیتابیس، نسخه کتابخانهها و محدودیتهای محصول خبر ندارد.
ممکن است نام تابع یا قابلیت غیرواقعی بسازد
در کتابخانههایی که سریع تغییر میکنند، مدل ممکن است متد یا پارامتری پیشنهاد دهد که در نسخه نصبشده وجود ندارد. مستندات رسمی و کد پروژه باید مرجع نهایی باشند.
پاسخ خوب به ورودی خوب وابسته است
درخواست مبهم معمولاً پاسخ عمومی ایجاد میکند. هرچه نسخهها، ساختار پروژه، رفتار مورد انتظار و خطای واقعی را بهتر توضیح دهید، نتیجه مفیدتر میشود.
مسئولیت اجرای کد با توسعهدهنده است
کد تولیدشده را بدون بررسی در Production اجرا نکنید. تست، Code Review، کنترل تغییرات و استقرار مرحلهای همچنان ضروری هستند.
تفاوت ChatGPT با ابزارهای کدنویسی هوش مصنوعی
ChatGPT برای گفتوگوی عمومی و تحلیل مسئله مناسب است. ابزارهای کدنویسی داخل IDE معمولاً Context مستقیمتری از Repository دارند.
| قابلیت | ChatGPT | ابزار داخل IDE |
|---|---|---|
| گفتوگوی عمومی | بسیار مناسب | معمولاً محدودتر |
| مشاهده خودکار فایلهای پروژه | وابسته به ابزار و دسترسی | معمولاً بهتر |
| پیشنهاد کد در محل Cursor | محدود | بله |
| ویرایش چند فایل | وابسته به محیط | معمولاً بله |
| اجرای Command | وابسته به محیط و مجوز | در برخی ابزارها |
| بررسی Diff | با ارسال تغییرات | معمولاً یکپارچه |
| سؤال آموزشی | بسیار مناسب | مناسب |
| ساخت قابلیت داخل محصول | نیازمند API | هدف اصلی نیست |
برای پروژههای بزرگ میتوانید از ChatGPT برای تحلیل، طراحی و حل مسئله و از ابزارهای IDE برای اعمال تغییرات کنترلشده استفاده کنید.
روش صحیح برنامهنویسی با ChatGPT
یک جریان کاری حرفهای معمولاً این مراحل را دارد:
- مسئله را دقیق تعریف کنید.
- Context فنی را ارائه دهید.
- محدودیتها را مشخص کنید.
- ابتدا برنامه پیادهسازی بخواهید.
- مسئله را به تغییرات کوچک تقسیم کنید.
- کد را بخشبهبخش تولید کنید.
- کد را اجرا و تست کنید.
- خطای واقعی را برای تحلیل ارسال کنید.
- تغییرات را با Diff بررسی کنید.
- نتیجه را با نیازمندی اولیه تطبیق دهید.
درخواست «یک فروشگاه اینترنتی کامل بساز» معمولاً بیشازحد گسترده است. درخواستهای کوچکتر قابل ارزیابیتر هستند:
برای یک فروشگاه اینترنتی با FastAPI و PostgreSQL فقط مدل داده
محصول را طراحی کن.
نیازمندیها:
- هر محصول نام، slug، توضیحات و قیمت دارد.
- قیمت باید عدد صحیح و برحسب ریال باشد.
- slug یکتا است.
- محصول میتواند فعال یا غیرفعال باشد.
- زمان ایجاد و ویرایش ذخیره شود.
فعلاً فقط مدل SQLAlchemy و Schemaهای Pydantic را بنویس.
Migration، Route و Service را تولید نکن.
فرمول یک پرامپت خوب برای برنامهنویسی
یک پرامپت حرفهای میتواند از اجزای زیر تشکیل شود:
نقش
نقش تو یک توسعهدهنده ارشد Python و FastAPI است.
هدف
هدف، اضافهکردن Endpoint ایجاد محصول به پروژه است.
Context فنی
Python 3.12
FastAPI
Pydantic 2
SQLAlchemy 2
PostgreSQL
pytest
کد یا ساختار فعلی
فایلهای مرتبط:
- app/models/product.py
- app/schemas/product.py
- app/routes/products.py
رفتار مورد انتظار
در صورت تکراریبودن slug، پاسخ 409 برگردان.
در صورت موفقیت، پاسخ 201 و اطلاعات محصول را برگردان.
محدودیتها
- معماری فعلی را تغییر نده.
- کتابخانه جدید اضافه نکن.
- نام فیلدهای فعلی را تغییر نده.
- تمام Queryها غیرهمزمان باشند.
فرمت پاسخ
ابتدا برنامه تغییر را در پنج مرحله بنویس.
سپس فقط فایلهایی را که باید تغییر کنند نمایش بده.
برای هر تغییر یک توضیح کوتاه اضافه کن.
در پایان تستهای لازم را بنویس.
قالب آماده پرامپت برنامهنویسی
نقش:
تو یک توسعهدهنده ارشد متخصص در [زبان یا فریمورک] هستی.
هدف:
میخواهم [قابلیت موردنظر] را پیادهسازی کنم.
محیط فنی:
- زبان:
- نسخه:
- فریمورک:
- دیتابیس:
- کتابخانههای اصلی:
- سیستمعامل:
ساختار یا کد فعلی:
[کد، ساختار فایل یا توضیح وضعیت موجود]
رفتار مورد انتظار:
[ورودی، خروجی و شرایط موفقیت]
محدودیتها:
- معماری موجود حفظ شود.
- وابستگی جدید بدون توضیح اضافه نشود.
- کد خوانا و قابل تست باشد.
- خطاها مدیریت شوند.
- اطلاعاتی را که ارائه نشده حدس نزن.
فرمت پاسخ:
1. ابتدا مسئله را خلاصه کن.
2. ابهامهای مهم را مشخص کن.
3. برنامه پیادهسازی را بنویس.
4. کد را در تغییرات کوچک ارائه کن.
5. تستهای لازم را اضافه کن.
6. ریسکها و Edge Caseها را فهرست کن.
آموزش مرحلهبهمرحله ساخت پروژه با ChatGPT
فرض کنید میخواهیم یک API ساده مدیریت کارها یا Task Manager بسازیم.
فناوریهای پروژه:
- Python
- FastAPI
- Pydantic
- SQLite
- SQLAlchemy
- pytest
مرحله اول: تبدیل ایده به نیازمندی
پرامپت:
میخواهم یک REST API ساده برای مدیریت کارها با FastAPI بسازم.
هر کار باید این فیلدها را داشته باشد:
- id
- title
- description
- status
- priority
- due_date
- created_at
- updated_at
کاربر باید بتواند:
- کار جدید ایجاد کند.
- فهرست کارها را ببیند.
- یک کار را ویرایش کند.
- وضعیت کار را تغییر دهد.
- کار را حذف کند.
- براساس status و priority فیلتر کند.
فعلاً کد ننویس.
نیازمندیها، Endpointها، قواعد اعتبارسنجی و Edge Caseها را مشخص کن.
در این مرحله باید خروجی را بررسی کنید:
- آیا وضعیتهای مجاز مشخص شدهاند؟
- آیا عنوان خالی پذیرفته میشود؟
- حذف بهصورت سخت است یا نرم؟
- تاریخ سررسید میتواند در گذشته باشد؟
- Pagination لازم است؟
- مرتبسازی چگونه انجام میشود؟
قبل از تولید کد، تصمیمهای محصول را قطعی کنید.
مرحله دوم: طراحی ساختار پروژه
پرامپت:
براساس نیازمندیهای تأییدشده، ساختار پوشه یک پروژه FastAPI پیشنهاد بده.
شرایط:
- منطق Route، Service و Repository جدا باشد.
- تنظیمات در config.py قرار بگیرند.
- مدلهای ورودی و خروجی با Pydantic تعریف شوند.
- تستها پوشه مستقل داشته باشند.
- پروژه فعلاً با SQLite اجرا شود، اما مهاجرت به PostgreSQL دشوار نباشد.
- هنوز محتوای فایلها را تولید نکن.
نمونه ساختار قابل قبول:
task-api/
├── app/
│ ├── main.py
│ ├── config.py
│ ├── database.py
│ ├── models/
│ │ └── task.py
│ ├── schemas/
│ │ └── task.py
│ ├── repositories/
│ │ └── task_repository.py
│ ├── services/
│ │ └── task_service.py
│ └── routes/
│ └── tasks.py
├── tests/
│ ├── conftest.py
│ └── test_tasks.py
├── requirements.txt
├── .env.example
└── README.md
مرحله سوم: تولید مدل داده
پرامپت:
اکنون فقط فایلهای مدل SQLAlchemy و Schemaهای Pydantic را بنویس.
قواعد:
- status یکی از todo، in_progress یا done باشد.
- priority یکی از low، medium یا high باشد.
- title بین 1 تا 200 کاراکتر باشد.
- description اختیاری باشد.
- due_date اختیاری باشد.
- خروجی با Pydantic 2 سازگار باشد.
- از Enum استفاده کن.
- هیچ Route یا Service تولید نکن.
در این مرحله موارد زیر را بررسی کنید:
- نوع تاریخها
- مقدار پیشفرض Status
- مقدار پیشفرض Priority
- محدودیت طول عنوان
- سازگاری Enum میان Pydantic و SQLAlchemy
- تولید خودکار زمان ایجاد و ویرایش
مرحله چهارم: تولید Repository و Service
پرامپت:
براساس مدلها، Repository و Service را پیادهسازی کن.
نیازمندیها:
- create_task
- get_task
- list_tasks
- update_task
- delete_task
- filter by status
- filter by priority
- pagination
محدودیتها:
- Route نباید مستقیماً Query دیتابیس اجرا کند.
- Service مسئول خطاهای منطقی باشد.
- Repository فقط مسئول دسترسی به داده باشد.
- برای Task پیدانشده Exception مشخص تعریف کن.
- کد را فایلبهفایل ارائه کن.
مرحله پنجم: ساخت Routeها
پرامپت:
اکنون Routeهای FastAPI را بنویس.
Endpointها:
POST /tasks
GET /tasks
GET /tasks/{task_id}
PATCH /tasks/{task_id}
DELETE /tasks/{task_id}
رفتار:
- ایجاد موفق: 201
- دریافت موفق: 200
- حذف موفق: 204
- پیدا نشدن: 404
- ورودی نامعتبر: 422
- Pagination با page و page_size
- حداکثر page_size برابر 100
Route فقط باید Validation ورودی، فراخوانی Service و ساخت پاسخ HTTP را انجام دهد.
مرحله ششم: درخواست تست
پرامپت:
برای API مدیریت کارها تست pytest بنویس.
سناریوها:
- ایجاد کار معتبر
- ردکردن عنوان خالی
- ردکردن status نامعتبر
- دریافت فهرست
- فیلتر براساس priority
- دریافت شناسه ناموجود
- ویرایش بخشی از اطلاعات
- حذف کار
- بررسی Pagination
برای هر تست مشخص کن چه رفتاری را پوشش میدهد.
تستها نباید به دیتابیس اصلی متصل شوند.
مرحله هفتم: بازبینی نهایی
پرامپت:
کد پروژه را مانند یک Code Reviewer ارشد بررسی کن.
فقط مشکلات واقعی را گزارش بده و برای هر مورد این اطلاعات را بنویس:
- شدت: critical، high، medium یا low
- فایل و بخش مرتبط
- دلیل مشکل
- سناریوی بازتولید
- اصلاح پیشنهادی
- تستی که باید اضافه شود
روی این موارد تمرکز کن:
- خطای منطقی
- مدیریت Transaction
- Validation
- رفتار HTTP
- Queryهای ناکارآمد
- تکرار کد
- ناسازگاری میان Schema و Model
فعلاً هیچ فایلی را بازنویسی نکن.
این روش بهتر از درخواست بازنویسی یکباره کل پروژه است؛ زیرا ابتدا مشکلات را مشاهده و سپس درباره اصلاح آنها تصمیم میگیرید.
آموزش دیباگ کد با ChatGPT
برای دیباگ، فقط نگویید «کد من کار نمیکند». اطلاعات کافی ارائه کنید.
اطلاعات موردنیاز برای دیباگ
- زبان و نسخه
- فریمورک و نسخه
- سیستمعامل
- دستور اجرا
- پیام کامل خطا
- Stack Trace
- کد مرتبط
- ورودی استفادهشده
- خروجی فعلی
- خروجی مورد انتظار
- اقدامهایی که قبلاً امتحان کردهاید
پرامپت مناسب دیباگ
در یک پروژه Python 3.12 و FastAPI با این خطا مواجه شدهام.
دستور اجرا:
uvicorn app.main:app --reload
پیام کامل خطا:
[STACK_TRACE]
کد مرتبط:
[CODE]
رفتار مورد انتظار:
Endpoint باید اطلاعات کار را برگرداند.
رفتار فعلی:
در زمان تبدیل مدل SQLAlchemy به Schema خطا رخ میدهد.
کارهایی که امتحان کردهام:
- بررسی اتصال دیتابیس
- چاپ نتیجه Query
- فعالکردن from_attributes در Schema
لطفاً:
1. سه علت محتمل را به ترتیب احتمال بنویس.
2. برای هر علت یک روش آزمایش پیشنهاد بده.
3. قبل از اطمینان، کل فایل را بازنویسی نکن.
4. حداقل تغییر لازم را پیشنهاد بده.
این پرامپت مدل را وادار میکند میان «فرضیه»، «آزمایش» و «اصلاح» تفاوت قائل شود.
استفاده از ChatGPT برای توضیح کد
برای درک کد، فقط درخواست «توضیح بده» کافی نیست. سطح توضیح را مشخص کنید.
توضیح برای فرد مبتدی
این تابع پایتون را برای فردی که تازه async/await را یاد گرفته توضیح بده.
ابتدا هدف تابع، سپس جریان اجرا و در پایان خطاهای احتمالی را توضیح بده.
از اصطلاحات پیچیده بدون تعریف استفاده نکن.
[CODE]
توضیح برای توسعهدهنده ارشد
این Service را از نظر جریان داده، مرز Transaction، پیچیدگی زمانی،
رفتار همزمانی و Coupling بررسی کن. توضیحات مقدماتی پایتون لازم نیست.
[CODE]
ساخت نقشه وابستگی
براساس کد زیر مشخص کن:
- ورودی از کجا وارد میشود؟
- چه توابعی فراخوانی میشوند؟
- داده در کجا تغییر میکند؟
- کدام عملیات Side Effect دارد؟
- چه خطاهایی ممکن است به لایه بالاتر منتقل شوند؟
[CODE]
ریفکتور کد با ChatGPT
ریفکتور باید رفتار بیرونی برنامه را حفظ کند. قبل از تغییر، از مدل بخواهید قرارداد فعلی را استخراج کند.
پرامپت پیشنهادی:
این تابع طولانی را بررسی کن.
هدف:
خوانایی و قابلیت تست بهتر شود، بدون اینکه رفتار بیرونی تغییر کند.
محدودیتها:
- Signature عمومی تابع تغییر نکند.
- نوع خروجی تغییر نکند.
- Exceptionهای فعلی حفظ شوند.
- وابستگی جدید اضافه نشود.
- ابتدا تستهای Characterization پیشنهاد بده.
- سپس برنامه ریفکتور مرحلهای بنویس.
- در هر مرحله فقط یک تغییر مفهومی انجام بده.
[CODE]
اصلاح یکباره فایلهای بزرگ میتواند رفتارهای پنهان را تغییر دهد. ریفکتور را در Commitهای کوچک انجام دهید و پس از هر مرحله تستها را اجرا کنید.
تولید Unit Test با ChatGPT
برای تولید تست باکیفیت، کد تابع و قرارداد رفتاری آن را ارائه کنید.
برای تابع زیر تست pytest بنویس.
قرارداد:
- قیمت ورودی برحسب ریال است.
- درصد تخفیف بین صفر تا صد است.
- نتیجه باید عدد صحیح باشد.
- درصد خارج از محدوده باید ValueError ایجاد کند.
- قیمت منفی نامعتبر است.
تستها را به این گروهها تقسیم کن:
- مسیر عادی
- مقدار مرزی
- ورودی نامعتبر
- رفتار Exception
در هر تست فقط یک رفتار اصلی را بررسی کن.
[CODE]
پس از دریافت تستها بررسی کنید:
- آیا تست واقعاً رفتار را میسنجد؟
- آیا فقط پیادهسازی فعلی را تکرار میکند؟
- آیا تست در صورت ایجاد Bug شکست میخورد؟
- آیا Mock بیشازحد استفاده شده است؟
- آیا Edge Caseهای واقعی پوشش داده شدهاند؟
- آیا تستها مستقل و قابل تکرار هستند؟
Code Review با ChatGPT
برای Code Review بهتر است Diff را همراه با هدف تغییر ارائه کنید.
این Pull Request قابلیت فیلتر محصولات براساس بازه قیمت را اضافه میکند.
نیازمندی:
- min_price و max_price اختیاری هستند.
- اگر هر دو وجود داشته باشند، min_price نباید بیشتر از max_price باشد.
- قیمتها برحسب ریال و عدد صحیحاند.
- پاسخ باید Pagination فعلی را حفظ کند.
Diff:
[DIFF]
تغییرات را بررسی کن و فقط مشکلات قابل اقدام را گزارش بده.
برای هر مشکل:
- شدت
- فایل و خط تقریبی
- سناریوی شکست
- پیشنهاد اصلاح
- تست موردنیاز
تغییرات سلیقهای قالببندی را گزارش نکن.
این پرامپت احتمال تولید نظرهای عمومی و کمارزش را کاهش میدهد.
مستندسازی کد با ChatGPT
ChatGPT میتواند برای موارد زیر پیشنویس تولید کند:
- README
- Docstring
- راهنمای نصب
- نمونه درخواست API
- توضیح متغیرهای محیطی
- راهنمای Contribution
- Changelog
- مستندات Endpointها
پرامپت README:
براساس ساختار و فایلهای پروژه، یک README کاربردی بنویس.
بخشها:
- معرفی پروژه
- قابلیتها
- پیشنیازها
- نصب
- متغیرهای محیطی
- اجرای Development
- اجرای تستها
- نمونه درخواست API
- ساختار پروژه
- خطاهای متداول
دستور یا قابلیتی را که در فایلهای ارائهشده وجود ندارد اضافه نکن.
موارد نامشخص را با TODO مشخص کن.
تبدیل کد میان زبانهای برنامهنویسی
تبدیل صرف Syntax کافی نیست؛ باید تفاوتهای اکوسیستم نیز در نظر گرفته شوند.
پرامپت مناسب:
این کد Python را به TypeScript تبدیل کن.
محیط مقصد:
- Node.js
- TypeScript strict
- Fastify
- PostgreSQL
- Vitest
قواعد:
- فقط ترجمه خطبهخط انجام نده.
- الگوهای متداول TypeScript را رعایت کن.
- تفاوت مدیریت خطا و async را توضیح بده.
- نوعها صریح باشند.
- رفتار API تغییر نکند.
- ابتدا تفاوتهای مهم دو پیادهسازی را فهرست کن.
[PYTHON_CODE]
پس از تبدیل، تستهای زبان مبدأ را به تستهای مقصد منتقل و رفتار دو نسخه را مقایسه کنید.
یادگیری برنامهنویسی با ChatGPT
ChatGPT میتواند نقش مدرس تعاملی داشته باشد، بهشرط آنکه فقط پاسخ نهایی را نخواهید.
پرامپت پیشنهادی:
میخواهم Decorator در پایتون را یاد بگیرم.
روش آموزش:
1. ابتدا مفهوم را با یک مثال ساده توضیح بده.
2. سپس یک تمرین کوتاه بده.
3. تا زمانی که پاسخ من را ندیدهای، راهحل کامل را نمایش نده.
4. پس از پاسخ من، فقط اشتباهها را راهنمایی کن.
5. در پایان یک کاربرد واقعی در FastAPI نشان بده.
روش بهتر برای یادگیری:
- ابتدا خودتان راهحل را امتحان کنید.
- از مدل Hint بخواهید، نه پاسخ کامل.
- دلیل هر خط کد را بپرسید.
- کد را بدون نگاهکردن دوباره بنویسید.
- تست جدید اضافه کنید.
- راهحل جایگزین را مقایسه کنید.
پرامپتهای آماده برای برنامهنویسان
ساخت تابع
یک تابع Python بنویس که فهرستی از تراکنشها را براساس customer_id گروهبندی
و مجموع amount هر مشتری را محاسبه کند.
قواعد:
- amount از نوع Decimal است.
- ورودی خالی باید دیکشنری خالی برگرداند.
- داده ورودی تغییر نکند.
- Type Hint کامل بنویس.
- پیچیدگی زمانی را توضیح بده.
- تست pytest اضافه کن.
ساخت REST API
یک Endpoint در FastAPI برای ایجاد کاربر طراحی کن.
ورودی:
email، full_name و password
قواعد:
- ایمیل یکتا باشد.
- پاسخ نباید password یا password_hash داشته باشد.
- ایمیل تکراری پاسخ 409 ایجاد کند.
- منطق Hash در Service باشد.
- Route مستقیماً به دیتابیس دسترسی نداشته باشد.
- کد با Pydantic 2 و SQLAlchemy 2 سازگار باشد.
تولید Query
برای PostgreSQL یک Query بنویس که فروش ماهانه هر دسته محصول را محاسبه کند.
جداول:
[SCHEMA]
قواعد:
- سفارش لغوشده محاسبه نشود.
- مبلغ از quantity * unit_price محاسبه شود.
- نتیجه براساس ماه و دسته مرتب شود.
- Query را توضیح بده.
- Indexهای مفید را جداگانه پیشنهاد کن.
تحلیل خطا
این Stack Trace را تحلیل کن.
ابتدا اولین محل مرتبط با کد پروژه را پیدا کن.
میان علت اصلی و خطاهای زنجیرهای تفاوت بگذار.
قبل از پیشنهاد اصلاح، اطلاعات مفقود را مشخص کن.
[STACK_TRACE]
تولید تست
برای این Service یک Test Matrix بساز.
ستونها:
سناریو، ورودی، Mock لازم، خروجی مورد انتظار و Exception مورد انتظار.
پس از تأیید من، تستهای pytest را تولید کن.
[CODE]
بهبود کارایی
این کد روی یک میلیون رکورد کند است.
ابتدا بدون بازنویسی:
- پیچیدگی زمانی و فضایی را تحلیل کن.
- عملیات I/O را مشخص کن.
- Queryهای تکراری را پیدا کن.
- نقاط مناسب برای اندازهگیری را پیشنهاد بده.
سپس سه بهینهسازی را براساس اثر و ریسک اولویتبندی کن.
[CODE]
اطلاعاتی که نباید بدون بررسی در ChatGPT قرار دهید
هنگام استفاده از ابزارهای آنلاین، از ارسال بیدلیل اطلاعات محرمانه خودداری کنید:
- API Key
- رمز عبور
- Token دسترسی
- Private Key
- Connection String واقعی
- اطلاعات محرمانه مشتری
- فایل تنظیمات Production
- داده شخصی کاربران
- کد اختصاصی حساس بدون مجوز سازمان
- فایل
.env - نسخه پشتیبان دیتابیس
بهجای مقدار واقعی از Placeholder استفاده کنید:
DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DATABASE
API_KEY=YOUR_API_KEY
تنظیمات Data Controls در ChatGPT به کاربران اجازه میدهد نحوه استفاده از گفتوگوهای خود برای بهبود مدلها را مدیریت کنند. پیش از ارسال محتوای کاری، تنظیمات حساب و سیاست سازمان خود را بررسی کنید. راهنمای رسمی Data Controls
چکلیست بررسی کد تولیدشده
پیش از استفاده از هر کد تولیدشده با هوش مصنوعی، این موارد را بررسی کنید.
صحت فنی
- آیا کد اجرا میشود؟
- آیا Importها واقعی و نصبشدهاند؟
- آیا Syntax با نسخه زبان سازگار است؟
- آیا متدها در نسخه کتابخانه وجود دارند؟
- آیا نوعهای ورودی و خروجی درستاند؟
منطق
- آیا رفتار با نیازمندی تطابق دارد؟
- آیا مقدارهای مرزی پوشش داده شدهاند؟
- آیا وضعیتهای خطا مدیریت میشوند؟
- آیا کد اطلاعاتی را بدون منبع فرض کرده است؟
دیتابیس
- آیا Queryها درست هستند؟
- آیا Transaction مناسب است؟
- آیا احتمال N+1 Query وجود دارد؟
- آیا Index لازم است؟
- آیا Migration با داده موجود سازگار است؟
کیفیت کد
- آیا نامگذاری واضح است؟
- آیا مسئولیتها جدا شدهاند؟
- آیا کد تکراری وجود دارد؟
- آیا تابع بیشازحد بزرگ است؟
- آیا وابستگی جدید واقعاً ضروری است؟
تست
- آیا مسیر عادی تست شده است؟
- آیا خطاها تست شدهاند؟
- آیا Edge Case وجود دارد؟
- آیا تستها مستقل هستند؟
- آیا تست واقعاً میتواند Bug را تشخیص دهد؟
انتشار
- آیا Log محرمانه تولید نمیشود؟
- آیا متغیرهای محیطی تنظیم شدهاند؟
- آیا Timeout تعریف شده است؟
- آیا Rollback ممکن است؟
- آیا تغییرات ابتدا در محیط آزمایشی اجرا شدهاند؟
خطاهای رایج هنگام کدنویسی با ChatGPT
درخواست بیشازحد بزرگ
اشتباه:
یک اپلیکیشن کامل مشابه اینستاگرام بساز.
بهتر است پروژه را به نیازمندی، معماری، مدل داده، API، رابط کاربری و تست تقسیم کنید.
ندادن نسخه کتابخانهها
کدی که برای نسخهای دیگر تولید شده ممکن است اجرا نشود. نسخهها را مشخص کنید:
Python 3.12
FastAPI
Pydantic 2
SQLAlchemy 2
درخواست بازنویسی کامل برای یک Bug کوچک
بازنویسی کامل میتواند خطاهای جدید بسازد. ابتدا Root Cause و حداقل تغییر لازم را بخواهید.
کپیکردن پاسخ بدون اجرا
کد را در محیط واقعی پروژه اجرا کنید و نتیجه تست، Linter و Type Checker را بررسی کنید.
ندادن خروجی مورد انتظار
مدل باید بداند موفقیت دقیقاً چه شکلی است. نمونه ورودی و خروجی ارائه کنید.
ترکیب چند مسئله در یک پرامپت
رفع Bug، تغییر معماری، افزایش سرعت و نوشتن مستندات را همزمان درخواست نکنید. هر تغییر باید هدف مشخصی داشته باشد.
پذیرش اولین پاسخ
اولین پاسخ را پیشنویس در نظر بگیرید. تناقضها، فرضیات و راهحلهای جایگزین را بررسی کنید.
ارسال ناقص پیام خطا
فقط آخرین خط Stack Trace را ارسال نکنید. بخش کامل مرتبط با کد پروژه برای پیدا کردن علت اصلی مفیدتر است.
چگونه پاسخ ChatGPT را بهتر کنیم؟
اگر پاسخ اولیه ضعیف بود، گفتوگو را هدفمند ادامه دهید.
درخواست شفافسازی فرضیات
قبل از ادامه، تمام فرضیاتی را که درباره پروژه من کردهای فهرست کن.
درخواست حداقل تغییر
راهحل را به کوچکترین Patch ممکن محدود کن و معماری فعلی را تغییر نده.
درخواست مقایسه
دو راهحل ممکن را از نظر پیچیدگی، کارایی، نگهداری و ریسک مقایسه کن.
درخواست تست شکست
تستی بنویس که در پیادهسازی فعلی شکست بخورد و بعد از اصلاح موفق شود.
درخواست بررسی دوباره
پاسخ قبلی خودت را نقد کن و مواردی را که ممکن است با نسخه کتابخانه ناسازگار باشند مشخص کن.
جلوگیری از حدس
اگر اطلاعات کافی نیست، سؤال بپرس یا مورد را با UNKNOWN مشخص کن.
نام فایل، تابع یا API غیرواقعی تولید نکن.
استفاده از Projects و فایلها برای پروژههای برنامهنویسی
در پروژههای طولانی، نگهداری Context اهمیت زیادی دارد. در ChatGPT میتوان چتها، فایلها و دستورهای مرتبط با یک هدف را در Project سازماندهی کرد. طبق راهنمای رسمی، پاسخها میتوانند از چتها، فایلهای بارگذاریشده و دستورهای پروژه استفاده کنند. راهنمای Projects در ChatGPT
برای یک پروژه برنامهنویسی میتوانید این موارد را در Context قرار دهید:
- README
- ساختار پوشهها
- قراردادهای کدنویسی
- فایل وابستگیها
- Schema دیتابیس
- مستندات API
- نمونه Request و Response
- تصمیمهای معماری
- قواعد تست
یک دستور پروژه مناسب میتواند چنین باشد:
قواعد این پروژه:
- زبان اصلی Python 3.12 است.
- Backend با FastAPI نوشته شده است.
- از Pydantic 2 و SQLAlchemy 2 استفاده میکنیم.
- Route نباید مستقیماً Query اجرا کند.
- تمام قابلیتهای جدید باید تست pytest داشته باشند.
- وابستگی جدید فقط با ذکر دلیل پیشنهاد شود.
- تغییرات باید کوچک و قابل Review باشند.
- اطلاعات نامشخص نباید حدس زده شوند.
بااینحال، فایلهای پروژه را آگاهانه انتخاب کنید و قبل از بارگذاری، اطلاعات محرمانه را حذف کنید.
چه زمانی از ChatGPT و چه زمانی از API استفاده کنیم؟
| نیاز | گزینه مناسب |
|---|---|
| سؤال فنی موردی | ChatGPT |
| یادگیری یک مفهوم | ChatGPT |
| تحلیل دستی چند فایل | ChatGPT یا ابزار کدنویسی |
| ویرایش مستمر Repository | ابزار کدنویسی داخل IDE |
| تولید پاسخ برای کاربران محصول | API |
| تحلیل خودکار هزاران قطعهکد | API |
| ساخت Code Review داخلی | API |
| ساخت دستیار مستندسازی | API |
| اتصال مدل به CI/CD | API |
| انتخاب میان چند مدل | زیرساخت API چندمدلی |
اگر قرار است قابلیت هوش مصنوعی بخشی از نرمافزار شما باشد، استفاده از API مسیر مناسبتری است.
ساخت دستیار برنامهنویسی با API درواره
درواره دسترسی به مدلهای مختلف هوش مصنوعی را از طریق یک API سازگار با OpenAI فراهم میکند. به این ترتیب میتوانید یک قابلیت تولید یا تحلیل کد را در Backend خود پیادهسازی کنید.
ابتدا در درواره ثبتنام کنید، کلید API بسازید و مدل موردنظر را از صفحه مدلها و قیمتها انتخاب کنید.
در مثالها از این مقادیر استفاده میکنیم:
YOUR_DARVAREH_API_KEY
YOUR_MODEL_ID
نصب کتابخانه
pip install openai python-dotenv
فایل تنظیمات
فایل .env:
DARVAREH_API_KEY=YOUR_DARVAREH_API_KEY
DARVAREH_MODEL=YOUR_MODEL_ID
DARVAREH_BASE_URL=https://api.darvareh.ir/v1
فایل .gitignore:
.env
.venv/
__pycache__/
ساخت ابزار توضیح کد
فایل explain_code.py:
import os
from pathlib import Path
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI(
api_key=os.environ["DARVAREH_API_KEY"],
base_url=os.getenv(
"DARVAREH_BASE_URL",
"https://api.darvareh.ir/v1",
),
)
model_id = os.environ["DARVAREH_MODEL"]
def explain_code(code: str, language: str) -> str:
response = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": (
"تو یک توسعهدهنده ارشد و مدرس برنامهنویسی هستی. "
"کد را دقیق تحلیل کن. "
"اطلاعات ناموجود را حدس نزن. "
"پاسخ را به زبان فارسی بنویس، اما نام توابع، "
"کلاسها و اصطلاحات فنی را تغییر نده."
),
},
{
"role": "user",
"content": f"""
زبان برنامهنویسی: {language}
کد:
```{language}
{code}
پاسخ را با این ساختار بنویس:
- هدف کلی کد
- جریان اجرا
- ورودی و خروجی
- وابستگیها
- خطاهای احتمالی
- پیشنهادهای بهبود
""",
},
],
temperature=0.2,
max_tokens=1500,
)return response.choices[0].message.content or ""
file_path = Path("sample.py")
code_text = file_path.read_text(encoding="utf-8")
result = explain_code(
code=code_text,
language="python",
)
print(result)
فایل موردنظر را با نام `sample.py` در کنار برنامه قرار دهید و اجرا کنید:
```bash
python explain_code.py
ساخت ابزار Code Review با API
def review_code(
diff: str,
requirements: str,
language: str,
) -> str:
response = client.chat.completions.create(
model=model_id,
messages=[
{
"role": "system",
"content": (
"تو Code Reviewer ارشد هستی. "
"فقط مشکلات واقعی و قابل اقدام را گزارش بده. "
"روی صحت منطقی، مدیریت خطا، کارایی، تستپذیری "
"و سازگاری با نیازمندی تمرکز کن. "
"مشکلات سلیقهای قالببندی را گزارش نکن."
),
},
{
"role": "user",
"content": f"""
زبان:
{language}
نیازمندی:
{requirements}
Diff:
```diff
{diff}
برای هر مشکل این فیلدها را ارائه کن:
- severity
- title
- explanation
- failure_scenario
- suggested_fix
- required_test
""",
},
],
temperature=0.1,
max_tokens=2000,
)return response.choices[0].message.content or ""
در نسخه Production بهتر است خروجی را با JSON Schema مشخص و سمت برنامه اعتبارسنجی کنید.
## ساخت API توضیح کد با FastAPI
نصب وابستگیها:
```bash
pip install fastapi uvicorn openai python-dotenv
فایل main.py:
import os
from typing import Literal
from dotenv import load_dotenv
from fastapi import FastAPI, HTTPException
from openai import APIConnectionError, OpenAI, RateLimitError
from pydantic import BaseModel, Field
load_dotenv()
client = OpenAI(
api_key=os.environ["DARVAREH_API_KEY"],
base_url=os.getenv(
"DARVAREH_BASE_URL",
"https://api.darvareh.ir/v1",
),
timeout=45.0,
max_retries=2,
)
MODEL_ID = os.environ["DARVAREH_MODEL"]
app = FastAPI(
title="AI Code Assistant",
version="1.0.0",
)
class ExplainCodeRequest(BaseModel):
language: Literal[
"python",
"javascript",
"typescript",
"php",
"java",
"go",
"rust",
"sql",
]
code: str = Field(min_length=1, max_length=20000)
experience_level: Literal[
"beginner",
"intermediate",
"advanced",
] = "intermediate"
class ExplainCodeResponse(BaseModel):
explanation: str
model: str
@app.post(
"/explain-code",
response_model=ExplainCodeResponse,
)
def explain_code(request: ExplainCodeRequest):
try:
response = client.chat.completions.create(
model=MODEL_ID,
messages=[
{
"role": "system",
"content": (
"تو یک مدرس برنامهنویسی دقیق هستی. "
"پاسخ را به زبان فارسی بنویس. "
"کد یا API غیرواقعی تولید نکن. "
"اگر Context کافی نیست، محدودیت تحلیل را اعلام کن."
),
},
{
"role": "user",
"content": f"""
زبان: {request.language}
سطح مخاطب: {request.experience_level}
کد:
```{request.language}
{request.code}
توضیح شامل این بخشها باشد:
- هدف کد
- جریان اجرا
- مفاهیم مهم
- ورودی و خروجی
- خطاهای احتمالی
پیشنهاد بهبود
""",
},
],
temperature=0.2,
max_tokens=1400,
)
explanation = response.choices[0].message.content
if not explanation:
raise HTTPException(
status_code=502,
detail="مدل پاسخ قابل استفادهای تولید نکرد.",
)
return ExplainCodeResponse(
explanation=explanation,
model=MODEL_ID,
)
except RateLimitError:
raise HTTPException(
status_code=429,
detail="تعداد درخواستها بیش از حد مجاز است.",
)except APIConnectionError:
raise HTTPException(
status_code=503,
detail="ارتباط با سرویس هوش مصنوعی برقرار نشد.",
)
اجرای برنامه:
```bash
uvicorn main:app --reload
مستندات تعاملی:
http://127.0.0.1:8000/docs
نمونه درخواست:
{
"language": "python",
"experience_level": "beginner",
"code": "def square(number: int) -> int:\n return number * number"
}
کنترل هزینه دستیار برنامهنویسی
کد پروژه میتواند ورودی بزرگی داشته باشد. ارسال بدون محدودیت فایلها باعث افزایش مصرف توکن میشود.
برای کنترل هزینه:
- فقط فایلهای مرتبط را ارسال کنید.
- ابتدا ساختار Repository را تحلیل کنید.
- کدهای تولیدشده، فایلهای Build و وابستگیها را حذف کنید.
- Diff را بهجای کل Repository ارسال کنید.
- تاریخچه غیرضروری را حذف کنید.
- طول پاسخ را محدود کنید.
- برای وظایف ساده مدل اقتصادیتر انتخاب کنید.
- نتیجههای تکراری را Cache کنید.
- مصرف هر کاربر و قابلیت را ثبت کنید.
- برای ورودی محدودیت اندازه قرار دهید.
- مدل قدرتمند را فقط برای مسائل پیچیده فراخوانی کنید.
قیمت مدلها ثابت نیست و به مدل، نوع ورودی و خروجی وابسته است. برای مشاهده اطلاعات بهروز به صفحه مدلها و قیمتهای درواره مراجعه کنید.
آیا ChatGPT جای برنامهنویس را میگیرد؟
ChatGPT بخشهایی از کار برنامهنویسی را سریعتر میکند، اما توسعه نرمافزار فقط نوشتن Syntax نیست.
یک برنامهنویس همچنان باید:
- مسئله واقعی را درک کند.
- نیازمندی متناقض را تشخیص دهد.
- تصمیم معماری بگیرد.
- میان هزینه و کیفیت تعادل ایجاد کند.
- کد را تست و ارزیابی کند.
- تغییرات را با سیستم موجود هماهنگ کند.
- خطاهای محیط واقعی را مدیریت کند.
- مسئولیت نتیجه نهایی را بپذیرد.
- با تیم محصول و کاربران ارتباط برقرار کند.
هوش مصنوعی بیشترین ارزش را برای برنامهنویسی ایجاد میکند که بتواند مسئله را دقیق تعریف کند و خروجی را جدی بررسی کند.
پرسشهای متداول
آیا میتوان با ChatGPT برنامهنویسی یاد گرفت؟
بله. ChatGPT میتواند مفاهیم را توضیح دهد، تمرین ایجاد کند، پاسخ شما را بررسی کند و مثال متناسب با سطح شما بسازد. بهتر است ابتدا خودتان مسئله را حل کنید و از مدل برای Hint و بازخورد استفاده کنید.
بهترین روش کدنویسی با ChatGPT چیست؟
مسئله را به وظایف کوچک تقسیم کنید، نسخه فناوریها را مشخص کنید، کد مرتبط و رفتار مورد انتظار را ارائه دهید و پس از هر تغییر تستها را اجرا کنید.
آیا کد تولیدشده توسط ChatGPT همیشه درست است؟
خیر. کد میتواند دارای خطای منطقی، API غیرواقعی، ناسازگاری نسخه یا Edge Case فراموششده باشد. هر خروجی باید بررسی و تست شود.
چگونه با ChatGPT خطای برنامه را پیدا کنیم؟
پیام کامل خطا، Stack Trace، کد مرتبط، نسخه زبان و کتابخانه، دستور اجرا، ورودی و رفتار مورد انتظار را ارائه کنید. از مدل بخواهید ابتدا فرضیه و روش آزمایش بنویسد.
آیا ChatGPT برای Python مناسب است؟
بله. ChatGPT میتواند در نوشتن، توضیح، تست و دیباگ کد پایتون کمک کند. بااینحال باید نسخه Python و کتابخانههای پروژه را در پرامپت مشخص کنید.
آیا ChatGPT برای JavaScript و TypeScript نیز کاربرد دارد؟
بله. میتوان از آن برای Node.js، React، Next.js، TypeScript و سایر فناوریهای وب استفاده کرد. فعالبودن TypeScript Strict و نسخه فریمورک را مشخص کنید.
چگونه از ChatGPT برای Code Review استفاده کنیم؟
هدف تغییر، نیازمندی و Diff را ارسال کنید. از مدل بخواهید فقط مشکلات قابل اقدام را همراه با شدت، سناریوی شکست، اصلاح و تست موردنیاز گزارش کند.
آیا میتوان کل پروژه را برای ChatGPT ارسال کرد؟
بسته به ابزار و محدودیت فایل ممکن است بتوانید چند فایل را بارگذاری کنید، اما بهتر است فقط فایلهای مرتبط و فاقد اطلاعات محرمانه را ارائه دهید. برای Repositoryهای بزرگ، ساختار و Diff معمولاً مفیدتر از ارسال بدون هدف تمام فایلهاست.
تفاوت ChatGPT و API چیست؟
ChatGPT محصولی برای تعامل مستقیم کاربر است. API برای اتصال مدل هوش مصنوعی به سایت، اپلیکیشن، Backend یا ابزار توسعه استفاده میشود.
چگونه یک ابزار برنامهنویسی هوش مصنوعی بسازیم؟
میتوانید با API درواره، Backend پایتون یا Node.js و یک رابط کاربری، قابلیتهایی مانند توضیح کد، تولید تست، Code Review و مستندسازی را پیادهسازی کنید.
API درواره چه آدرس پایهای دارد؟
آدرس پایه API سازگار با OpenAI درواره:
https://api.darvareh.ir/v1
مدل مناسب برنامهنویسی را چگونه انتخاب کنیم؟
توانایی Coding، اندازه Context، سرعت، هزینه، پشتیبانی از Tool Calling و کیفیت خروجی ساختاریافته را بررسی کنید. فهرست مدلها در صفحه مدلهای درواره قرار دارد.
آیا باید کلید API را در فرانتاند قرار دهیم؟
خیر. کلید API باید در Backend و متغیر محیطی نگهداری شود. فرانتاند باید درخواست را به سرور خودتان ارسال کند.
جمعبندی
برنامهنویسی با ChatGPT زمانی بیشترین ارزش را دارد که هوش مصنوعی را بخشی از یک جریان مهندسی کنترلشده بدانیم، نه تولیدکنندهای که خروجی آن بدون بررسی وارد پروژه شود.
جریان مناسب شامل این مراحل است:
- تعریف دقیق مسئله
- ارائه Context فنی
- مشخصکردن نسخهها و محدودیتها
- درخواست برنامه پیادهسازی
- تقسیم تغییرات به بخشهای کوچک
- تولید کد
- اجرای تست
- تحلیل خطا
- Code Review
- بررسی نهایی توسط توسعهدهنده
ChatGPT برای سؤالهای فنی، یادگیری، تحلیل کد و حل مسئله مناسب است. برای ساخت یک محصول یا ابزار خودکار نیز میتوانید همان قابلیتها را از طریق API وارد نرمافزار خود کنید.
با ثبتنام در درواره، دریافت کلید API و انتخاب مدل از صفحه مدلها، میتوانید دستیار برنامهنویسی، ابزار توضیح کد، تولیدکننده تست یا سامانه Code Review اختصاصی خود را بسازید.
مقالات مرتبط
- ChatGPT چیست؟ آموزش کامل چتجیپیتی از صفر تا حرفهای
- بهترین ابزارهای برنامهنویسی با هوش مصنوعی؛ بخش اول
- بهترین ابزارهای برنامهنویسی با هوش مصنوعی؛ بخش دوم
- بهترین مدل هوش مصنوعی برای برنامهنویسی
- OpenAI Codex چیست؟ آموزش عامل برنامهنویسی هوش مصنوعی
- ساخت دستیار برنامهنویسی سازمانی با هوش مصنوعی
- بررسی کد و Pull Request با هوش مصنوعی
- دیباگ کد و خطا با هوش مصنوعی
- ساخت Unit Test با هوش مصنوعی
- ریفکتور کدهای قدیمی با هوش مصنوعی
- API هوش مصنوعی چیست؟ راهنمای دریافت و استفاده
- دریافت API هوش مصنوعی و ساخت API Key
برای مطالعه شرایط استفاده و محدودیتهای مسئولیت، صفحه «سلب مسئولیت» را مشاهده کنید.