اختر النموذج المناسب
وجّه الطلبات البسيطة إلى Flash، واحفظ نماذج Max للمهام التي تكون فيها الإجابة الخاطئة أغلى من الرموز.
بوابتنا بديل مباشر لواجهة OpenAI. احتفظ بمكتبتك وقوالب مطالباتك واختباراتك — غيّر سطرين وستعمل.
ثلاث خطوات: أنشئ مفتاحًا في وحدتك، ضعه في متغير بيئة، ثم استدعِ النموذج.
في وحدتك افتح مفاتيح API ← مفتاح جديد. أعطه اسمًا وحد استخدام وقائمة IP بيضاء وسقف استهلاك.
لا تضع المفتاح مباشرة في الشيفرة. استخدم متغير بيئة.
# Any OpenAI-compatible SDK works. Two values change.
export IAALGERIE_API_KEY="iaa_live_xxxxxxxxxxxxxxxxxxxx"
export OPENAI_BASE_URL="https://api.iaalgerie.com/v1"
# default model
export DEFAULT_MODEL="qwen3.7-plus"
وجّه مكتبة OpenAI إلى عنوان خدمتنا واختر معرّف نموذج من الكتالوج.
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.iaalgerie.com/v1",
api_key=os.environ["IAALGERIE_API_KEY"],
)
response = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "Reponds toujours en francais."},
{"role": "user", "content": "Resume ce contrat en 5 points."},
],
temperature=0.3,
)
print(response.choices[0].message.content)
print("tokens:", response.usage.total_tokens)
// npm install openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.iaalgerie.com/v1",
apiKey: process.env.IAALGERIE_API_KEY,
});
const response = await client.chat.completions.create({
model: "qwen3.7-plus",
messages: [
{ role: "system", content: "Reponds toujours en francais." },
{ role: "user", content: "Resume ce contrat en 5 points." },
],
});
console.log(response.choices[0].message.content);
curl https://api.iaalgerie.com/v1/chat/completions \
-H "Authorization: Bearer $IAALGERIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-plus",
"messages": [
{"role": "system", "content": "Reponds toujours en francais."},
{"role": "user", "content": "Resume ce contrat en 5 points."}
],
"temperature": 0.3
}'
عنوان واحد لكل النماذج. تختار بوابتنا المنطقة المناسبة حسب النموذج المطلوب.
OpenAI-compatible https://api.iaalgerie.com/v1
Anthropic format https://api.iaalgerie.com/anthropic
Native DashScope https://api.iaalgerie.com/api/v1
One URL for every model. Our gateway selects the upstream region
for you (Singapore, US Virginia or Beijing) — nothing to configure
on your side.
لا شيء تضبطه من جهة المنطقة: هذا عملنا. إن احتجت منطقة محددة لأسباب تنظيمية فأخبرنا.
أرسل مفتاحك في ترويسة Authorization تمامًا مثل OpenAI.
Authorization: Bearer iaa_live_xxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
جدّد مفاتيحك من وحدتك في أي وقت. يتوقف المفتاح القديم فورًا.
تعمل بنية المحادثة القياسية من OpenAI كما هي.
curl https://api.iaalgerie.com/v1/chat/completions \
-H "Authorization: Bearer $IAALGERIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-plus",
"messages": [
{"role": "system", "content": "Reponds toujours en francais."},
{"role": "user", "content": "Resume ce contrat en 5 points."}
],
"temperature": 0.3
}'
استخدم qwen3.8-flash للمسودات والتصنيف، وqwen3.7-plus لإجابات المستخدمين، وqwen3.8-max فقط عند الحاجة الفعلية.
اضبط stream على true واستهلك أحداث الخادم: يرى المستخدم أول كلمة خلال أجزاء من الثانية.
stream = client.chat.completions.create(
model="qwen3.7-plus",
messages=[{"role": "user", "content": "Ecris un devis pour 3 sites web."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)
عرّف أدواتك بالطريقة المعتادة ودع النموذج يقرر متى يستدعيها.
tools = [{
"type": "function",
"function": {
"name": "get_order_status",
"description": "Retourne le statut d'une commande algerienne.",
"parameters": {
"type": "object",
"properties": {
"order_id": {"type": "string"},
"wilaya": {"type": "string"}
},
"required": ["order_id"]
}
}
}]
messages = [{"role": "user", "content": "Ou est ma commande CMD-4821 ?"}]
while True:
reply = client.chat.completions.create(
model="qwen3.7-plus", messages=messages, tools=tools
).choices[0].message
if not reply.tool_calls:
print(reply.content)
break
messages.append(reply)
for call in reply.tool_calls:
args = json.loads(call.function.arguments)
messages.append({
"role": "tool",
"tool_call_id": call.id,
"content": json.dumps({"status": "en livraison", "wilaya": "Bejaia"}),
})
اطلب مخرجات JSON وتحقق منها وفق مخطط. مثالي لاستخراج الحقول من الفواتير والنماذج.
from pydantic import BaseModel
class Invoice(BaseModel):
supplier: str
nif: str | None
total_da: float
currency: str
due_date: str | None
raw = "FACTURE SARL Exemple, NIF 0998...1620, total 145 000,00 DA, echeance 30/11/2026"
parsed = client.beta.chat.completions.parse(
model="qwen3.8-flash",
messages=[
{"role": "system", "content": "Extract the invoice fields."},
{"role": "user", "content": raw},
],
response_format=Invoice,
)
invoice = parsed.choices[0].message.parsed
print(invoice.total_da, invoice.currency) # 145000.0 DA
نماذج الوسائط غير متزامنة: تُرسل مهمة ثم تستعلم عن نتيجتها. تُحتسب التكلفة بعد نجاح المهمة.
# Images — synchronous, billed per image
curl -X POST https://api.iaalgerie.com/v1/images/generations \
-H "Authorization: Bearer $IAALGERIE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "qwen-image-3.0-pro",
"prompt": "Photo produit d une bouteille d huile d olive",
"size": "1024x1024", "n": 2}'
# Video — asynchronous: submit, then poll the task
curl -X POST https://api.iaalgerie.com/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer $IAALGERIE_API_KEY" \
-H "X-DashScope-Async: enable" \
-H "Content-Type: application/json" \
-d '{"model": "wan3.0-video",
"input": {"prompt": "Tramway d Alger au coucher du soleil"},
"parameters": {"duration": 5, "size": "1280*720"}}'
# -> {"output": {"task_id": "..."}} then:
curl https://api.iaalgerie.com/v1/tasks/<task_id> \
-H "Authorization: Bearer $IAALGERIE_API_KEY"
# Speech to text
curl -X POST https://api.iaalgerie.com/v1/audio/transcriptions \
-H "Authorization: Bearer $IAALGERIE_API_KEY" \
-F model="qwen-audio-3.1-asr-flash-filetrans" \
-F file="@reunion.m4a"
أسعار الوسائط لكل صورة أو ثانية فيديو أو دقيقة صوت — انظر صفحة الأسعار.
ابنِ خط بحث لمستندات عربية وفرنسية وإنجليزية.
# Embeddings: turn your knowledge base into vectors
emb = client.embeddings.create(
model="text-embedding-v4",
input=["Politique de retour sous 7 jours", "Frais de livraison Yalidine"],
)
vectors = [d.embedding for d in emb.data]
# Rerank: best candidates first, before the chat call
import dashscope # pip install dashscope
ranked = dashscope.TextReRank.call(
model="qwen3-rerank",
query="Quel est le delai de retour ?",
documents=["Politique de retour sous 7 jours",
"Nos horaires d ouverture",
"Frais de livraison Yalidine"],
top_n=2,
return_documents=True,
api_key=os.environ["IAALGERIE_API_KEY"],
)
print(ranked.output.results[0].document.text)
| الحالة | المعنى | ما العمل |
|---|---|---|
| 400 | طلب غير صحيح | تحقق من معرّف النموذج في الكتالوج. |
| 401 | مفتاح غير صالح أو ملغى | أعد إنشاء المفتاح في وحدتك. |
| 402 | رصيد غير كافٍ | اشحن الرصيد أو خفّض سقف المفتاح. |
| 429 | تم بلوغ حد الاستخدام | أعد المحاولة بتراجع أُسّي. |
| 500 | خطأ في الجهة المزوّدة | أعد المحاولة مرة، ثم تواصل مع الدعم مع معرّف الطلب. |
| 503 | النموذج غير متاح مؤقتًا | انتقل إلى نموذج آخر من العائلة نفسها. |
كل استجابة تحمل حصتك المتبقية ومعرّف الطلب. سجّل معرّف الطلب — لا يمكن للدعم التحقيق بدونه.
import time
from openai import APIStatusError
def ask(messages, model="qwen3.7-plus"):
for attempt in range(5):
try:
r = client.chat.completions.create(model=model, messages=messages)
print("request_id:", r._request_id, "tokens:", r.usage.total_tokens)
return r
except APIStatusError as e:
if e.status_code == 429: # rate limit
time.sleep(2 ** attempt)
continue
if e.status_code == 402: # insufficient balance
raise SystemExit("Top up your IA Algerie balance.")
if e.status_code >= 500: # upstream hiccup
time.sleep(1)
continue
raise
raise RuntimeError("rate limited after 5 attempts")
خمس عادات تخفّض فاتورة الذكاء الاصطناعي إلى النصف أو أكثر.
وجّه الطلبات البسيطة إلى Flash، واحفظ نماذج Max للمهام التي تكون فيها الإجابة الخاطئة أغلى من الرموز.
سقف شهري لكل مفتاح يحوّل أي حلقة مفرطة إلى خطأ بسيط.
عادةً تكلفة رموز الإخراج أربعة أضعاف الإدخال.
تخزين السياق يحسب المقدمات المتكررة بسعر مخفّض.
مهام التصنيف والتلخيص والتضمين الليلية لا تحتاج استجابة فورية.
نعم. اضبط base_url على نقطة وصولنا وapi_key على مفتاح IA Algérie. لا شيء آخر يتغير.
نعم، عبر مسار منفصل. مفيد للأدوات التي تتوقع صيغة Anthropic.
ثبّت معرّف إصدار محددًا بدل اسم متغيّر، حتى لا تغيّر أي تحديثات مخرجاتك دون علمك.
يحصل كل حساب جديد على رصيد تجريبي صغير للتحقق من التكامل قبل الدفع.
أرسل معرّف الطلب ومعرّف النموذج إلى الدعم. يمكننا إعادة تنفيذ الطلب وتصعيده.
تحصل الحسابات المبكرة على رصيد تجريبي وجلسة تعريفية وخط تيليجرام مباشر.
مرحلة الإطلاق — مكان متبقٍ من 100 للنسخة التجريبية