API چت جی پی تی چیست و چطور از آن استفاده کنیم؟
بسیاری از کاربران ChatGPT را از طریق سایت یا اپلیکیشن آن میشناسند، اما همان مدلهایی که پشت این چتبات کار میکنند از طریق API چت جی پی تی هم در اختیار برنامهنویسان قرار دارند. با این API میتوانید قدرت مدلهای OpenAI را مستقیماً داخل سایت، ربات، اپلیکیشن موبایل یا ابزارهای داخلی شرکت خود بیاورید. در این مقاله توضیح میدهیم API چت جی پی تی دقیقاً چیست، چه تفاوتی با نسخهٔ وب دارد، کدام مدلها در حال حاضر در دسترساند و چطور در چند دقیقه اولین برنامهٔ خود را با آن بنویسید.
API چت جی پی تی چیست؟
API (رابط برنامهنویسی نرمافزار) راهی است که دو نرمافزار با هم صحبت میکنند. در مورد ChatGPT، برنامهٔ شما یک درخواست HTTP شامل پیامها و تنظیمات به سرورهای OpenAI میفرستد و پاسخ مدل را به صورت JSON دریافت میکند. آنچه معمولاً «API چت جی پی تی» نامیده میشود در واقع OpenAI API است که مدلهای خانوادهٔ GPT را ارائه میدهد.
OpenAI دو رابط اصلی برای تولید متن دارد:
- Chat Completions: رابط کلاسیک و بسیار رایج که آرایهای از پیامها با نقشهای
system،userوassistantمیگیرد. بسیاری از سرویسهای دیگر هم با همین قالب سازگارند. - Responses: رابط جدیدتر OpenAI که برای ساخت عاملهای هوشمند و استفاده از ابزارها طراحی شده است.
در این مقاله از Chat Completions استفاده میکنیم، چون سادهتر است و کدی که مینویسید با سرویسهای سازگار دیگر هم کار میکند.
تفاوت API با نسخهٔ وب ChatGPT
| ویژگی | ChatGPT (وب و اپ) | API چت جی پی تی |
|---|---|---|
| کاربر هدف | استفادهٔ شخصی | توسعهدهندگان و کسبوکارها |
| روش پرداخت | اشتراک ماهانه یا نسخهٔ رایگان | بر اساس مصرف توکن |
| رابط کاربری | آماده | باید خودتان بسازید |
| شخصیسازی | محدود | کامل؛ از پرامپت سیستمی تا قالب خروجی |
| اتصال به نرمافزار | ندارد | اصلیترین کاربرد |
| حافظهٔ گفتوگو | خودکار | باید تاریخچه را خودتان مدیریت کنید |
نکتهٔ مهم آخر را فراموش نکنید: API بهصورت پیشفرض «حافظه» ندارد. اگر میخواهید مدل پیامهای قبلی را به خاطر بیاورد، باید آنها را در هر درخواست دوباره بفرستید.
مدلهای فعلی در API اوپنایآی
فهرست مدلهای OpenAI سریع تغییر میکند. تا اکتبر ۲۰۲۶، خانوادهٔ GPT-6 نسل اصلی است؛ OpenAI مدلهای gpt-6-sol و gpt-6-luna را در API عرضه کرده و پس از آن GPT-6.1 Sol را معرفی کرده است. نسل قبلی یعنی GPT-5.6 (با سطوح Sol، Terra و Luna) هم همچنان در API در دسترس است.
به طور کلی منطق نامگذاری این است:
- Sol: سطح قویتر برای استدلال پیچیده، کدنویسی و کارهای حرفهای
- Terra: تعادل بین توان و هزینه (در نسل 5.6)
- Luna: سطح سریع و کمهزینه برای حجم بالا
همچنین OpenAI اعلام کرده که چند مدل قدیمی، از جمله GPT-3.5 Turbo، GPT-4، GPT-4 Turbo و برخی مدلهای سری o، از ۲۳ اکتبر ۲۰۲۶ خاموش میشوند. اگر پروژهٔ قدیمی دارید که نام این مدلها در آن ثابت نوشته شده، همین حالا آن را بهروزرسانی کنید. پیش از انتخاب نهایی همیشه صفحهٔ مدلها در مستندات رسمی OpenAI را بررسی کنید.
چطور از API چت جی پی تی استفاده کنیم؟ آموزش قدمبهقدم
قدم اول: تهیهٔ API Key
برای کاربران ایرانی، ساخت حساب و پرداخت مستقیم در OpenAI ممکن نیست، چون ایران جزو کشورهای پشتیبانیشده نیست و پرداخت فقط با کارت بینالمللی انجام میشود. سادهترین راه، خرید API Key اوپنایآی از الین لند با پرداخت ریالی است. بعد از خرید، اطلاعات دسترسی شامل کلید و آدرس پایه (Base URL) را دریافت میکنید.
قدم دوم: نصب کتابخانه
pip install openai python-dotenv
سپس یک فایل .env بسازید و اطلاعات دسترسی را در آن قرار دهید:
OPENAI_BASE_URL=BASE_URL
OPENAI_API_KEY=API_KEY
قدم سوم: اولین درخواست
import os
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI(
base_url=os.getenv("OPENAI_BASE_URL"),
api_key=os.getenv("OPENAI_API_KEY"),
)
completion = client.chat.completions.create(
model="gpt-6-luna",
messages=[
{"role": "system", "content": "تو یک کارشناس پشتیبانی فروشگاه اینترنتی هستی و کوتاه و مؤدبانه جواب میدهی."},
{"role": "user", "content": "سفارشم کی میرسد؟"},
],
max_tokens=200,
)
print(completion.choices[0].message.content)
قدم چهارم: نگهداشتن تاریخچهٔ گفتوگو
برای ساخت چتبات واقعی باید پیامها را در یک لیست نگه دارید و هر بار کل لیست را بفرستید:
history = [{"role": "system", "content": "تو یک دستیار فارسیزبان هستی."}]
while True:
user_text = input("شما: ")
history.append({"role": "user", "content": user_text})
reply = client.chat.completions.create(
model="gpt-6-luna",
messages=history[-20:], # فقط پیامهای اخیر برای کنترل هزینه
).choices[0].message.content
history.append({"role": "assistant", "content": reply})
print("دستیار:", reply)
در این مثال فقط بیست پیام آخر ارسال میشود تا مصرف توکن کنترل شود. دقت کنید که با این برش ممکن است پیام سیستمی هم حذف شود؛ در نسخهٔ واقعی، پیام سیستمی را همیشه جداگانه در ابتدای لیست قرار دهید.
پارامترهای مهم API چت جی پی تی
- model: نام مدل؛ انتخاب درست آن بیشترین تأثیر را روی کیفیت و هزینه دارد.
- messages: آرایهٔ پیامها با نقش و محتوا.
- max_tokens: سقف طول پاسخ؛ برای جلوگیری از هزینهٔ ناخواسته ضروری است. در برخی مدلهای جدید، نام این پارامتر
max_completion_tokensاست. - temperature: میزان خلاقیت و تنوع پاسخ؛ عدد پایینتر یعنی پاسخ قابل پیشبینیتر. همهٔ مدلهای استدلالی این پارامتر را نمیپذیرند.
- stream: اگر
Trueباشد، پاسخ کلمهبهکلمه برمیگردد و تجربهٔ کاربر بهتر میشود. - response_format: برای دریافت خروجی ساختاریافته به شکل JSON.
- tools: برای فراخوانی تابع (Function Calling)، یعنی وقتی مدل باید از ابزارهای برنامهٔ شما مثل جستوجوی سفارش استفاده کند.
کیفیت پاسخ فقط به پارامترها وابسته نیست؛ نحوهٔ نوشتن پیام سیستمی و دستورها هم نقش اصلی دارد. در راهنمای مهندسی پرامپت این موضوع را مفصل بررسی کردهایم.
کاربردهای عملی API چت جی پی تی
- پشتیبانی مشتری: پاسخ خودکار به سؤالات پرتکرار در سایت یا پیامرسان.
- تولید محتوا: نوشتن پیشنویس توضیحات محصول، کپشن و ایمیل.
- استخراج اطلاعات: تبدیل متن آزاد مثل فاکتور یا رزومه به دادههای ساختاریافته.
- دستیار برنامهنویسی: توضیح کد، نوشتن تست و پیشنهاد اصلاح.
- ترجمه و خلاصهسازی: پردازش حجم زیادی از متن در زمان کوتاه.
هزینهٔ API چت جی پی تی
هزینه بر اساس تعداد توکنهای ورودی و خروجی محاسبه میشود و برای هر مدل متفاوت است. مدلهای سطح Luna برای حجم بالا بهصرفهترند و مدلهای Sol برای کارهای سنگینتر. چون قیمتها تغییر میکنند، بهجای عدد ثابت توصیه میکنیم مقالهٔ توکن و هزینهٔ API هوش مصنوعی را بخوانید تا بتوانید مصرف پروژهٔ خود را تخمین بزنید.
خطاهای رایج و راهحل آنها
- 401 Unauthorized: کلید نادرست است یا آدرس پایه اشتباه تنظیم شده.
- 404 model not found: نام مدل اشتباه است یا مدل بازنشسته شده.
- 429 Too Many Requests: از محدودیت نرخ عبور کردهاید یا اعتبار تمام شده؛ با تأخیر دوباره تلاش کنید.
- 500 و 503: مشکل موقت سمت سرور؛ مکانیزم تلاش مجدد با فاصلهٔ افزایشی پیاده کنید.
و یادتان باشد: کلید API را هرگز در کد فرانتاند یا مخزن عمومی قرار ندهید. نکات کامل را در مقالهٔ امنیت API Key ببینید.
چند توصیه برای استفادهٔ حرفهای
- نام مدل را در تنظیمات نگه دارید، نه در کد: وقتی مدلی بازنشسته شد، فقط یک مقدار را تغییر میدهید.
- لاگ مصرف داشته باشید: فیلد
usageدر پاسخ، تعداد توکنهای ورودی و خروجی را نشان میدهد؛ آن را ذخیره کنید تا بدانید کدام بخش برنامه پرهزینهتر است. - پیش از انتشار تست کنید: یک مجموعهٔ کوچک از سؤالات واقعی کاربران آماده کنید و هر بار که مدل یا پرامپت را تغییر میدهید، خروجیها را دوباره بررسی کنید.
- پاسخ مدل را بیچونوچرا نپذیرید: برای اطلاعات حساس مثل قیمت یا موجودی، داده را از پایگاه دادهٔ خودتان بخوانید و فقط نگارش پاسخ را به مدل بسپارید.
جایگزینهای API چت جی پی تی
اگر میخواهید مدلهای دیگر را هم امتحان کنید، کتابخانهٔ openai با بسیاری از سرویسها سازگار است. API دیپسیک برای پروژههای پرحجم و API کلاد برای متنهای طولانی گزینههای محبوبی هستند. با اعتبار OpenRouter هم میتوانید با یک کلید به مدلهای مختلف دسترسی داشته باشید. مقایسهٔ کامل را در مقالهٔ GPT در برابر Claude و Gemini بخوانید.
سؤالات متداول دربارهٔ API چت جی پی تی
آیا API چت جی پی تی رایگان است؟
خیر، استفاده از API بر اساس مصرف توکن هزینه دارد. البته برای تست و پروژههای کوچک، با انتخاب مدلهای کمهزینه و محدود کردن طول پاسخ، هزینه بسیار پایین میماند.
آیا اشتراک ChatGPT Plus دسترسی به API هم میدهد؟
خیر. اشتراک ChatGPT و API دو محصول جدا با صورتحساب جداگانه هستند. برای استفادهٔ برنامهنویسی باید API Key جداگانه داشته باشید.
کدام مدل را برای شروع انتخاب کنم؟
برای بیشتر چتباتها و کارهای روزمره، یک مدل سریع و کمهزینه مانند سطح Luna کافی است. اگر کیفیت کافی نبود، به مدل قویتر سطح Sol بروید. همیشه با دادههای واقعی خودتان مقایسه کنید.
آیا میتوانم با زبانی غیر از پایتون از API استفاده کنم؟
بله. API از طریق HTTP کار میکند و از هر زبانی قابل استفاده است. OpenAI کتابخانهٔ رسمی برای پایتون و جاوااسکریپت دارد و برای PHP، Go و زبانهای دیگر هم کتابخانههای معتبر وجود دارد.
چرا کدی که قبلاً کار میکرد حالا خطای مدل میدهد؟
احتمالاً مدلی که استفاده میکردید بازنشسته شده است. نام مدل را با یکی از مدلهای فعال جایگزین کنید و خروجی را دوباره تست کنید.
برای شروع ساخت با API چت جی پی تی آمادهاید؟ کلید خود را با پرداخت ریالی و تحویل فوری از فروشگاه الین لند تهیه کنید.