راهنمای جامع اتصال به API استاندارد و سازگار با الگوی OpenAI. مناسب برای افزونههای وردپرس، فروشگاههای اینترنتی و توسعهدهندگان.
chat/completions و models) هماهنگ است
تا استفاده از آن برای برنامهنویسان آشنا و ساده باشد.
https://hooshan-api.ir/v1 متصل میشوید.آدرس پایه API:
https://hooshan-api.ir/v1
تمام endpointها (بهجز وضعیت سلامت سرویس) نیازمند توکن هستند.
Authorization: Bearer YOUR_API_TOKEN
| روش | مسیر | توضیح |
|---|---|---|
| POST | /v1/chat/completions | بازنویسی و تکمیل متن (سازگار با OpenAI) |
| GET | /v1/models | لیست مدلهای فعال |
| POST | /v1/images/generations | ساخت تصویر |
| GET | /v1/account | موجودی اعتبار (ویژه افزونه) |
| GET | /v1/usage | تاریخچه مصرف |
| GET | /v1/health | وضعیت سرویس (بدون توکن) |
/v1/chat/completions
این endpoint با الگوی استاندارد OpenAI طراحی شده است.
بدنه درخواست (JSON):
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "system",
"content": "متن را به صورت حرفهای، یونیک و مناسب فروشگاه اینترنتی بازنویسی کن. از نام برندهای رقیب استفاده نکن."
},
{
"role": "user",
"content": "متن اصلی محصول در اینجا قرار میگیرد..."
}
],
"max_tokens": 1500,
"temperature": 0.7
}
پاسخ موفق (سازگار با OpenAI):
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1710000000,
"model": "gpt-4o-mini",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "متن بازنویسیشده..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 120,
"completion_tokens": 340,
"total_tokens": 460
},
"hooshan": {
"remaining_balance": 1249540
}
}
فیلد hooshan.remaining_balance اختصاصی این سرویس است و مانده اعتبار پس از کسر را نشان میدهد.
/v1/account
برای افزونه و پنل کاربری؛ موجودی توکن و معادل تقریبی ریالی را برمیگرداند.
curl -X GET https://hooshan-api.ir/v1/account \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Accept: application/json"
{
"object": "account",
"data": {
"mobile": "09xxxxxxxxx",
"balance_tokens": 1250000,
"balance_rial": 187500,
"total_charged": 2000000,
"total_consumed": 750000
}
}
/v1/models
لیست مدلهای فعال متن و تصویر بههمراه قیمت تقریبی.
/v1/images/generations
{
"model": "dall-e-3",
"prompt": "تصویر حرفهای محصول روی پسزمینه روشن",
"size": "1024x1024",
"n": 1
}
{
"created": 1710000000,
"data": [
{ "url": "https://..." }
],
"hooshan": {
"tokens_used": 10000,
"remaining_balance": 1239158
}
}
در تمام نمونهها بهجای YOUR_API_TOKEN توکن واقعی خود را قرار دهید. هرگز توکن را در مخزن کد عمومی قرار ندهید.
curl -X POST https://hooshan-api.ir/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "بازنویسی حرفهای و یونیک برای فروشگاه"},
{"role": "user", "content": "متن محصول..."}
],
"max_tokens": 1200
}'
$token = getenv('HOOSHAN_API_TOKEN'); // از متغیر محیطی بخوانید
$url = 'https://hooshan-api.ir/v1/chat/completions';
$payload = [
'model' => 'gpt-4o-mini',
'messages' => [
['role' => 'system', 'content' => 'بازنویسی حرفهای، یونیک و مناسب فروشگاه اینترنتی'],
['role' => 'user', 'content' => $productText],
],
'max_tokens' => 1500,
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $token,
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_TIMEOUT => 120,
CURLOPT_SSL_VERIFYPEER => true,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($response, true);
if ($httpCode === 200 && isset($data['choices'][0]['message']['content'])) {
$rewritten = $data['choices'][0]['message']['content'];
$remaining = $data['hooshan']['remaining_balance'] ?? null;
}
const res = await fetch('https://hooshan-api.ir/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json',
'Accept': 'application/json'
},
body: JSON.stringify({
model: 'gpt-4o-mini',
messages: [
{ role: 'system', content: 'بازنویسی یونیک و سئوشده' },
{ role: 'user', content: productText }
],
max_tokens: 1500
})
});
const data = await res.json();
if (res.ok) {
console.log(data.choices[0].message.content);
} else {
console.error(data.error?.message || data.message);
}
import os
import requests
token = os.environ.get("HOOSHAN_API_TOKEN")
url = "https://hooshan-api.ir/v1/chat/completions"
payload = {
"model": "gpt-4o-mini",
"messages": [
{"role": "system", "content": "بازنویسی حرفهای برای فروشگاه"},
{"role": "user", "content": product_text},
],
"max_tokens": 1500,
}
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
}
r = requests.post(url, json=payload, headers=headers, timeout=120)
data = r.json()
if r.status_code == 200:
print(data["choices"][0]["message"]["content"])
else:
print(data.get("error", {}).get("message", data))
پاسخ خطا در قالب استاندارد مشابه OpenAI برگردانده میشود:
{
"error": {
"message": "توضیح خطا به زبان فارسی",
"type": "insufficient_quota",
"code": 402
}
}
| کد | نوع | معنی |
|---|---|---|
| 401 | authentication_error | توکن ارسال نشده یا نامعتبر |
| 402 | insufficient_quota | اعتبار کافی نیست |
| 403 | permission_error | حساب یا نشانی مسدود است |
| 422 | invalid_request_error | ورودی نامعتبر |
| 429 | rate_limit_exceeded | تعداد درخواست بیش از حد |
| 502 | server_error | خطا از سرویس بالادستی |
| 500 | server_error | خطای داخلی |
GET /v1/account موجودی را چک کنید تا پیام خطای مناسب به مدیر فروشگاه نمایش داده شود.hooshan.remaining_balance برای بهروزرسانی نمایش اعتبار در ادمین وردپرس استفاده کنید.نسخه مستندات: ۱.۵.۰ — هوشان — https://hooshan-api.ir