نِت اَرز · مستندات API هوش مصنوعی
همهٔ مستندات
مدل‌ها و قیمت‌ها مرجع تعاملی دریافت کلید

SDKها و ابزارها

نمونه‌کد آماده برای اتصال به API هوش مصنوعی نِت اَرز با Python، Node.js، PHP، Go و cURL، و راه‌اندازی در n8n، LangChain، Vercel AI SDK و LlamaIndex.

base_url: https://netarz.ir/api/ai/v1 به‌روزرسانی: 1405/07/04

هر کتابخانه‌ای که با OpenAI کار می‌کند با نِت اَرز کار می‌کند؛ فقط آدرس پایه و کلید را بدهید. نمونه‌های زیر همگی همین دو مقدار را تنظیم می‌کنند.

نمونه‌کد آماده در گیت‌هاب

نسخهٔ کامل این نمونه‌ها، به‌علاوهٔ LangChain، n8n، ربات تلگرام و یک نمونهٔ جدا برای هر خانوادهٔ مدل (OpenAI، Claude، Gemini و DeepSeek)، در مخزن netarz/ai-api-examples است. بقیهٔ مخزن‌های کد باز نِت اَرز را در صفحهٔ کد باز معرفی کرده‌ایم.

SDKهای رسمی OpenAI

Python
# pip install openai
from openai import OpenAI

client = OpenAI(base_url="https://netarz.ir/api/ai/v1", api_key="sk-ntz-v1-...")

r = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "سلام، خودتان را معرفی کنید."}],
)
print(r.choices[0].message.content)
Node.js
// npm install openai
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://netarz.ir/api/ai/v1", apiKey: process.env.NETARZ_API_KEY });

const r = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "سلام، خودتان را معرفی کنید." }],
});
console.log(r.choices[0].message.content);
TypeScript
import OpenAI from "openai";
import type { ChatCompletionMessageParam } from "openai/resources/chat/completions";

const client = new OpenAI({ baseURL: "https://netarz.ir/api/ai/v1", apiKey: process.env.NETARZ_API_KEY! });

const messages: ChatCompletionMessageParam[] = [{ role: "user", content: "سلام، خودتان را معرفی کنید." }];
// Claude فقط از مسیر OpenRouter صدا زده می‌شود؛ اتصال مستقیم Anthropic باز نیست.
const r = await client.chat.completions.create({ model: "openrouter/anthropic/claude-haiku-4.5", messages, max_tokens: 200 });
console.log(r.choices[0].message.content);
PHP
// composer require openai-php/client   (یا با Http facade لاراول — پایین)
$client = OpenAI::factory()
    ->withApiKey(env('NETARZ_API_KEY'))
    ->withBaseUri('https://netarz.ir/api/ai/v1')
    ->make();

$result = $client->chat()->create([
    'model' => 'gpt-4o-mini',
    'messages' => [['role' => 'user', 'content' => 'سلام، خودتان را معرفی کنید.']],
]);
echo $result->choices[0]->message->content;

// Laravel Http facade — بدون پکیج اضافه
$response = Http::withToken(env('NETARZ_API_KEY'))->timeout(120)
    ->post('https://netarz.ir/api/ai/v1/chat/completions', [
        'model' => 'gpt-4o-mini',
        'messages' => [['role' => 'user', 'content' => 'سلام، خودتان را معرفی کنید.']],
    ]);
echo $response->json('choices.0.message.content');
Go
// go get github.com/openai/openai-go
package main

import (
	"context"
	"fmt"

	"github.com/openai/openai-go"
	"github.com/openai/openai-go/option"
)

func main() {
	client := openai.NewClient(
		option.WithBaseURL("https://netarz.ir/api/ai/v1"),
		option.WithAPIKey("sk-ntz-v1-..."),
	)

	resp, err := client.Chat.Completions.New(context.TODO(), openai.ChatCompletionNewParams{
		Model: "gpt-4o-mini",
		Messages: []openai.ChatCompletionMessageParamUnion{
			openai.UserMessage("سلام، خودتان را معرفی کنید."),
		},
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Choices[0].Message.Content)
}
cURL
curl https://netarz.ir/api/ai/v1/chat/completions \
  -H "Authorization: Bearer $NETARZ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "سلام، خودتان را معرفی کنید."}]}'
متغیرهای محیطی

SDKهای رسمی پایتون و Node مقادیر OPENAI_API_KEY و OPENAI_BASE_URL را خودشان می‌خوانند؛ می‌توانید بدون تغییر کد فقط این دو را تنظیم کنید.

فریم‌ورک‌ها و ابزارهای بدون کد

LangChain
# pip install langchain-openai
from langchain_openai import ChatOpenAI, OpenAIEmbeddings

llm = ChatOpenAI(
    base_url="https://netarz.ir/api/ai/v1",
    api_key="sk-ntz-v1-...",
    model="gpt-4o-mini",          # یا openrouter/anthropic/claude-sonnet-4.5، gemini-3.5-flash، …
    max_tokens=500,
)
print(llm.invoke("سلام، خودتان را معرفی کنید.").content)

embeddings = OpenAIEmbeddings(
    base_url="https://netarz.ir/api/ai/v1",
    api_key="sk-ntz-v1-...",
    model="text-embedding-3-small",
)
Vercel AI SDK
// npm install ai @ai-sdk/openai
import { createOpenAI } from "@ai-sdk/openai";
import { generateText, streamText } from "ai";

const netarz = createOpenAI({
  baseURL: "https://netarz.ir/api/ai/v1",
  apiKey: process.env.NETARZ_API_KEY,
});

const { text } = await generateText({
  model: netarz.chat("gpt-4o-mini"),   // .chat → Chat Completions (برای همهٔ ارائه‌دهندگان)
  prompt: "سلام، خودتان را معرفی کنید.",
});
console.log(text);

// استریم در Next.js Route Handler
export async function POST(req: Request) {
  const { messages } = await req.json();
  const result = streamText({ model: netarz.chat("openrouter/anthropic/claude-haiku-4.5"), messages });
  return result.toTextStreamResponse();
}
LlamaIndex
# pip install llama-index llama-index-llms-openai-like llama-index-embeddings-openai
from llama_index.llms.openai_like import OpenAILike
from llama_index.embeddings.openai import OpenAIEmbedding

llm = OpenAILike(
    api_base="https://netarz.ir/api/ai/v1",
    api_key="sk-ntz-v1-...",
    model="gpt-4o-mini",
    is_chat_model=True,
    is_function_calling_model=True,
)
print(llm.complete("سلام، خودتان را معرفی کنید."))

embed_model = OpenAIEmbedding(
    api_base="https://netarz.ir/api/ai/v1",
    api_key="sk-ntz-v1-...",
    model="text-embedding-3-small",
)
n8n
n8n → Settings → Credentials → New → "OpenAI"
  API Key  : sk-ntz-v1-...
  Base URL : https://netarz.ir/api/ai/v1

نود «OpenAI Chat Model» (برای AI Agent / Basic LLM Chain) یا نود «OpenAI»
  Credential : همان credential بالا
  Model      : gpt-4o-mini   ← هر شناسهٔ دیگری را هم دستی می‌نویسید؛ مثلاً openrouter/anthropic/claude-sonnet-4.5

نود «Embeddings OpenAI» هم با همین credential کار می‌کند (model: text-embedding-3-small).

سایر ابزارها

ابزارکجا تنظیم کنید
DifyModel Provider → OpenAI-API-compatible → API endpoint URL = https://netarz.ir/api/ai/v1
FlowiseChatOpenAI Custom → Base Path = https://netarz.ir/api/ai/v1
Open WebUISettings → Connections → OpenAI API → URL = https://netarz.ir/api/ai/v1
CursorSettings → Models → Override OpenAI Base URL = https://netarz.ir/api/ai/v1 (+ نام مدل دلخواه)
Continue (VS Code)provider: openai، apiBase: https://netarz.ir/api/ai/v1
LibreChat / AnythingLLM / ChatboxCustom OpenAI-compatible endpoint با همان base URL
Home Assistant، Zapier، Makeماژول OpenAI با گزینهٔ Base URL سفارشی (یا ماژول HTTP عمومی)

در همهٔ این ابزارها شناسهٔ هر مدلی از فهرست مدل‌ها را وارد می‌کنید. شناسهٔ Claude و بقیهٔ مدل‌های OpenRouter با openrouter/ شروع می‌شود؛ قاعدهٔ کامل در مدل‌ها و قیمت‌ها.

نکات عمومی

  • برای مدل‌های استدلالی یا پاسخ‌های بلند، timeout کلاینت را بالا ببرید (۱۲۰ ثانیه یا بیشتر) و ترجیحاً از استریم استفاده کنید.
  • SDKهای رسمی روی خطاهای ۴۲۹ و ۵xx تلاش مجدد خودکار دارند؛ برای ۴۰۲ (اعتبار) تلاش مجدد بی‌فایده است — هشدار شارژ بگذارید.
  • هدر X-Request-Id را در لاگ‌های خودتان ذخیره کنید تا پیگیری با پشتیبانی آسان باشد.