الانتقال إلى المحتوى الرئيسي
ابدأ مع Venice API في دقائق. ولِّد مفتاح API، ونفّذ طلبك الأول، وابدأ البناء.

البدء السريع

1

احصل على مفتاح API الخاص بك

اذهب إلى إعدادات Venice API وأنشئ مفتاح API جديدًا.للحصول على إرشادات تفصيلية، راجع دليل مفتاح API.
2

جهّز مفتاح API الخاص بك

أضف مفتاح API إلى بيئتك. يمكنك تصديره في الصدفة:
export VENICE_API_KEY='your-api-key-here'
أو إضافته إلى ملف .env في مشروعك:
VENICE_API_KEY=your-api-key-here
3

ثبّت SDK

Venice متوافق مع OpenAI، لذا يمكنك استخدام OpenAI SDK. إن فضّلت استخدام cURL أو طلبات HTTP خام، يمكنك تخطّي هذه الخطوة.
pip install openai
npm install openai
4

أرسل طلبك الأول

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

completion = client.chat.completions.create(
    model="zai-org-glm-5",
    messages=[
        {"role": "system", "content": "You are a helpful AI assistant"},
        {"role": "user", "content": "Why is privacy important?"}
    ]
)

print(completion.choices[0].message.content)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const completion = await client.chat.completions.create({
    model: 'zai-org-glm-5',
    messages: [
        { role: 'system', content: 'You are a helpful AI assistant' },
        { role: 'user', content: 'Why is privacy important?' }
    ]
});

console.log(completion.choices[0].message.content);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org-glm-5",
    "messages": [
      {"role": "system", "content": "You are a helpful AI assistant"},
      {"role": "user", "content": "Why is privacy important?"}
    ]
  }'
أدوار الرسائل:
  • system - تعليمات لكيفية تصرّف النموذج
  • user - تعليماتك أو أسئلتك
  • assistant - استجابات النموذج السابقة (لمحادثات متعددة الأدوار)
  • tool - نتائج استدعاء الدوال (عند استخدام الأدوات)
5

بدّل النماذج بتغيير معرّف النموذج

يتضمن كل طلب معرّف model. لاستخدام نموذج مختلف، غيّر قيمة model في طلبك. خيارات شائعة:
  • zai-org-glm-5 - النموذج الافتراضي لمعظم حالات الاستخدام
  • kimi-k2-6 - تفكير قوي للمهام الأكثر تعقيدًا
  • claude-opus-4-8 - نموذج عالي الذكاء للمهام المعقدة
  • venice-uncensored-1-2 - النموذج غير المُقيَّد من Venice

عرض كل النماذج

تصفّح القائمة الكاملة للنماذج مع التسعير والقدرات وحدود السياق
6

استخدم Venice Parameters

يمكنك تفعيل ميزات خاصة بـ Venice مثل البحث في الويب باستخدام venice_parameters:
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

completion = client.chat.completions.create(
    model="zai-org-glm-5",
    messages=[
        {"role": "user", "content": "What are the latest developments in AI?"}
    ],
    extra_body={
        "venice_parameters": {
            "enable_web_search": "auto",
            "include_venice_system_prompt": True
        }
    }
)

print(completion.choices[0].message.content)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const completion = await client.chat.completions.create({
    model: 'zai-org-glm-5',
    messages: [
        { role: 'user', content: 'What are the latest developments in AI?' }
    ],
    venice_parameters: {
        enable_web_search: 'auto',
        include_venice_system_prompt: true
    }
});

console.log(completion.choices[0].message.content);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org-glm-5",
    "messages": [
      {"role": "user", "content": "What are the latest developments in AI?"}
    ],
    "venice_parameters": {
      "enable_web_search": "auto",
      "include_venice_system_prompt": true
    }
  }'
راجع كل المعاملات المتاحة.
7

فعّل التدفق (اختياري)

بثّ الاستجابات في الوقت الفعلي باستخدام stream=True:
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

stream = client.chat.completions.create(
    model="zai-org-glm-5",
    messages=[{"role": "user", "content": "Write a short story about AI"}],
    stream=True
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const stream = await client.chat.completions.create({
    model: 'zai-org-glm-5',
    messages: [{ role: 'user', content: 'Write a short story about AI' }],
    stream: true
});

for await (const chunk of stream) {
    if (chunk.choices && chunk.choices[0]?.delta?.content) {
        process.stdout.write(chunk.choices[0].delta.content);
    }
}
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org-glm-5",
    "messages": [
      {"role": "user", "content": "Write a short story about AI"}
    ],
    "stream": true
  }'
8

خصّص سلوك الاستجابة (اختياري)

تحكّم بكيفية استجابة النموذج بمعاملات مثل temperature و max tokens والمزيد:
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

completion = client.chat.completions.create(
    model="zai-org-glm-5",
    messages=[
        {"role": "system", "content": "You are a creative storyteller"},
        {"role": "user", "content": "Tell me a creative story"}
    ],
    temperature=0.8,
    max_tokens=500,
    top_p=0.9,
    frequency_penalty=0.5,
    presence_penalty=0.5,
    extra_body={
        "venice_parameters": {
            "include_venice_system_prompt": False
        }
    }
)

print(completion.choices[0].message.content)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const completion = await client.chat.completions.create({
    model: 'zai-org-glm-5',
    messages: [
        { role: 'system', content: 'You are a creative storyteller' },
        { role: 'user', content: 'Tell me a creative story' }
    ],
    temperature: 0.8,
    max_tokens: 500,
    top_p: 0.9,
    frequency_penalty: 0.5,
    presence_penalty: 0.5,
    venice_parameters: {
        include_venice_system_prompt: false
    }
});

console.log(completion.choices[0].message.content);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org-glm-5",
    "messages": [
      {"role": "system", "content": "You are a creative storyteller"},
      {"role": "user", "content": "Tell me a creative story"}
    ],
    "temperature": 0.8,
    "max_tokens": 500,
    "top_p": 0.9,
    "frequency_penalty": 0.5,
    "presence_penalty": 0.5,
    "stream": false,
    "venice_parameters": {
      "include_venice_system_prompt": false
    }
  }'
راجع وثائق Chat Completions لمزيد من المعلومات حول جميع المعاملات المدعومة.

قدرات إضافية

توليد الصور

أنشئ صورًا من تعليمات نصية باستخدام نماذج الانتشار:
import os
import requests

url = "https://api.venice.ai/api/v1/image/generate"

payload = {
    "model": "venice-sd35",
    "prompt": "A cyberpunk city with neon lights and rain",
    "width": 1024,
    "height": 1024,
    "format": "webp"
}

headers = {
    "Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = 'https://api.venice.ai/api/v1/image/generate';

const options = {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        model: 'venice-sd35',
        prompt: 'A cyberpunk city with neon lights and rain',
        width: 1024,
        height: 1024,
        format: 'webp'
    })
};

try {
    const response = await fetch(url, options);
    const data = await response.json();
    console.log(data);
} catch (error) {
    console.error(error);
}
curl https://api.venice.ai/api/v1/image/generate \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "venice-sd35",
    "prompt": "A cyberpunk city with neon lights and rain",
    "width": 1024,
    "height": 1024
  }'
ملاحظة: تُرجع الاستجابة صورًا مُرمَّزة بـ base64 في مصفوفة images. فكّ ترميز سلسلة base64 لحفظ الصورة أو عرضها. نماذج صور شائعة:
  • qwen-image - أعلى جودة لتوليد الصور
  • venice-sd35 - الخيار الافتراضي، يعمل مع جميع الميزات
  • hidream - توليد سريع للاستخدام الإنتاجي

عرض جميع نماذج الصور

راجع كل نماذج الصور المتاحة مع التسعير والقدرات
لخيارات معاملات أكثر تقدمًا مثل cfg_scale و negative_prompt و style_preset و seed و variants وغيرها، راجع مرجع Images API.

تحرير الصور

عدّل الصور الموجودة بـ inpainting مدفوع بالذكاء الاصطناعي باستخدام نموذج Qwen-Image:
import os
import requests
import base64

url = "https://api.venice.ai/api/v1/image/edit"

with open("image.jpg", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode('utf-8')

payload = {
    "prompt": "Colorize",
    "image": image_base64
}

headers = {
    "Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

with open("edited_image.png", "wb") as f:
    f.write(response.content)
import fs from 'fs';

const imageBuffer = fs.readFileSync('image.jpg');
const imageBase64 = imageBuffer.toString('base64');

const options = {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        prompt: 'Colorize',
        image: imageBase64
    })
};

const response = await fetch('https://api.venice.ai/api/v1/image/edit', options);
const imageData = await response.arrayBuffer();
fs.writeFileSync('edited_image.png', Buffer.from(imageData));
curl --request POST \
  --url https://api.venice.ai/api/v1/image/edit \
  --header "Authorization: Bearer $VENICE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "prompt": "Colorize",
    "image": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAIGNIUk0A..."
  }'
ملاحظة: يستخدم محرّر الصور نموذج Qwen-Image وهو نقطة نهاية تجريبية. أرسل صورة الإدخال كسلسلة مُرمَّزة بـ base64، وتُرجع الواجهة الصورة المعدّلة كبيانات ثنائية. راجع Image Edit API لجميع المعاملات.

ترقية دقّة الصور

حسّن الصور إلى دقّات أعلى:
import os
import requests
import base64

url = "https://api.venice.ai/api/v1/image/upscale"

with open("image.jpg", "rb") as f:
    image_base64 = base64.b64encode(f.read()).decode('utf-8')

payload = {
    "image": image_base64,
    "scale": 2
}

headers = {
    "Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

with open("upscaled_image.png", "wb") as f:
    f.write(response.content)
import fs from 'fs';

const imageBuffer = fs.readFileSync('image.jpg');
const imageBase64 = imageBuffer.toString('base64');

const options = {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        image: imageBase64,
        scale: 2
    })
};

const response = await fetch('https://api.venice.ai/api/v1/image/upscale', options);
const imageData = await response.arrayBuffer();
fs.writeFileSync('upscaled_image.png', Buffer.from(imageData));
curl --request POST \
  --url https://api.venice.ai/api/v1/image/upscale \
  --header "Authorization: Bearer $VENICE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "image": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAIGNIUk0A...",
    "scale": 2
  }'
ملاحظة: أرسل صورة الإدخال كسلسلة مُرمَّزة بـ base64، وتُرجع الواجهة الصورة المُرقّاة كبيانات ثنائية. راجع Image Upscale API لجميع المعاملات.

من نص إلى كلام

حوّل النص إلى صوت مع أكثر من 50 صوتًا متعدد اللغات:
import os
import requests

response = requests.post(
    "https://api.venice.ai/api/v1/audio/speech",
    headers={
        "Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}",
        "Content-Type": "application/json"
    },
    json={
        "input": "Hello, welcome to Venice Voice.",
        "model": "tts-kokoro",
        "voice": "af_sky"
    }
)

with open("speech.mp3", "wb") as f:
    f.write(response.content)
import fs from 'fs';

const response = await fetch('https://api.venice.ai/api/v1/audio/speech', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        input: 'Hello, welcome to Venice Voice.',
        model: 'tts-kokoro',
        voice: 'af_sky'
    })
});

const audioBuffer = await response.arrayBuffer();
fs.writeFileSync('speech.mp3', Buffer.from(audioBuffer));
curl --request POST \
  --url https://api.venice.ai/api/v1/audio/speech \
  --header "Authorization: Bearer $VENICE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "input": "Hello, welcome to Venice Voice.",
    "model": "tts-kokoro",
    "voice": "af_sky"
  }' \
  --output speech.mp3
يدعم نموذج tts-kokoro أكثر من 50 صوتًا متعدد اللغات بما في ذلك af_sky وaf_nova وam_liam وbf_emma وzf_xiaobei وjm_kumo. راجع TTS API لجميع خيارات الأصوات.

من كلام إلى نص

فرّغ ملفات الصوت إلى نص:
import os
import requests

url = "https://api.venice.ai/api/v1/audio/transcriptions"

with open("audio.mp3", "rb") as f:
    response = requests.post(
        url,
        headers={"Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}"},
        files={"file": f},
        data={
            "model": "nvidia/parakeet-tdt-0.6b-v3",
            "response_format": "json"
        }
    )

print(response.json())
import fs from 'fs';
import FormData from 'form-data';

const form = new FormData();
form.append('file', fs.createReadStream('audio.mp3'));
form.append('model', 'nvidia/parakeet-tdt-0.6b-v3');
form.append('response_format', 'json');

const response = await fetch('https://api.venice.ai/api/v1/audio/transcriptions', {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        ...form.getHeaders()
    },
    body: form
});

const data = await response.json();
console.log(data);
curl --request POST \
  --url https://api.venice.ai/api/v1/audio/transcriptions \
  --header "Authorization: Bearer $VENICE_API_KEY" \
  --form file=@audio.mp3 \
  --form model=nvidia/parakeet-tdt-0.6b-v3 \
  --form response_format=json
الصيغ المدعومة: WAV، FLAC، MP3، M4A، AAC، MP4. فعّل timestamps=true للحصول على بيانات توقيت على مستوى الكلمة. راجع Transcriptions API لجميع الخيارات.

التضمينات (Embeddings)

ولّد تضمينات متجهية للبحث الدلالي و RAG والتوصيات:
import os
import requests

url = "https://api.venice.ai/api/v1/embeddings"

payload = {
    "model": "text-embedding-bge-m3",
    "input": "Privacy-first AI infrastructure for semantic search",
    "encoding_format": "float"
}

headers = {
    "Authorization": f"Bearer {os.getenv('VENICE_API_KEY')}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = 'https://api.venice.ai/api/v1/embeddings';

const options = {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${process.env.VENICE_API_KEY}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        model: 'text-embedding-bge-m3',
        input: 'Privacy-first AI infrastructure for semantic search',
        encoding_format: 'float'
    })
};

try {
    const response = await fetch(url, options);
    const data = await response.json();
    console.log(data);
} catch (error) {
    console.error(error);
}
curl --request POST \
  --url https://api.venice.ai/api/v1/embeddings \
  --header "Authorization: Bearer $VENICE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "text-embedding-bge-m3",
    "input": "Privacy-first AI infrastructure for semantic search",
    "encoding_format": "float"
  }'
راجع Embeddings API للمعالجة على دفعات والخيارات المتقدمة.

الرؤية (متعدد الوسائط)

حلّل الصور بجانب النص باستخدام نماذج قادرة على الرؤية مثل qwen3-vl-235b-a22b:
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

response = client.chat.completions.create(
    model="qwen3-vl-235b-a22b",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "What is in this image?"},
                {
                    "type": "image_url",
                    "image_url": {"url": "https://www.gstatic.com/webp/gallery/1.jpg"}
                }
            ]
        }
    ]
)

print(response.choices[0].message.content)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const response = await client.chat.completions.create({
    model: 'qwen3-vl-235b-a22b',
    messages: [
        {
            role: 'user',
            content: [
                { type: 'text', text: 'What is in this image?' },
                {
                    type: 'image_url',
                    image_url: { url: 'https://www.gstatic.com/webp/gallery/1.jpg' }
                }
            ]
        }
    ]
});

console.log(response.choices[0].message.content);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-vl-235b-a22b",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "What is in this image?"
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://www.gstatic.com/webp/gallery/1.jpg"
            }
          }
        ]
      }
    ]
  }'

استدعاء الدوال (Function Calling)

عرّف دوالًا يمكن للنماذج استدعاؤها للتفاعل مع أدوات وواجهات خارجية:
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("VENICE_API_KEY"),
    base_url="https://api.venice.ai/api/v1"
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Get the current weather in a location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="zai-org-glm-5",
    messages=[{"role": "user", "content": "What's the weather in San Francisco?"}],
    tools=tools
)

print(response.choices[0].message)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.VENICE_API_KEY,
    baseURL: 'https://api.venice.ai/api/v1'
});

const tools = [
    {
        type: 'function',
        function: {
            name: 'get_weather',
            description: 'Get the current weather in a location',
            parameters: {
                type: 'object',
                properties: {
                    location: {
                        type: 'string',
                        description: 'The city and state'
                    }
                },
                required: ['location']
            }
        }
    }
];

const response = await client.chat.completions.create({
    model: 'zai-org-glm-5',
    messages: [{ role: 'user', content: "What's the weather in San Francisco?" }],
    tools: tools
});

console.log(response.choices[0].message);
curl https://api.venice.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zai-org-glm-5",
    "messages": [
      {
        "role": "user",
        "content": "What'\''s the weather in San Francisco?"
      }
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_weather",
          "description": "Get the current weather in a location",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {
                "type": "string",
                "description": "The city and state"
              }
            },
            "required": ["location"]
          }
        }
      }
    ]
  }'

الخطوات التالية

بعد أن قمت بطلباتك الأولى، استكشف المزيد مما يقدّمه Venice API:

تصفّح النماذج

قارن جميع النماذج المتاحة مع قدراتها وتسعيرها وحدود السياق

مرجع API

استكشف وثائق API التفصيلية مع كل نقاط النهاية والمعاملات

الاستجابات المُهيكلة

تعلّم كيف تحصل على استجابات JSON بمخططات مضمونة

دليل وكلاء الذكاء الاصطناعي

ابنِ تطبيقات وكلاء، ووكلاء برمجة، وأدوات MCP، ومهارات، وتدفقات عمل تشفيرية

موارد إضافية

تحديد المعدّل

افهم حدود المعدّل وأفضل الممارسات للاستخدام الإنتاجي

رموز الأخطاء

مرجع للتعامل مع أخطاء API واستكشاف المشكلات

مجموعة Postman

استورد مجموعة Postman الكاملة لاختبار سهل

الخصوصية والأمان

تعرّف على بنية Venice التي تضع الخصوصية أولًا وتعامل البيانات

بحاجة إلى مساعدة؟