آموزش

آموزش OpenAI API با پایتون؛ از دریافت API Key تا اولین درخواست

آموزش گام‌به‌گام استفاده از OpenAI API با Python؛ نصب OpenAI SDK، دریافت API Key، ارسال درخواست، رفع خطاها و اتصال به API سازگار با OpenAI

Sinox API۹ دقیقه مطالعه۲ بازدید

OpenAI API با پایتون؛ از دریافت API Key تا اولین درخواست


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

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

نکته جالب این است که برای استفاده از این کتابخانه الزاماً محدود به API رسمی OpenAI نیستید. سرویس‌هایی مانند Sinox API نیز از ساختار OpenAI-Compatible پشتیبانی می‌کنند و امکان استفاده از مدل‌های متنی مختلف را از طریق یک API فراهم می‌کنند.

در این آموزش، نحوه نصب OpenAI SDK، دریافت API Key، ارسال اولین درخواست و اتصال به Sinox API را مرحله‌به‌مرحله بررسی می‌کنیم.

OpenAI API چیست و چه کاربردی دارد؟

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

برای مثال، به‌جای اینکه وارد محیط ChatGPT شوید و سؤال خود را به‌صورت دستی وارد کنید، می‌توانید برنامه‌ای بنویسید که درخواست را به API ارسال کرده و پاسخ مدل را دریافت کند.

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

زبان Python به دلیل سادگی و کتابخانه‌های متنوع، یکی از گزینه‌های مناسب برای شروع کار با API هوش مصنوعی است.

اگر هنوز با مفهوم API آشنا نیستید، پیشنهاد می‌کنیم ابتدا مقاله «API هوش مصنوعی چیست؟» را در بلاگ Sinox مطالعه کنید.

پیش‌نیازهای استفاده از OpenAI API با پایتون

قبل از شروع، به چند ابزار ساده نیاز داریم:

  • Python: نسخه‌ای پشتیبانی‌شده از پایتون، ترجیحاً نسخه 3.10 یا جدیدتر

  • OpenAI SDK: کتابخانه رسمی OpenAI برای Python

  • API Key: کلید دسترسی به سرویس API

  • اینترنت: برای ارسال درخواست به سرور ارائه‌دهنده

  • ویرایشگر کد: مانند VS Code یا PyCharm

برای بررسی نصب بودن پایتون، ترمینال یا Command Prompt را باز کنید و دستور زیر را اجرا کنید:

python --version

اگر از macOS یا بعضی توزیع‌های لینوکس استفاده می‌کنید، ممکن است لازم باشد از python3 استفاده کنید.

پس از اطمینان از نصب پایتون، می‌توانیم سراغ مراحل بعدی برویم.

مرحله اول: دریافت OpenAI API Key

برای ارسال درخواست به API هوش مصنوعی، ابتدا به یک API Key معتبر نیاز دارید.

اگر قصد استفاده از API رسمی OpenAI را دارید، باید از طریق پلتفرم توسعه‌دهندگان OpenAI کلید خود را دریافت کنید.

اما اگر از یک سرویس سازگار با OpenAI مانند Sinox API استفاده می‌کنید، می‌توانید API Key خود را از پنل همان سرویس دریافت کنید.

برای استفاده از Sinox:

  1. وارد وب‌سایت Sinox API شوید.

  2. حساب کاربری خود را ایجاد کنید یا وارد حساب شوید.

  3. به بخش مدیریت API Key بروید.

  4. یک کلید API بسازید و آن را در محلی امن نگهداری کنید.

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

نکته امنیتی: API Key را در کدهای عمومی یا مخازن GitHub منتشر نکنید. بهتر است از متغیرهای محیطی برای نگهداری آن استفاده کنید.

مرحله دوم: نصب کتابخانه OpenAI در Python

برای ارتباط با OpenAI API، ساده‌ترین روش استفاده از کتابخانه رسمی openai است.

ترمینال را باز کرده و دستور زیر را اجرا کنید:

python -m pip install --upgrade openai

این دستور کتابخانه OpenAI SDK را نصب یا به‌روزرسانی می‌کند.

در macOS و Linux می‌توانید در صورت نیاز به‌جای python از python3 استفاده کنید.

برای بررسی نصب صحیح کتابخانه، دستور زیر را اجرا کنید:

python -m pip show openai

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

مرحله سوم: تنظیم API Key در پایتون

بهتر است API Key را مستقیماً داخل کد قرار ندهیم.

برای این کار می‌توانیم از متغیر محیطی استفاده کنیم.

در ویندوز و محیط PowerShell:

$env:SINOX_API_KEY="YOUR_API_KEY"

در macOS و Linux:

export SINOX_API_KEY="YOUR_API_KEY"

به‌جای YOUR_API_KEY کلید واقعی دریافتی از Sinox را وارد کنید.

این متغیر برای نشست فعلی ترمینال تنظیم می‌شود و برنامه پایتون می‌تواند مقدار آن را بخواند.

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

مرحله چهارم: ارسال اولین درخواست به OpenAI API با Python

حالا می‌خواهیم یک درخواست ساده به مدل هوش مصنوعی ارسال کنیم.

در این مثال از کتابخانه OpenAI و API سازگار با OpenAI در Sinox استفاده می‌کنیم.

یک فایل با نام main.py ایجاد کنید و کد زیر را داخل آن قرار دهید:

import osfrom openai import OpenAIclient = OpenAI(    api_key=os.environ["SINOX_API_KEY"],    base_url="https://sinoxapi.com/v1")response = client.chat.completions.create(    model="YOUR_MODEL_ID",    messages=[        {            "role": "system",            "content": "You are a helpful assistant."        },        {            "role": "user",            "content": "هوش مصنوعی را در سه جمله توضیح بده."        }    ])print(response.choices[0].message.content)

در قسمت YOUR_MODEL_ID باید شناسه دقیق یکی از مدل‌های پشتیبانی‌شده توسط Sinox API را وارد کنید.

سپس برنامه را اجرا کنید:

python main.py

اگر API Key، شناسه مدل و سایر تنظیمات صحیح باشند، پاسخ تولیدشده توسط مدل در ترمینال نمایش داده می‌شود.

به این ترتیب اولین درخواست خود را با استفاده از OpenAI SDK و Python ارسال کرده‌اید.

بررسی بخش‌های مختلف کد OpenAI API

برای درک بهتر مثال قبلی، قسمت‌های مهم کد را بررسی می‌کنیم.

API Key

پارامتر api_key کلید احراز هویت سرویس را مشخص می‌کند.

در این مثال مقدار آن از متغیر محیطی SINOX_API_KEY خوانده می‌شود.

Base URL

پارامتر base_url آدرس سروری را مشخص می‌کند که درخواست‌های API به آن ارسال می‌شوند.

برای Sinox API در حالت OpenAI-Compatible، آدرس به شکل زیر است:

https://sinoxapi.com/v1

اما هنگام استفاده مستقیم از API رسمی OpenAI، معمولاً نیازی به تعیین دستی Base URL نیست و کتابخانه از آدرس پیش‌فرض خود استفاده می‌کند.

Model

پارامتر model مشخص می‌کند درخواست باید توسط کدام مدل پردازش شود.

شناسه مدل باید دقیقاً مطابق اطلاعات ارائه‌دهنده API باشد.

Messages

پارامتر messages شامل پیام‌های مکالمه است.

پیام system برای تعیین دستورالعمل‌های کلی مدل استفاده می‌شود و پیام user درخواست کاربر را مشخص می‌کند.

در نهایت، پاسخ تولیدشده از طریق response.choices[0].message.content دریافت می‌شود.

چگونه با OpenAI SDK از مدل‌های مختلف استفاده کنیم؟

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

برای مثال، Sinox API مدل‌هایی از خانواده‌های GPT، Claude و سایر مدل‌های متنی را در فهرست خدمات خود ارائه می‌کند.

مدل‌هایی مانند GPT-6 Astra، Claude Opus و Claude Fable از جمله نام‌هایی هستند که در فهرست مدل‌های سینوکس معرفی شده‌اند.

برای تغییر مدل در کد قبلی، در صورتی که مدل موردنظر از Endpoint استفاده‌شده پشتیبانی کند، کافی است مقدار model را با شناسه دقیق آن جایگزین کنید.

البته همه مدل‌ها الزاماً از تمام قابلیت‌های OpenAI SDK پشتیبانی نمی‌کنند؛ بنابراین باید مستندات مدل و Gateway را بررسی کنید.

تفاوت OpenAI API با OpenAI-Compatible API

عبارت OpenAI-Compatible API به سرویس‌هایی اشاره دارد که از ساختار درخواست و پاسخ مشابه APIهای OpenAI پشتیبانی می‌کنند.

در چنین سرویس‌هایی معمولاً می‌توان با تغییر API Key، Base URL و شناسه مدل، از کتابخانه OpenAI برای اتصال به یک ارائه‌دهنده دیگر استفاده کرد.

این ویژگی می‌تواند نیاز به بازنویسی بخش‌های زیادی از کد را کاهش دهد.

البته OpenAI-Compatible بودن به معنای پشتیبانی کامل از تمام Endpointها و قابلیت‌های OpenAI نیست.

برای مثال، ممکن است یک سرویس از Chat Completions پشتیبانی کند، اما برخی قابلیت‌های دیگر را ارائه ندهد.

در Sinox API نیز برای اتصال ابزارهای سازگار با OpenAI از Base URL زیر استفاده می‌شود:

https://sinoxapi.com/v1

رفع خطاهای رایج OpenAI API در پایتون

هنگام ارسال درخواست ممکن است با خطاهایی مواجه شوید.

خطای 401: Invalid API Key

این خطا معمولاً به مشکل احراز هویت مربوط است.

مطمئن شوید API Key صحیح است و کلید متعلق به همان سرویسی است که در Base URL مشخص کرده‌اید.

خطای 404: Model Not Found

اگر شناسه مدل اشتباه باشد یا مدل موردنظر در سرویس در دسترس نباشد، ممکن است خطای 404 دریافت کنید.

شناسه دقیق مدل را از فهرست مدل‌های ارائه‌دهنده بررسی کنید.

خطای 429: Rate Limit

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

برای مدیریت آن می‌توانید از ارسال درخواست‌های بیش‌ازحد خودداری کرده و از روش‌هایی مانند Retry با تأخیر افزایشی استفاده کنید.

خطاهای اتصال و Timeout

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

در این شرایط اتصال اینترنت، Base URL، وضعیت سرویس و تنظیمات Timeout را بررسی کنید.

آیا می‌توان از API هوش مصنوعی ارزان در Python استفاده کرد؟

بله. برای استفاده از مدل‌های هوش مصنوعی در Python الزاماً مجبور نیستید مستقیماً از API رسمی شرکت سازنده مدل استفاده کنید.

سرویس‌های سازگار با OpenAI ممکن است قیمت‌گذاری متفاوتی ارائه دهند.

برای مثال، Sinox API با هدف ارائه دسترسی اقتصادی به مدل‌های هوش مصنوعی امکان استفاده از مدل‌های متنی مختلف را از طریق یک API واحد فراهم می‌کند.

طبق تعرفه اعلام‌شده سینوکس، هزینه مدل‌های ارائه‌شده در این سرویس ۱۹ سنت به‌ازای هر یک میلیون توکن است.

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

سؤالات متداول

آیا برای استفاده از OpenAI API باید ChatGPT Plus داشته باشیم؟

خیر. اشتراک ChatGPT و سرویس OpenAI API از نظر دسترسی و صورت‌حساب جدا هستند. برای استفاده از API باید دسترسی و اعتبار لازم را در سرویس API موردنظر داشته باشید.

آیا می‌توان با OpenAI SDK به Claude متصل شد؟

بله، در صورتی که ارائه‌دهنده API از یک رابط OpenAI-Compatible برای مدل موردنظر پشتیبانی کند، می‌توانید از OpenAI SDK استفاده کنید.

آیا برای استفاده از Sinox API باید کد OpenAI را تغییر دهیم؟

در بسیاری از کاربردهای سازگار، تغییر API Key، Base URL و شناسه مدل کافی است. با این حال، پشتیبانی از قابلیت‌های خاص باید جداگانه بررسی شود.

آیا استفاده از API هوش مصنوعی با Python رایگان است؟

کتابخانه OpenAI SDK رایگان و متن‌باز است، اما ارسال درخواست به مدل‌های تجاری معمولاً هزینه دارد.

جمع‌بندی

استفاده از OpenAI API با پایتون یکی از ساده‌ترین روش‌ها برای اضافه کردن قابلیت‌های هوش مصنوعی به پروژه‌های نرم‌افزاری است.

با نصب OpenAI SDK، دریافت API Key و ارسال چند خط کد می‌توانید درخواست خود را به مدل هوش مصنوعی ارسال کرده و پاسخ دریافت کنید.

همچنین با استفاده از سرویس‌های OpenAI-Compatible مانند Sinox API می‌توانید به مدل‌های پشتیبانی‌شده مختلف از طریق یک رابط مشترک متصل شوید.

اگر قصد دارید استفاده از API هوش مصنوعی را در پروژه‌های Python خود شروع کنید، می‌توانید از Sinox API برای دریافت API Key و بررسی مدل‌های موجود استفاده کنید.

اشتراک‌گذاری: