بستهی openai در npm کلاینت رسمی OpenAI برای Node.js، Bun و Deno است و تایپهای TypeScript کامل دارد. با تغییر baseURL همین کلاینت به دروازهی پیکو هوش وصل میشود و بقیهی کد، از جمله استریم و تایپها، تغییری نمیکند.
این روش برای بکاند Express، Fastify، Next.js API Route و اسکریپتهای خودکارسازی مناسب است. توجه کنید که کلید API نباید هرگز در کد سمت مرورگر قرار بگیرد؛ درخواستها را از سرور خودتان ارسال کنید.
پیشنیازها
- یک حساب پیکو هوش و یک کلید API از داشبورد (کلید فقط یکبار کامل نمایش داده میشود).
- شناسهی دقیق مدل از کاتالوگ؛ در مثالها از gpt-6-sol و claude-sonnet-5-5 استفاده شده است.
- کمی موجودی در کیف پول تومانی یا اعتبار؛ تعرفه را در صفحهی قیمتها ببینید.
راهاندازی گامبهگام
نصب بسته
Node.js نسخهی ۱۸ یا بالاتر توصیه میشود.
Terminal npm install openaiساخت کلاینت
گزینهی baseURL و apiKey را هنگام ساخت بدهید. در ESM از import استفاده کنید.
index.mjs import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.picoai.ir/v1", apiKey: process.env.PICOAI_API_KEY ?? "YOUR_API_KEY", }); const res = await client.chat.completions.create({ model: "gpt-6-sol", messages: [{ role: "user", content: "سلام! خودت را معرفی کن." }], }); console.log(res.choices[0].message.content);استریم با for await
با stream: true میتوانید تکهها را مستقیم به کلاینت وب منتقل کنید.
stream.mjs const stream = await client.chat.completions.create({ model: "claude-sonnet-5-5", messages: [{ role: "user", content: "یک شعر کوتاه بنویس." }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ""); }استفاده در Next.js Route Handler
کلید را در متغیر محیطی سرور نگه دارید و از مسیر API خودتان صدا بزنید تا به مرورگر نرسد.
app/api/chat/route.ts import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.picoai.ir/v1", apiKey: process.env.PICOAI_API_KEY }); export async function POST(req: Request) { const { messages } = await req.json(); const res = await client.chat.completions.create({ model: "gpt-6-sol", messages }); return Response.json(res.choices[0].message); }
تست سریع اتصال
پیش از نوشتن منطق برنامه، یک بار فهرست مدلها را بگیرید. اگر پاسخ ۲۰۰ و فهرستی از شناسهها برگشت، کلید، شبکه و آدرس درست است و هر مشکل بعدی مربوط به تنظیمات OpenAI Node.js SDK خواهد بود.
curl https://api.picoai.ir/v1/models \
-H "Authorization: Bearer YOUR_API_KEY"نکتههای کاربردی برای OpenAI Node.js SDK
- برای TypeScript نیازی به تایپ اضافه نیست؛ نوع پارامترها از خود بسته میآید.
- اگر پشت پراکسی سازمانی هستید، گزینهی httpAgent (یا fetch سفارشی) را تنظیم کنید.
- در محیط Edge یا Cloudflare Workers هم همین کلاینت کار میکند چون فقط از fetch استفاده میکند.
عیبیابی
خطای CORS در مرورگر میگیرم
کلاینت را در مرورگر استفاده نکنید. کلید API محرمانه است و باید فقط از سرور شما به پیکو هوش برود؛ مرورگر را به مسیر API خودتان وصل کنید.
خطای ECONNREFUSED یا timeout
مطمئن شوید آدرس با https شروع میشود و /v1 در انتها هست. اگر شبکهی شما فیلتر یا پراکسی دارد، دسترسی به api.picoai.ir را بررسی کنید.
پاسخ استریم ناقص قطع میشود
اگر پشت Nginx هستید، proxy_buffering را برای مسیر استریم خاموش کنید و timeout خواندن را بالا ببرید.
خطای 401 (Unauthorized)
کلید اشتباه، غیرفعال یا همراه فاصلهی اضافه است. در داشبورد کلید را بررسی و در صورت نیاز یک کلید تازه بسازید.
خطای 429 (Rate limit)
تعداد درخواستهای شما در دقیقه از سقف کلید بیشتر شده است. چند ثانیه صبر و دوباره تلاش کنید یا سقف کلید را در داشبورد بررسی کنید.
هزینه و صورتحساب
هر درخواست قبل از اجرا مقداری از موجودی را رزرو میکند و پس از پاسخ موفق بر پایهی توکنهای واقعی تسویه میشود؛ مابهالتفاوت برمیگردد و درخواست ناموفق چیزی کم نمیکند. جدول قیمت هر مدل در صفحهی قیمتها منتشر شده و مصرف هر درخواست در داشبورد قابل مشاهده است. اگر قبلاً از سرویس دیگری استفاده میکردید، راهنمای مهاجرت و صفحهی مقایسه را ببینید.
پرسشهای متداول
آیا با Bun و Deno هم کار میکند؟
بله، بستهی openai روی این محیطها هم اجرا میشود؛ تنظیمات baseURL مشابه است.
baseURL باید به /v1 ختم شود؟
بله: https://api.picoai.ir/v1. مسیرهای chat/completions و models به آن اضافه میشوند.
آیا برای Vercel AI SDK هم میشود؟
بله، راهنمای جداگانهی Vercel AI SDK را ببینید.
اگر درخواست ناموفق باشد هزینه کم میشود؟
خیر. در پیکو هوش هزینه ابتدا رزرو و پس از پاسخ موفق بر اساس مصرف واقعی تسویه میشود؛ درخواست ناموفق بدون کسر هزینه است.
OpenAI Node.js SDK را همین حالا وصل کنید
با ساخت حساب و یک کلید، در چند دقیقه اولین پاسخ را بگیرید. اگر ابزار دیگری دارید، فهرست کامل اتصالها را ببینید.
راهنمای ابزارهای مرتبط
- اتصال Vercel AI SDKاستفاده از AI SDK با ارائهدهندهی OpenAI-compatible
- اتصال OpenAI Python SDKکتابخانهی رسمی OpenAI برای پایتون با پیکو هوش
- اتصال LangChainاستفاده از مدلهای پیکو هوش در LangChain پایتون و جاوااسکریپت
- اتصال n8nاتوماسیون n8n با گره OpenAI و آدرس پایهی پیکو هوش
- اتصال cURLفراخوانی مستقیم API پیکو هوش از ترمینال
- اتصال PHPاتصال PHP و لاراول به API پیکو هوش
- مقایسهی پیکو هوش با سرویسهای مشابهمقایسهی بیطرفانه و مبتنی بر اطلاعات عمومی
- Base URL چیست؟تعریف و کاربرد آدرس پایه در APIهای سازگار