پرش به محتوا

SDKها و زبان‌ها

اتصال به گیسو با SDK رسمی OpenAI در پایتون، Node.js، Go و .NET و با PHP یا curl؛ تنظیم base_url، زمان انتظار، تلاش دوباره و متغیرهای محیطی.

بازبینی: ۸ مهر ۱۴۰۵ ۵ دقیقه مطالعه

گیسو SDK اختصاصی ندارد و لازم هم ندارد: SDKهای رسمی OpenAI با گیسو کار می‌کنند. در هر کدام فقط دو مقدار را عوض می‌کنید، نشانی پایه (base URL) و کلید. بقیهٔ امکانات SDK، از پاسخ جریانی و تلاش دوباره تا تبدیل خودکار خروجی JSON، همان‌طور کار می‌کند.

ساده‌ترین راه: متغیرهای محیطی#

SDKهای رسمی پایتون و Node.js این دو متغیر را خودشان می‌خوانند؛ کدی که برای OpenAI نوشته‌اید بدون هیچ تغییری به گیسو وصل می‌شود:

.env .env
# The official Python and Node.js SDKs read these two variables by themselves:
OPENAI_BASE_URL=https://gisoo.pro/api/v1
OPENAI_API_KEY=sk-gisoo-v1-...

SDKهای رسمی OpenAI#

# pip install --upgrade openai
import os
from openai import OpenAI, AsyncOpenAI

client = OpenAI(
    base_url="https://gisoo.pro/api/v1",
    api_key=os.environ["GISOO_API_KEY"],
    timeout=60,        # seconds per request
    max_retries=3,     # 429 / 5xx are retried with back-off
)

# async code (FastAPI, aiohttp…)
aclient = AsyncOpenAI(base_url="https://gisoo.pro/api/v1", api_key=os.environ["GISOO_API_KEY"])
زبانبستهتنظیم نشانی پایه
Pythonopenaibase_url=
Node.js / TypeScriptopenaibaseURL:
Gogithub.com/openai/openai-gooption.WithBaseURL()
C# / .NETOpenAI (NuGet)OpenAIClientOptions.Endpoint
Javacom.openai:openai-java.baseUrl()
PHPopenai-php/clientwithBaseUri()
Rubyruby-openaiuri_base: (بدون v1)

Laravel، Java و Ruby#

.env Laravel
# Laravel with openai-php/laravel: .env
OPENAI_API_KEY=sk-gisoo-v1-...
OPENAI_BASE_URL=https://gisoo.pro/api/v1
OPENAI_REQUEST_TIMEOUT=60
متن Java
// com.openai:openai-java
OpenAIClient client = OpenAIOkHttpClient.builder()
    .baseUrl("https://gisoo.pro/api/v1")
    .apiKey(System.getenv("GISOO_API_KEY"))
    .build();

ChatCompletion reply = client.chat().completions().create(
    ChatCompletionCreateParams.builder()
        .model("gpt-4o-mini")
        .addUserMessage("Hello!")
        .build());
متن Ruby
# gem install ruby-openai
require "openai"

client = OpenAI::Client.new(
  access_token: ENV.fetch("GISOO_API_KEY"),
  uri_base: "https://gisoo.pro/api/",       # the gem adds "v1/" itself
  request_timeout: 60
)

reply = client.chat(parameters: { model: "gpt-4o-mini", messages: [{ role: "user", content: "Hello!" }] })
puts reply.dig("choices", 0, "message", "content")

Vercel AI SDK#

در AI SDK، با createOpenAI یک provider با نشانی گیسو بسازید و مدل را با .chat() صدا بزنید تا درخواست به /chat/completions برود؛ این مسیر برای مدل‌های متنی همهٔ سازنده‌های کاتالوگ گیسو کار می‌کند.

Node.js AI SDK
// npm install ai @ai-sdk/openai
import { createOpenAI } from "@ai-sdk/openai";
import { generateText } from "ai";

const gisoo = createOpenAI({ baseURL: "https://gisoo.pro/api/v1", apiKey: process.env.GISOO_API_KEY });

const { text } = await generateText({
  model: gisoo.chat("gpt-4o-mini"),       // .chat() → /chat/completions, works for every vendor
  prompt: "Write a haiku about Shiraz.",
});

بدون SDK#

هر زبانی که درخواست HTTPS بفرستد کافی است. بدنه JSON با کدگذاری UTF-8 و کلید در هدر Authorization:

متن HTTP
# No SDK? It is plain HTTPS + JSON.
POST https://gisoo.pro/api/v1/chat/completions
Authorization: Bearer sk-gisoo-v1-...
Content-Type: application/json

{"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "Hello!"}]}

تنظیم‌های پیشنهادی#

  • زمان انتظار (timeout): برای پاسخ عادی ۶۰ ثانیه و برای ساخت تصویر یا موسیقی ۱۲۰ ثانیه. پاسخ‌های بلند را جریانی بگیرید.
  • تلاش دوباره: ۲ تا ۴ بار؛ SDKها فقط خطاهای موقت (۴۲۹، ۵xx و قطع اتصال) را دوباره می‌فرستند.
  • پراکسی و فیلترشکن: لازم نیست. اگر سرورتان پشت پراکسی سازمانی است، دامنهٔ gisoo.pro را مجاز کنید.
  • نسخهٔ SDK: نسخهٔ تازه را نصب کنید. قابلیت‌هایی مثل خروجی ساختاریافته و Responses API در نسخه‌های قدیمی نیستند.
نمونه‌کدهای آماده

مخزن متن‌باز github.com/netarz/ai-api-examples نمونهٔ کامل Python، Node.js، PHP، Laravel، Go، C#، Ruby، LangChain، n8n و ربات تلگرام دارد. این نمونه‌ها را تیم نِت اَرز نوشته و با کلید گیسو هم کار می‌کنند؛ فقط نشانی پایه را https://gisoo.pro/api/v1 بگذارید.

پاسخ پرسشتان را پیدا نکردید؟

شناسهٔ درخواست (هدر X-Request-Id) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.

تیکت پشتیبانی