گیسو SDK اختصاصی ندارد و لازم هم ندارد: SDKهای رسمی OpenAI با گیسو کار میکنند. در هر کدام فقط دو مقدار را عوض میکنید، نشانی پایه (base URL) و کلید. بقیهٔ امکانات SDK، از پاسخ جریانی و تلاش دوباره تا تبدیل خودکار خروجی JSON، همانطور کار میکند.
سادهترین راه: متغیرهای محیطی#
SDKهای رسمی پایتون و Node.js این دو متغیر را خودشان میخوانند؛ کدی که برای OpenAI نوشتهاید بدون هیچ تغییری به گیسو وصل میشود:
# 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"])
// npm install openai
import OpenAI from "openai";
export const client = new OpenAI({
baseURL: "https://gisoo.pro/api/v1",
apiKey: process.env.GISOO_API_KEY,
timeout: 60_000,
maxRetries: 3,
});
// go get github.com/openai/openai-go
import (
"os"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
client := openai.NewClient(
option.WithBaseURL("https://gisoo.pro/api/v1/"), // keep the trailing slash
option.WithAPIKey(os.Getenv("GISOO_API_KEY")),
option.WithMaxRetries(3),
)
// dotnet add package OpenAI
using System.ClientModel;
using OpenAI;
using OpenAI.Chat;
var options = new OpenAIClientOptions { Endpoint = new Uri("https://gisoo.pro/api/v1") };
var credential = new ApiKeyCredential(Environment.GetEnvironmentVariable("GISOO_API_KEY")!);
ChatClient chat = new(model: "gpt-4o-mini", credential, options);
// also: new OpenAIClient(credential, options).GetEmbeddingClient("text-embedding-3-small")
<?php
// composer require openai-php/client
$client = OpenAI::factory()
->withBaseUri('https://gisoo.pro/api/v1')
->withApiKey(getenv('GISOO_API_KEY'))
->withHttpClient(new \GuzzleHttp\Client(['timeout' => 60]))
->make();
| زبان | بسته | تنظیم نشانی پایه |
|---|---|---|
| Python | openai | base_url= |
| Node.js / TypeScript | openai | baseURL: |
| Go | github.com/openai/openai-go | option.WithBaseURL() |
| C# / .NET | OpenAI (NuGet) | OpenAIClientOptions.Endpoint |
| Java | com.openai:openai-java | .baseUrl() |
| PHP | openai-php/client | withBaseUri() |
| Ruby | ruby-openai | uri_base: (بدون v1) |
Laravel، Java و Ruby#
# Laravel with openai-php/laravel: .env
OPENAI_API_KEY=sk-gisoo-v1-...
OPENAI_BASE_URL=https://gisoo.pro/api/v1
OPENAI_REQUEST_TIMEOUT=60
// 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());
# 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 برود؛ این مسیر برای مدلهای متنی همهٔ سازندههای کاتالوگ گیسو کار میکند.
// 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:
# 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) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.