کتابخانهی رسمی openai برای پایتون رایجترین راه برای صدا زدن مدلهای زبانی است. چون API پیکو هوش با قالب درخواست و پاسخ OpenAI سازگار است، برای اتصال لازم نیست هیچ بخشی از منطق برنامه را بازنویسی کنید؛ فقط آدرس پایه و کلید تغییر میکند.
مزیت عملی این روش این است که همان کد میتواند به مدلهای OpenAI، Anthropic، Google، DeepSeek و دیگر مدلهای کاتالوگ وصل شود. برای هر درخواست فقط مقدار پارامتر model را عوض میکنید و هزینه از کیف پول تومانی شما کم میشود.
پیشنیازها
- یک حساب پیکو هوش و یک کلید API از داشبورد (کلید فقط یکبار کامل نمایش داده میشود).
- شناسهی دقیق مدل از کاتالوگ؛ در مثالها از gpt-6-sol و claude-sonnet-5-5 استفاده شده است.
- کمی موجودی در کیف پول تومانی یا اعتبار؛ تعرفه را در صفحهی قیمتها ببینید.
راهاندازی گامبهگام
نصب کتابخانه
پایتون ۳.۸ یا بالاتر لازم است. کتابخانه را در محیط مجازی پروژه نصب کنید.
Terminal pip install --upgrade openaiساخت کلاینت با آدرس پایهی پیکو هوش
پارامترهای base_url و api_key را هنگام ساخت کلاینت بدهید. کلید را از داشبورد بگیرید و هرگز داخل مخزن کد ذخیره نکنید.
app.py import os from openai import OpenAI client = OpenAI( base_url="https://api.picoai.ir/v1", api_key=os.environ.get("PICOAI_API_KEY", "YOUR_API_KEY"), ) reply = client.chat.completions.create( model="gpt-6-sol", messages=[{"role": "user", "content": "یک جمله دربارهی تهران بنویس."}], ) print(reply.choices[0].message.content)استریم پاسخ
برای نمایش تدریجی متن، stream=True بدهید و تکهها را بخوانید. پیکو هوش استریم SSE را با همان قالب OpenAI برمیگرداند.
stream.py stream = client.chat.completions.create( model="claude-sonnet-5-5", messages=[{"role": "user", "content": "سه نکته برای نوشتن پرامپت خوب بگو."}], stream=True, ) for chunk in stream: delta = chunk.choices[0].delta.content if delta: print(delta, end="", flush=True)تنظیم از طریق متغیر محیطی (اختیاری)
اگر نمیخواهید آدرس را در کد بنویسید، کتابخانه متغیرهای OPENAI_BASE_URL و OPENAI_API_KEY را هم میخواند و کلاینت را بدون آرگومان میسازید.
Terminal export OPENAI_BASE_URL="https://api.picoai.ir/v1" export OPENAI_API_KEY="YOUR_API_KEY" python -c "from openai import OpenAI; print(OpenAI().models.list().data[0].id)"
تست سریع اتصال
پیش از نوشتن منطق برنامه، یک بار فهرست مدلها را بگیرید. اگر پاسخ ۲۰۰ و فهرستی از شناسهها برگشت، کلید، شبکه و آدرس درست است و هر مشکل بعدی مربوط به تنظیمات OpenAI Python SDK خواهد بود.
curl https://api.picoai.ir/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"نکتههای کاربردی برای OpenAI Python SDK
- برای کارهای سبک و پرحجم (دستهبندی، استخراج) از مدلهای اقتصادی کاتالوگ استفاده کنید و مدلهای پرچمدار را برای استدلال سنگین نگه دارید.
- timeout و تعداد تلاش مجدد را در کلاینت تنظیم کنید: OpenAI(max_retries=2, timeout=60). مسیریابی چندمسیرهی پیکو هوش خطاهای زیرساختی را در سمت ما پنهان میکند، اما محدودیت شبکهی خود شما همچنان لازم است.
- در سرویسهای وب از AsyncOpenAI استفاده کنید تا درخواستهای همزمان رشتهی اصلی را مسدود نکنند.
عیبیابی
خطای 401 یا Incorrect API key میگیرم
کلید را بدون فاصلهی اضافه کپی کنید و مطمئن شوید که کلید در داشبورد فعال است. اگر متغیر OPENAI_API_KEY قدیمی در شل شما تنظیم شده، پارامتر api_key را صریح بدهید.
کد هنوز به api.openai.com وصل میشود
احتمالاً base_url فراموش شده یا کلاینت قبل از تنظیم متغیر محیطی ساخته شده است. مقدار client.base_url را چاپ کنید؛ باید به api.picoai.ir/v1 اشاره کند.
خطای model not found
نام مدل باید دقیقاً مطابق شناسهی کاتالوگ باشد، مثل gpt-6-sol. فهرست زنده را با client.models.list() بگیرید.
خطای 401 (Unauthorized)
کلید اشتباه، غیرفعال یا همراه فاصلهی اضافه است. در داشبورد کلید را بررسی و در صورت نیاز یک کلید تازه بسازید.
خطای 429 (Rate limit)
تعداد درخواستهای شما در دقیقه از سقف کلید بیشتر شده است. چند ثانیه صبر و دوباره تلاش کنید یا سقف کلید را در داشبورد بررسی کنید.
هزینه و صورتحساب
هر درخواست قبل از اجرا مقداری از موجودی را رزرو میکند و پس از پاسخ موفق بر پایهی توکنهای واقعی تسویه میشود؛ مابهالتفاوت برمیگردد و درخواست ناموفق چیزی کم نمیکند. جدول قیمت هر مدل در صفحهی قیمتها منتشر شده و مصرف هر درخواست در داشبورد قابل مشاهده است. اگر قبلاً از سرویس دیگری استفاده میکردید، راهنمای مهاجرت و صفحهی مقایسه را ببینید.
پرسشهای متداول
آیا باید کتابخانهی دیگری بهجای openai نصب کنم؟
خیر. همان بستهی رسمی openai کافی است و فقط base_url تغییر میکند.
آیا فراخوانی ابزار (function calling) پشتیبانی میشود؟
قالب درخواست OpenAI از فیلد tools پشتیبانی میکند؛ اما پشتیبانی واقعی به مدل انتخابی بستگی دارد. قابلیتهای هر مدل را در صفحهی همان مدل در کاتالوگ ببینید.
میتوانم با همین کلاینت تصویر هم بسازم؟
بله، متد client.images.generate به /v1/images/generations و client.audio.speech.create به /v1/audio/speech میرسد. مدل مناسب را از کاتالوگ بردارید.
اگر درخواست ناموفق باشد هزینه کم میشود؟
خیر. در پیکو هوش هزینه ابتدا رزرو و پس از پاسخ موفق بر اساس مصرف واقعی تسویه میشود؛ درخواست ناموفق بدون کسر هزینه است.
OpenAI Python SDK را همین حالا وصل کنید
با ساخت حساب و یک کلید، در چند دقیقه اولین پاسخ را بگیرید. اگر ابزار دیگری دارید، فهرست کامل اتصالها را ببینید.
راهنمای ابزارهای مرتبط
- اتصال OpenAI Node.js SDKکتابخانهی رسمی OpenAI برای Node.js و TypeScript
- اتصال LiteLLMاستفاده از LiteLLM SDK و پراکسی با پیکو هوش
- اتصال LangChainاستفاده از مدلهای پیکو هوش در LangChain پایتون و جاوااسکریپت
- اتصال cURLفراخوانی مستقیم API پیکو هوش از ترمینال
- اتصال PHPاتصال PHP و لاراول به API پیکو هوش
- اتصال Goاستفاده از API پیکو هوش در Go با go-openai
- مقایسهی پیکو هوش با سرویسهای مشابهمقایسهی بیطرفانه و مبتنی بر اطلاعات عمومی
- Base URL چیست؟تعریف و کاربرد آدرس پایه در APIهای سازگار