diff --git a/ar/guides/features/embeddings.mdx b/ar/guides/features/embeddings.mdx new file mode 100644 index 00000000..1b3a4673 --- /dev/null +++ b/ar/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "التضمينات" +description: "أنشئ متجهات تضمين مع Venice للبحث الدلالي واسترجاع RAG والتجميع والتوصيات باستخدام نقطة النهاية /embeddings." +'og:title': "التضمينات | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية إنشاء متجهات تضمين باستخدام واجهة برمجة تطبيقات Venice." +--- + +تحوّل التضمينات النصَّ إلى متجهات تلتقط المعنى الدلالي. استخدمها للبحث، والتوليد المعزّز بالاسترجاع (RAG)، والتجميع، والتوصيات، وإزالة التكرار، وحساب التشابه. + +نقطة نهاية التضمينات في Venice متوافقة مع OpenAI. أرسل سلسلة نصية واحدة أو مصفوفة من السلاسل إلى `/embeddings`، ثم خزّن المتجهات المُعادة في قاعدة بياناتك أو فهرس المتجهات. + +## الاستخدام الأساسي + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## المدخلات المجمّعة + +مرّر مصفوفة من السلاسل لتضمين نصوص متعددة في طلب واحد: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +تحافظ الاستجابة على ترتيب المدخلات. خزّن كل متجه مع معرّف النص المصدر، والبيانات الوصفية، ومعرّف نموذج التضمين. + +## سير العمل الشائع + +1. قسّم المستندات المصدر إلى أجزاء. +2. أنشئ تضمينات لكل جزء. +3. خزّن المتجهات والبيانات الوصفية في قاعدة بيانات متجهات. +4. ضمّن استعلام المستخدم. +5. استرجع الأجزاء القريبة. +6. أرسل السياق المسترجع إلى نموذج محادثة. + +للاطلاع على تنفيذ كامل، راجع [بناء روبوت RAG خاص](/guides/projects/private-rag-bot). + +## اختيار النموذج + +استخدم صفحة [نماذج التضمين](/models/embeddings) لمقارنة نماذج التضمين الحالية والأبعاد والأسعار. + + +استخدم نفس نموذج التضمين للفهرسة والاستعلام. مزج النماذج قد يجعل درجات التشابه غير موثوقة لأن فضاءات المتجهات غير قابلة للتبادل. + + +## موارد ذات صلة + +- [واجهة برمجة التطبيقات للتضمينات](/api-reference/endpoint/embeddings/generate) +- [نماذج التضمين](/models/embeddings) +- [دليل روبوت RAG الخاص](/guides/projects/private-rag-bot) diff --git a/ar/guides/features/function-calling.mdx b/ar/guides/features/function-calling.mdx new file mode 100644 index 00000000..b0b42f5b --- /dev/null +++ b/ar/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "استدعاء الدوال" +description: "دع نماذج المحادثة في Venice تستدعي أدوات تطبيقك باستخدام استدعاء الدوال المتوافق مع OpenAI وواجهة برمجة تطبيقات chat completions." +'og:title': "استدعاء الدوال | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية استخدام استدعاء الدوال مع نماذج المحادثة في Venice." +--- + +يتيح استدعاء الدوال للنموذج اختيار استدعاءات أدوات مُهيكلة يمكن لتطبيقك تنفيذها. لا يشغّل النموذج الدالة بنفسه، بل يُعيد اسم الدالة ومعامِلاتها، ثم يشغّل الكود لديك الدالة، ثم ترسل النتيجة مرة أخرى إلى النموذج. + +استخدم استدعاء الدوال عندما يحتاج النموذج إلى بيانات حيّة، أو إجراءات في التطبيق، أو استعلامات قاعدة بيانات، أو حسابات حتمية. + +## تعريف الأداة الأساسي + +عرّف الأدوات باستخدام مصفوفة `tools` المتوافقة مع OpenAI: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## تنفيذ الأداة + +عندما يختار النموذج أداة، افحص `message.tool_calls`، وحلّل المعامِلات، ونفّذ دالة تطبيقك، ثم أرسل النتيجة مرة أخرى بوصفها رسالة `tool`. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## اختيار النموذج + +يعتمد دعم استدعاء الدوال على النموذج. استخدم صفحة [النماذج النصية](/models/text) أو [واجهة برمجة تطبيقات النماذج](/api-reference/endpoint/models/list) للعثور على النماذج التي تحمل `supportsFunctionCalling`. + + +تعامَل مع معامِلات الأدوات على أنها مدخلات غير موثوقة. تحقّق من صحّة المعامِلات قبل استخدامها في استعلامات قاعدة البيانات، أو أوامر الصدَفة، أو المدفوعات، أو أي عمليات ذات آثار جانبية. + + +## نصائح للتصميم + +- اجعل أسماء الأدوات وأوصافها قصيرة وحرفية. +- استخدم JSON Schema لتسهيل إنتاج معامِلات صحيحة من قِبل النموذج. +- فضّل الأدوات الضيّقة ذات المدخلات الواضحة على أداة واحدة عريضة ذات سلوكيات اختيارية كثيرة. +- أعِد نتائج أدوات موجزة بحيث يمتلك الجواب النهائي سياقًا كافيًا دون هدر الرموز. + +## موارد ذات صلة + +- [واجهة برمجة تطبيقات Chat Completions](/api-reference/endpoint/chat/completions) +- [النماذج النصية](/models/text) +- [دليل الاستجابات المُهيكلة](/guides/features/structured-responses) +- [تكامل LangChain](/guides/integrations/langchain#function-calling-with-agents) diff --git a/ar/guides/features/vision.mdx b/ar/guides/features/vision.mdx new file mode 100644 index 00000000..1029c61c --- /dev/null +++ b/ar/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "الرؤية" +description: "حلّل الصور باستخدام نماذج المحادثة القادرة على الرؤية في Venice عبر محتوى الرسائل متعدد الوسائط في واجهة برمجة تطبيقات chat completions المتوافقة مع OpenAI." +'og:title': "الرؤية | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية إرسال الصور إلى نماذج الرؤية في Venice." +--- + +يمكن لنماذج الرؤية تحليل الصور جنبًا إلى جنب مع المطالبات النصية. استخدمها لفهم الصور، والاستخراج، والتصنيف، والإجابة عن الأسئلة البصرية، والاستدلال متعدد الوسائط. + +يدعم Venice رسائل المحادثة متعددة الوسائط المتوافقة مع OpenAI. ضع كتل النص والصور في نفس رسالة المستخدم، ثم أرسل الطلب إلى نموذج قادر على الرؤية. + +## الاستخدام الأساسي + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## استخدام صور Base64 + +يمكنك أيضًا تمرير رابط بيانات بترميز base64 عندما تكون الصورة محلية أو خاصة: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## اختيار نموذج رؤية + +استخدم صفحة [النماذج النصية](/models/text) أو [واجهة برمجة تطبيقات النماذج](/api-reference/endpoint/models/list) للعثور على النماذج التي تدعم الرؤية. يُدرَج دعم الرؤية ضمن قدرات النموذج. + + +للمدخلات ذات الطابع المستندي، استخدم [مدخلات الملفات](/guides/features/file-inputs) عندما تريد من Venice استخراج نص من ملف. استخدم الرؤية عندما يكون التخطيط البصري أو محتوى الصورة نفسه هو المهم. + + +## نصائح للمطالبات + +- أخبر النموذج بما يجب أن يركّز عليه: الكائنات، أو النص، أو التخطيط، أو السلامة، أو العيوب، أو الاختلافات. +- اطلب مخرجات مُهيكلة عندما يحتاج تطبيقك إلى حقول يمكنك تحليلها. +- تأكّد من أن روابط الصور قابلة للوصول من واجهة برمجة التطبيقات، أو استخدم روابط بيانات base64 للصور الخاصة. +- استخدم نموذجًا بسياق كافٍ إذا كنت تدمج الصور مع تعليمات طويلة. + +## موارد ذات صلة + +- [واجهة برمجة تطبيقات Chat Completions](/api-reference/endpoint/chat/completions) +- [النماذج النصية](/models/text) +- [دليل مدخلات الملفات](/guides/features/file-inputs) +- [دليل الاستجابات المُهيكلة](/guides/features/structured-responses) diff --git a/ar/guides/media/image-upscaling.mdx b/ar/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..99e8b446 --- /dev/null +++ b/ar/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "ترقية دقّة الصور" +description: "حسّن الصور وارفع دقّتها باستخدام واجهة برمجة التطبيقات المتزامنة لترقية الصور في Venice، مع مدخلات base64 ومخرجات صورية ثنائية." +'og:title': "ترقية دقّة الصور | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية تحسين الصور ورفع دقّتها باستخدام واجهة برمجة تطبيقات Venice." +--- + +تُحسّن ترقية الصور دقّةَ الصورة الحالية وجودتها البصرية. أرسل صورة مُشفّرة بـ base64 إلى `/image/upscale`، واختر عامل التكبير، ويُعيد Venice الصورة المُحسّنة كبيانات ثنائية. + +استخدم ترقية الصور عندما تمتلك بالفعل صورة وتريد مخرجًا بدقّة أعلى. استخدم [توليد الصور](/guides/media/image-generation) عندما تحتاج إلى إنشاء صورة من مطالبة، و[تحرير الصور](/guides/media/image-editing) عندما تحتاج إلى تغيير محتوى الصورة. + +## الاستخدام الأساسي + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## المعامِلات + +| المعامِل | النوع | مطلوب | الوصف | +|-----------|------|----------|-------------| +| `image` | string | نعم | الصورة المصدر مُشفّرة بـ base64. | +| `scale` | number | لا | عامل الترقية. استخدم القيم المدعومة المذكورة في مرجع واجهة برمجة التطبيقات وكتالوج النماذج. | + + +الاستجابة هي بيانات صورة ثنائية، وليست JSON. اكتب جسم الاستجابة مباشرة إلى ملف أو دفّقه إلى التخزين. + + +## نصائح المدخلات + +- ابدأ بأنقى صورة مصدر تمتلكها. تُحسّن الترقية التفاصيل، لكنها لا تستطيع استعادة معلومات غير موجودة أصلًا بشكل كامل. +- استخدم عوامل تكبير معتدلة لسير العمل الإنتاجي. المخرجات الكبيرة جدًا قد تزيد زمن الاستجابة وحجم الملف. +- احتفظ بالصورة الأصلية إذا كنت بحاجة إلى مقارنة الجودة أو إعادة المحاولة بإعدادات مختلفة. + +## موارد ذات صلة + +- [واجهة برمجة تطبيقات ترقية الصور](/api-reference/endpoint/image/upscale) +- [نماذج الصور](/models/image) +- [دليل تحرير الصور](/guides/media/image-editing) diff --git a/ar/guides/media/speech-to-text.mdx b/ar/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..1bdbad2d --- /dev/null +++ b/ar/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "تحويل الكلام إلى نص" +description: "فرِّغ ملفات الصوت باستخدام نماذج تحويل الكلام إلى نص في Venice عبر نقطة النهاية المتوافقة مع OpenAI /audio/transcriptions." +'og:title': "تحويل الكلام إلى نص | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية تفريغ ملفات الصوت باستخدام واجهة برمجة تطبيقات Venice." +--- + +يقوم تحويل الكلام إلى نص بتفريغ الصوت المنطوق إلى نص مكتوب. أرسل ملف صوت إلى `/audio/transcriptions`، واختر نموذج تفريغ، وحدّد صيغة الاستجابة التي تريدها. + +## الاستخدام الأساسي + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## المدخلات المدعومة + +تشمل صيغ الصوت الشائعة `mp3` و`mp4` و`mpeg` و`mpga` و`m4a` و`wav` و`webm` و`flac` و`ogg`. راجع صفحة [نماذج تحويل الكلام إلى نص](/models/speech-to-text) لمعرفة دعم النماذج الحالي والأسعار. + +## صيغ الاستجابة + +| الصيغة | استخدمها عندما | +|--------|----------| +| `json` | تريد استجابة بسيطة على شكل `{ "text": "..." }`. | +| `text` | تريد نصًا خالصًا دون الحاجة إلى تحليل JSON. | +| `srt` | تحتاج إلى ترجمات بصيغة SubRip. | +| `vtt` | تحتاج إلى ترجمات بصيغة WebVTT. | +| `verbose_json` | تحتاج إلى بيانات وصفية أغنى عن الطوابع الزمنية والمقاطع. | + + +استخدم صيغ الترجمة عندما يُقرن التفريغ بتشغيل الوسائط. استخدم `json` أو `text` عندما يغذّي التفريغ التلخيصَ أو البحث أو مطالبات المحادثة اللاحقة. + + +## نصائح الإنتاج + +- حافظ على وضوح الصوت وتجنّب تداخل المتحدثين عند الإمكان. +- قسّم التسجيلات الطويلة جدًا إلى أجزاء أصغر إذا كان سير عملك يتطلب زمن استجابة أقل أو محاولات إعادة أسهل. +- خزّن مسار الصوت الأصلي، ومعرّف النموذج، وصيغة الاستجابة مع كل تفريغ لأغراض التدقيق. + +## موارد ذات صلة + +- [واجهة برمجة تطبيقات تفريغ الصوت](/api-reference/endpoint/audio/transcriptions) +- [نماذج تحويل الكلام إلى نص](/models/speech-to-text) +- [دليل تحويل النص إلى كلام](/guides/media/text-to-speech) diff --git a/ar/guides/media/text-to-speech.mdx b/ar/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..e2ec5d90 --- /dev/null +++ b/ar/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "تحويل النص إلى كلام" +description: "أنشئ صوتًا منطوقًا من النص باستخدام نماذج تحويل النص إلى كلام في Venice، والأصوات الخاصة بكل نموذج، ونقطة النهاية /audio/speech." +'og:title': "تحويل النص إلى كلام | وثائق واجهة برمجة تطبيقات Venice" +'og:description': "تعلّم كيفية تحويل النص إلى كلام باستخدام واجهة برمجة تطبيقات Venice." +--- + +يحوّل تحويل النص إلى كلام النصَّ المكتوب إلى صوت منطوق. اختر نموذج TTS، وحدّد صوتًا يدعمه هذا النموذج، وأرسل النص إلى `/audio/speech`، ثم احفظ استجابة الصوت الثنائية. + +استخدم هذا الدليل لتوليد الأصوات القياسية. إذا كنت تريد إنشاء كلام من صوت مرجعي مخصص، فراجع [استنساخ الصوت](/guides/media/voice-cloning). + +## الاستخدام الأساسي + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## اختيار النموذج والصوت + +الأصوات خاصة بكل نموذج. يجب أن تكون قيمة `voice` صالحة لـ `model` الذي تختاره. + +استخدم صفحة [نماذج تحويل النص إلى كلام](/models/text-to-speech) لتصفّح النماذج والأصوات المتاحة. يعرض منتقي الأصوات معرّفات الأصوات الدقيقة التي تُمرّرها في طلبك. + + +معرّفات الأصوات حسّاسة لحالة الأحرف. إذا بدّلت نموذج TTS، فحدِّث قيمة `voice` في الوقت نفسه. + + +## بنية الطلب + +| المعامِل | النوع | مطلوب | الوصف | +|-----------|------|----------|-------------| +| `model` | string | نعم | معرّف نموذج تحويل النص إلى كلام. | +| `voice` | string | نعم | معرّف الصوت المدعوم من النموذج المُختار. | +| `input` | string | نعم | النص المراد تحويله إلى كلام. | + +## نصائح الإنتاج + +- خزّن الصوت المُولَّد مؤقتًا عند إعادة استخدام النص المصدر والصوت. +- طبِّع النص وراجعه قبل التوليد. تؤثر علامات الترقيم في الإيقاع والتنغيم. +- خزّن المخرجات بامتداد الملف الصحيح المطابق لصيغة استجابة النموذج. + +## موارد ذات صلة + +- [واجهة برمجة تطبيقات الكلام الصوتي](/api-reference/endpoint/audio/speech) +- [نماذج تحويل النص إلى كلام](/models/text-to-speech) +- [دليل استنساخ الصوت](/guides/media/voice-cloning) diff --git a/ar/guides/overview.mdx b/ar/guides/overview.mdx index 34944450..f39a9718 100644 --- a/ar/guides/overview.mdx +++ b/ar/guides/overview.mdx @@ -1,53 +1,62 @@ --- title: الأدلة -description: "أدلة عملية لـ Venice API تغطي مفاتيح API، والانتقال من OpenAI، والاستجابات المهيكلة، وإدخالات الملفات، وprompt caching، والوسائط، وتكاملات الوكلاء." +description: أدلة عملية لواجهة برمجة تطبيقات Venice تشمل مفاتيح API، والانتقال من OpenAI، وقدرات المحادثة، والتضمينات، والوسائط، وتكاملات الوكلاء. --- -استخدم هذه الأدلة لتوليد مفاتيح API، ونقل تطبيقات OpenAI الحالية، وتفعيل الميزات الخاصة بـ Venice، وتوصيل Venice بأطر عمل الوكلاء، وأدوات البرمجة، وتدفقات الوسائط. +استخدم هذه الأدلة لإنشاء مفاتيح API، ونقل تطبيقات OpenAI الحالية، وتمكين القدرات الخاصة بـ Venice، وربط Venice بأطر عمل الوكلاء وأدوات البرمجة وسير عمل الوسائط. - - أنشئ وأدِر مفاتيح API من لوحة تحكم Venice. + + أنشئ مفاتيح API وأدِرها من لوحة تحكم Venice. - قم بتحويل التطبيقات المتوافقة مع OpenAI إلى Venice بتغيير base URL. + انقل تطبيقاتك المتوافقة مع OpenAI إلى Venice عن طريق تغيير عنوان URL الأساسي. - - اطلب استجابات تطابق مخطط JSON. + + اطلب استجابات تتطابق مع مخطط JSON. + + + دع النماذج تستدعي أدوات تطبيقك بمعامِلات مُهيكلة. + + + حلّل الصور باستخدام نماذج المحادثة متعددة الوسائط. + + + أنشئ متجهات للبحث الدلالي، وRAG، والتوصيات. - أرسل المستندات وملفات المصدر إلى نماذج المحادثة. + أرسل المستندات والملفات المصدر إلى نماذج المحادثة. - - قلِّل زمن الاستجابة والتكلفة لمحتوى الـ prompt المتكرر. + + قلّل زمن الاستجابة والتكلفة لمحتوى المطالبات المتكرر. - ابنِ وكيل بحث بلغة Python يجمع المصادر ويكتب تقارير مُستشهَدًا بها. + ابنِ وكيل بحث بلغة Python يجمع المصادر ويكتب تقارير موثّقة. -## استكشف حسب الموضوع +## استكشِف حسب الموضوع - مفاتيح API، والانتقال، وإنشاء المفاتيح المستقلة، و Postman. + مفاتيح API، والانتقال، وإنشاء المفاتيح آليًا، وPostman. - المخرجات المهيكلة، ونماذج الاستدلال، ومدخلات الملفات، وتخزين الـ prompt مؤقتًا، والنماذج المعزّزة بالخصوصية. + المخرجات المُهيكلة، ونماذج الاستدلال، واستدعاء الدوال، والرؤية، والتضمينات، ومدخلات الملفات، وتخزين المطالبات المؤقت، والنماذج المعزّزة للخصوصية. - - توليد الصور، وتحرير الصور، وتوليد الفيديو، والمراجع، والتكبير. + + توليد الصور، وتحرير الصور، وترقية الدقّة، وتوليد الفيديو، وتحويل النص إلى كلام، وتحويل الكلام إلى نص، واستنساخ الصوت. - تطبيقات الوكلاء، وأدوات المساعد، و crypto RPC، ومصادقة المحفظة، والتكاملات المجتمعية. + تطبيقات الوكلاء، وأدوات المساعِد، وRPC للعملات المشفّرة، ومصادقة المحافظ، وتكاملات المجتمع. - استخدم نماذج Venice مع Claude Code و Cursor و OpenCode و Codex CLI. + استخدم نماذج Venice مع Claude Code وCursor وOpenCode وCodex CLI. - - ابنِ مع LangChain و Vercel AI SDK و CrewAI. + + ابنِ مع LangChain وVercel AI SDK وCrewAI. - ابنِ مشاريعك الخاصة باستخدام أحد دلائلنا التفصيلية للمشاريع. + ابنِ مشاريعك الخاصة باستخدام أحد الأدلة التفصيلية لمشاريعنا. diff --git a/ar/guides/projects/overview.mdx b/ar/guides/projects/overview.mdx new file mode 100644 index 00000000..18f577fa --- /dev/null +++ b/ar/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "العروض والمشاريع" +sidebarTitle: "نظرة عامة" +description: "مشاريع عروض توضيحية متكاملة مبنية على واجهة برمجة تطبيقات Venice، مع شيفرة عاملة يمكنك تشغيلها وقراءتها وتكييفها لتطبيقاتك الخاصة." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

روبوت RAG خاص

+

إجابات موثّقة وقابلة للاستشهاد من مستنداتك الخاصة مع استرجاع مُعاد ترتيبه.

+
+ Qdrant + FastEmbed + إعادة الترتيب +
+
+ اقرأ الدليل + GitHub +
+
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

وكيل بحث خاص

+

يخطّط لعمليات البحث، ويقرأ مصادر الويب، ويكتب تقارير Markdown مع استشهادات.

+
+ Scrape API + مخطِّط + تقارير موثّقة +
+
+ اقرأ الدليل + GitHub +
+
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

مُراجِع أمان الشيفرة

+

يعثر على الثغرات الذرّية ويربطها في مسارات استغلال.

+
+ خريطة AST للمستودع + Pydantic + وكيلان +
+
+ اقرأ الدليل + GitHub +
+
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

بوابة LLM بلغة Rust

+

بوابة متوافقة مع OpenAI مع مصادقة وحدود معدّل وبثّ وقياس عن بُعد.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+
+ اقرأ الدليل + GitHub +
+
Joshua Mo · Jul 2026
+
+
diff --git a/ar/models/overview.mdx b/ar/models/overview.mdx index 0c71044d..6cf5b28c 100644 --- a/ar/models/overview.mdx +++ b/ar/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "النماذج" +title: "كل النماذج" +sidebarTitle: "كل النماذج" description: "كتالوج لجميع النماذج المتاحة على Venice API عبر النص والصورة والفيديو والصوت والـ embeddings والكلام، مع القدرات والأسعار ومعرفات النماذج." "og:title": "النماذج | Venice API Docs" mode: "wide" diff --git a/de/guides/features/embeddings.mdx b/de/guides/features/embeddings.mdx new file mode 100644 index 00000000..b912a00d --- /dev/null +++ b/de/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Erzeuge Vektor-Embeddings mit Venice für semantische Suche, RAG-Abruf, Clustering und Empfehlungen über den /embeddings-Endpunkt." +'og:title': "Embeddings | Venice API Docs" +'og:description': "Erfahre, wie du mit der Venice API Vektor-Embeddings erzeugst." +--- + +Embeddings wandeln Text in Vektoren um, die semantische Bedeutung erfassen. Verwende sie für Suche, Retrieval-Augmented Generation (RAG), Clustering, Empfehlungen, Deduplizierung und Ähnlichkeitsbewertung. + +Der Embeddings-Endpunkt von Venice ist OpenAI-kompatibel. Sende einen einzelnen String oder ein Array von Strings an `/embeddings` und speichere anschließend die zurückgegebenen Vektoren in deiner Datenbank oder deinem Vektorindex. + +## Grundlegende Nutzung + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Batch-Eingaben + +Übergib ein Array von Strings, um mehrere Texte in einer einzigen Anfrage einzubetten: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +Die Antwort behält die Reihenfolge der Eingaben bei. Speichere jeden Vektor zusammen mit der ID des Quelltexts, den Metadaten und der ID des Embedding-Modells. + +## Typischer Ablauf + +1. Teile die Ausgangsdokumente in Chunks auf. +2. Erzeuge Embeddings für jeden Chunk. +3. Speichere Vektoren und Metadaten in einer Vektordatenbank. +4. Bette die Anfrage der Nutzer:innen ein. +5. Rufe die nächstgelegenen Chunks ab. +6. Sende den abgerufenen Kontext an ein Chat-Modell. + +Eine vollständige Implementierung findest du unter [Einen privaten RAG-Bot bauen](/guides/projects/private-rag-bot). + +## Modellauswahl + +Nutze die Seite [Embedding-Modelle](/models/embeddings), um aktuelle Embedding-Modelle, Dimensionen und Preise zu vergleichen. + + +Verwende beim Indexieren und Abfragen dasselbe Embedding-Modell. Das Mischen von Modellen kann Ähnlichkeitswerte unzuverlässig machen, da Vektorräume nicht austauschbar sind. + + +## Verwandte Ressourcen + +- [Embeddings-API](/api-reference/endpoint/embeddings/generate) +- [Embedding-Modelle](/models/embeddings) +- [Anleitung: Privater RAG-Bot](/guides/projects/private-rag-bot) diff --git a/de/guides/features/function-calling.mdx b/de/guides/features/function-calling.mdx new file mode 100644 index 00000000..b9ded936 --- /dev/null +++ b/de/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Function Calling" +description: "Lass Venice-Chatmodelle über OpenAI-kompatibles Function Calling und die Chat-Completions-API die Tools deiner Anwendung aufrufen." +'og:title': "Function Calling | Venice API Docs" +'og:description': "Erfahre, wie du Function Calling mit Venice-Chatmodellen verwendest." +--- + +Mit Function Calling kann ein Modell strukturierte Tool-Aufrufe auswählen, die deine Anwendung ausführt. Das Modell führt die Funktion nicht selbst aus. Es gibt den Funktionsnamen und die Argumente zurück, dein Code führt die Funktion aus und du sendest das Ergebnis an das Modell zurück. + +Verwende Function Calling, wenn das Modell Live-Daten, Anwendungsaktionen, Datenbankabfragen oder deterministische Berechnungen benötigt. + +## Grundlegende Tool-Definition + +Definiere Tools mit dem OpenAI-kompatiblen `tools`-Array: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Das Tool ausführen + +Wenn das Modell ein Tool auswählt, prüfe `message.tool_calls`, parse die Argumente, führe deine Anwendungsfunktion aus und sende das Ergebnis als `tool`-Nachricht zurück. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Ein Modell auswählen + +Die Unterstützung für Function Calling ist modellabhängig. Nutze die Seite [Textmodelle](/models/text) oder die [Models-API](/api-reference/endpoint/models/list), um Modelle mit `supportsFunctionCalling` zu finden. + + +Behandle Tool-Argumente als nicht vertrauenswürdige Eingaben. Validiere Argumente, bevor du sie in Datenbankabfragen, Shell-Befehlen, Zahlungen oder anderen Aktionen mit Nebenwirkungen verwendest. + + +## Design-Tipps + +- Halte Tool-Namen und Beschreibungen kurz und wörtlich. +- Verwende JSON Schema, damit das Modell gültige Argumente leichter erzeugen kann. +- Bevorzuge eng gefasste Tools mit klaren Eingaben gegenüber einem breiten Tool mit vielen optionalen Verhaltensweisen. +- Gib knappe Tool-Ergebnisse zurück, damit die finale Antwort genügend Kontext hat, ohne Tokens zu verschwenden. + +## Verwandte Ressourcen + +- [Chat-Completions-API](/api-reference/endpoint/chat/completions) +- [Textmodelle](/models/text) +- [Anleitung: Strukturierte Antworten](/guides/features/structured-responses) +- [LangChain-Integration](/guides/integrations/langchain#function-calling-with-agents) diff --git a/de/guides/features/vision.mdx b/de/guides/features/vision.mdx new file mode 100644 index 00000000..fed2bf8e --- /dev/null +++ b/de/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Vision" +description: "Analysiere Bilder mit den vision-fähigen Chatmodellen von Venice über multimodale Nachrichteninhalte in der OpenAI-kompatiblen Chat-Completions-API." +'og:title': "Vision | Venice API Docs" +'og:description': "Erfahre, wie du Bilder an Venice-Vision-Modelle sendest." +--- + +Vision-Modelle können Bilder zusammen mit Textprompts analysieren. Verwende sie für Bildverständnis, Extraktion, Klassifikation, visuelle Fragebeantwortung und multimodales Reasoning. + +Venice unterstützt OpenAI-kompatible multimodale Chat-Nachrichten. Füge Text- und Bildblöcke in dieselbe Benutzernachricht ein und sende die Anfrage anschließend an ein vision-fähiges Modell. + +## Grundlegende Nutzung + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Base64-Bilder verwenden + +Du kannst auch eine Base64-Data-URL übergeben, wenn das Bild lokal oder privat ist: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Ein Vision-Modell auswählen + +Nutze die Seite [Textmodelle](/models/text) oder die [Models-API](/api-reference/endpoint/models/list), um Modelle zu finden, die Vision unterstützen. Die Vision-Unterstützung ist in den Modellfähigkeiten aufgeführt. + + +Verwende bei dokumentähnlichen Eingaben [Datei-Eingaben](/guides/features/file-inputs), wenn Venice Text aus einer Datei extrahieren soll. Verwende Vision, wenn das visuelle Layout oder der Bildinhalt selbst wichtig ist. + + +## Prompt-Tipps + +- Sag dem Modell, worauf es sich konzentrieren soll: Objekte, Text, Layout, Sicherheit, Defekte oder Unterschiede. +- Verlange strukturierte Ausgaben, wenn deine Anwendung Felder benötigt, die du parsen kannst. +- Achte darauf, dass Bild-URLs für die API zugänglich sind, oder verwende Base64-Data-URLs für private Bilder. +- Verwende ein Modell mit ausreichend Kontext, wenn du Bilder mit langen Anweisungen kombinierst. + +## Verwandte Ressourcen + +- [Chat-Completions-API](/api-reference/endpoint/chat/completions) +- [Textmodelle](/models/text) +- [Anleitung: Datei-Eingaben](/guides/features/file-inputs) +- [Anleitung: Strukturierte Antworten](/guides/features/structured-responses) diff --git a/de/guides/media/image-upscaling.mdx b/de/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..41df52c4 --- /dev/null +++ b/de/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Bild-Upscaling" +description: "Verbessere und skaliere Bilder mit der synchronen Image-Upscale-API von Venice mit Base64-Eingabe und binärer Bildausgabe." +'og:title': "Bild-Upscaling | Venice API Docs" +'og:description': "Erfahre, wie du mit der Venice API Bilder verbesserst und hochskalierst." +--- + +Bild-Upscaling verbessert die Auflösung und visuelle Qualität eines vorhandenen Bildes. Sende ein Base64-kodiertes Bild an `/image/upscale`, wähle einen Skalierungsfaktor und Venice gibt das verbesserte Bild als Binärdaten zurück. + +Verwende Bild-Upscaling, wenn du bereits ein Bild hast und eine höher aufgelöste Ausgabe wünschst. Verwende die [Bilderzeugung](/guides/media/image-generation), wenn du ein Bild aus einem Prompt erstellen möchtest, und die [Bildbearbeitung](/guides/media/image-editing), wenn du den Bildinhalt ändern möchtest. + +## Grundlegende Nutzung + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Parameter + +| Parameter | Typ | Erforderlich | Beschreibung | +|-----------|------|----------|-------------| +| `image` | string | Ja | Base64-kodiertes Quellbild. | +| `scale` | number | Nein | Skalierungsfaktor. Verwende die in der API-Referenz und im Modellkatalog aufgeführten unterstützten Werte. | + + +Die Antwort besteht aus binären Bilddaten, nicht aus JSON. Schreibe den Antwortkörper direkt in eine Datei oder streame ihn in den Speicher. + + +## Tipps zur Eingabe + +- Beginne mit dem saubersten Quellbild, das du hast. Upscaling verbessert Details, kann aber nicht vollständig Informationen wiederherstellen, die nicht vorhanden sind. +- Verwende in Produktions-Workflows moderate Skalierungsfaktoren. Sehr große Ausgaben können Latenz und Dateigröße erhöhen. +- Behalte das Originalbild, falls du die Qualität vergleichen oder mit anderen Einstellungen erneut versuchen möchtest. + +## Verwandte Ressourcen + +- [Image-Upscale-API](/api-reference/endpoint/image/upscale) +- [Bildmodelle](/models/image) +- [Anleitung: Bildbearbeitung](/guides/media/image-editing) diff --git a/de/guides/media/speech-to-text.mdx b/de/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..7b3ee76c --- /dev/null +++ b/de/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Speech-to-Text" +description: "Transkribiere Audiodateien mit Venice-Speech-to-Text-Modellen über den OpenAI-kompatiblen /audio/transcriptions-Endpunkt." +'og:title': "Speech-to-Text | Venice API Docs" +'og:description': "Erfahre, wie du mit der Venice API Audiodateien transkribierst." +--- + +Speech-to-Text transkribiert gesprochene Audioaufnahmen in geschriebenen Text. Sende eine Audiodatei an `/audio/transcriptions`, wähle ein Transkriptionsmodell und lege das gewünschte Antwortformat fest. + +## Grundlegende Nutzung + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Unterstützte Eingaben + +Gängige Audioformate sind `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac` und `ogg`. Aktuelle Modellunterstützung und Preise findest du auf der Seite [Speech-to-Text-Modelle](/models/speech-to-text). + +## Antwortformate + +| Format | Verwendung | +|--------|----------| +| `json` | Wenn du eine einfache `{ "text": "..." }`-Antwort möchtest. | +| `text` | Wenn du reinen Text ohne JSON-Parsing möchtest. | +| `srt` | Wenn du SubRip-Untertitel benötigst. | +| `vtt` | Wenn du WebVTT-Untertitel benötigst. | +| `verbose_json` | Wenn du umfangreichere Zeitstempel- und Segment-Metadaten benötigst. | + + +Verwende Untertitelformate, wenn das Transkript mit einer Medienwiedergabe kombiniert wird. Verwende `json` oder `text`, wenn das Transkript in Zusammenfassungen, Suche oder nachgelagerte Chat-Prompts einfließt. + + +## Tipps für den Produktiveinsatz + +- Halte das Audio klar und vermeide nach Möglichkeit sich überlappende Sprecher. +- Teile sehr lange Aufnahmen in kleinere Chunks auf, wenn dein Workflow geringere Latenz oder einfachere Wiederholungen benötigt. +- Speichere den ursprünglichen Audiopfad, die Modell-ID und das Antwortformat mit jedem Transkript, um die Nachvollziehbarkeit zu gewährleisten. + +## Verwandte Ressourcen + +- [Audio-Transcriptions-API](/api-reference/endpoint/audio/transcriptions) +- [Speech-to-Text-Modelle](/models/speech-to-text) +- [Anleitung: Text-to-Speech](/guides/media/text-to-speech) diff --git a/de/guides/media/text-to-speech.mdx b/de/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..78dff3d0 --- /dev/null +++ b/de/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Text-to-Speech" +description: "Erzeuge gesprochenes Audio aus Text mit Venice-Text-to-Speech-Modellen, modellspezifischen Stimmen und dem /audio/speech-Endpunkt." +'og:title': "Text-to-Speech | Venice API Docs" +'og:description': "Erfahre, wie du mit der Venice API Text in Sprache umwandelst." +--- + +Text-to-Speech wandelt geschriebenen Text in gesprochenes Audio um. Wähle ein TTS-Modell, wähle eine von diesem Modell unterstützte Stimme, sende den Text an `/audio/speech` und speichere die binäre Audioantwort. + +Nutze diese Anleitung für die Standard-Sprachgenerierung. Wenn du Sprache aus einer benutzerdefinierten Referenzstimme erzeugen möchtest, siehe [Voice Cloning](/guides/media/voice-cloning). + +## Grundlegende Nutzung + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Modell und Stimme auswählen + +Stimmen sind modellspezifisch. Der `voice`-Wert muss zu dem gewählten `model` passen. + +Auf der Seite [Text-to-Speech-Modelle](/models/text-to-speech) kannst du verfügbare Modelle und Stimmen durchsuchen. Der Voice-Picker listet die exakten Voice-IDs auf, die du in deiner Anfrage übergeben musst. + + +Voice-IDs unterscheiden zwischen Groß- und Kleinschreibung. Wenn du das TTS-Modell wechselst, aktualisiere gleichzeitig den `voice`-Wert. + + +## Aufbau der Anfrage + +| Parameter | Typ | Erforderlich | Beschreibung | +|-----------|------|----------|-------------| +| `model` | string | Ja | ID des Text-to-Speech-Modells. | +| `voice` | string | Ja | Voice-ID, die vom gewählten Modell unterstützt wird. | +| `input` | string | Ja | Zu synthetisierender Text. | + +## Tipps für den Produktiveinsatz + +- Zwischenspeichere erzeugtes Audio, wenn derselbe Quelltext und dieselbe Stimme wiederverwendet werden. +- Normalisiere und korrigiere den Text vor der Synthese. Interpunktion beeinflusst Tempo und Intonation. +- Speichere die Ausgabe mit der korrekten Dateiendung für das Antwortformat des Modells. + +## Verwandte Ressourcen + +- [Audio-Speech-API](/api-reference/endpoint/audio/speech) +- [Text-to-Speech-Modelle](/models/text-to-speech) +- [Anleitung: Voice Cloning](/guides/media/voice-cloning) diff --git a/de/guides/overview.mdx b/de/guides/overview.mdx index bc9f53e7..487c4d46 100644 --- a/de/guides/overview.mdx +++ b/de/guides/overview.mdx @@ -1,28 +1,37 @@ --- -title: Leitfäden -description: "Praktische Venice API-Leitfäden zu API-Schlüsseln, OpenAI-Migration, strukturierten Antworten, Datei-Eingaben, Prompt-Caching, Medien und Agenten-Integrationen." +title: Anleitungen +description: Praktische Venice-API-Anleitungen zu API-Keys, OpenAI-Migration, Chat-Funktionen, Embeddings, Medien und Agent-Integrationen. --- -Verwenden Sie diese Leitfäden, um API-Schlüssel zu generieren, vorhandene OpenAI-Apps zu migrieren, Venice-spezifische Funktionen zu aktivieren und Venice mit Agent-Frameworks, Coding-Tools und Medien-Workflows zu verbinden. +Nutze diese Anleitungen, um API-Keys zu erstellen, bestehende OpenAI-Anwendungen zu migrieren, Venice-spezifische Funktionen zu aktivieren und Venice mit Agent-Frameworks, Coding-Tools und Medien-Workflows zu verbinden. - - Erstellen und verwalten Sie API-Schlüssel über das Venice-Dashboard. + + Erstelle und verwalte API-Keys über das Venice-Dashboard. - Wechseln Sie OpenAI-kompatible Apps zu Venice durch Ändern der Base-URL. + Stelle OpenAI-kompatible Anwendungen auf Venice um, indem du die Base-URL änderst. - Fordern Sie Antworten an, die einem JSON-Schema entsprechen. + Fordere Antworten an, die einem JSON-Schema entsprechen. - - Senden Sie Dokumente und Quelldateien an Chat-Modelle. + + Lass Modelle deine Anwendungs-Tools mit strukturierten Argumenten aufrufen. - - Reduzieren Sie Latenz und Kosten für wiederholten Prompt-Inhalt. + + Analysiere Bilder mit multimodalen Chatmodellen. - - Bauen Sie einen Python-Forschungsagenten, der Quellen sammelt und zitierte Berichte schreibt. + + Erzeuge Vektoren für semantische Suche, RAG und Empfehlungen. + + + Sende Dokumente und Quelldateien an Chatmodelle. + + + Reduziere Latenz und Kosten für wiederholte Prompt-Inhalte. + + + Baue einen Python-Research-Agenten, der Quellen sammelt und Berichte mit Quellenangaben schreibt. @@ -30,24 +39,24 @@ Verwenden Sie diese Leitfäden, um API-Schlüssel zu generieren, vorhandene Open - API-Schlüssel, Migration, autonome Schlüsselerstellung und Postman. + API-Keys, Migration, autonome Key-Erstellung und Postman. - Strukturierte Ausgaben, Reasoning-Modelle, File Inputs, Prompt Caching und Modelle mit erhöhtem Datenschutz. + Strukturierte Ausgaben, Reasoning-Modelle, Function Calling, Vision, Embeddings, Datei-Eingaben, Prompt-Caching und datenschutzverbesserte Modelle. - - Bildgenerierung, Bildbearbeitung, Videogenerierung, Referenzen und Upscaling. + + Bilderzeugung, Bildbearbeitung, Upscaling, Videoerzeugung, Text-to-Speech, Speech-to-Text und Voice Cloning. - - Agent-Apps, Assistenz-Tools, Crypto RPC, Wallet-Auth und Community-Integrationen. + + Agent-Apps, Assistenz-Tools, Crypto-RPC, Wallet-Auth und Community-Integrationen. - Verwenden Sie Venice-Modelle mit Claude Code, Cursor, OpenCode und Codex CLI. + Nutze Venice-Modelle mit Claude Code, Cursor, OpenCode und Codex CLI. - Bauen Sie mit LangChain, Vercel AI SDK und CrewAI. + Entwickle mit LangChain, Vercel AI SDK und CrewAI. - Bauen Sie Ihre eigenen Projekte anhand eines unserer Projekt-Walkthroughs. + Baue eigene Projekte mit Hilfe unserer Projekt-Walkthroughs. diff --git a/de/guides/projects/overview.mdx b/de/guides/projects/overview.mdx new file mode 100644 index 00000000..08f26939 --- /dev/null +++ b/de/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Demos & Projekte" +sidebarTitle: "Übersicht" +description: "Vollständige Demo-Projekte auf Basis der Venice-API, mit lauffähigem Code, den du ausführen, lesen und für deine eigenen Anwendungen anpassen kannst." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Privater RAG-Bot

+

Fundierte, zitierbare Antworten aus deinen eigenen Dokumenten mit neu gewichtetem Retrieval.

+
+ Qdrant + FastEmbed + Re-Ranking +
+
+ Zur Anleitung + GitHub +
+
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Privater Recherche-Agent

+

Plant Suchen, liest Webquellen und schreibt zitierte Markdown-Briefings.

+
+ Scrape API + Planer + Zitierte Berichte +
+
+ Zur Anleitung + GitHub +
+
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Codebasis-Sicherheitsprüfer

+

Findet atomare Schwachstellen und verkettet sie zu Exploit-Pfaden.

+
+ AST-Repo-Karte + Pydantic + Zwei Agenten +
+
+ Zur Anleitung + GitHub +
+
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Rust-LLM-Gateway

+

Ein OpenAI-kompatibles Gateway mit Authentifizierung, Rate-Limits, Streaming und Telemetrie.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+
+ Zur Anleitung + GitHub +
+
Joshua Mo · Jul 2026
+
+
diff --git a/de/models/overview.mdx b/de/models/overview.mdx index d60f8fb4..4853ba49 100644 --- a/de/models/overview.mdx +++ b/de/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "Modelle" +title: "Alle Modelle" +sidebarTitle: "Alle Modelle" description: "Katalog aller auf der Venice API verfügbaren Modelle für Text, Bild, Video, Audio, Embeddings und Sprache — mit Fähigkeiten, Preisen und Modell-IDs." "og:title": "Models | Venice API Docs" mode: "wide" diff --git a/docs.json b/docs.json index 2add515e..0416849d 100644 --- a/docs.json +++ b/docs.json @@ -1,6 +1,6 @@ { "$schema": "https://mintlify.com/docs.json", - "theme": "mint", + "theme": "luma", "name": "Venice API Docs", "colors": { "primary": "#125DA3", @@ -18,34 +18,27 @@ "default": true, "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Docs", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Docs", + "icon": "book", + "expanded": true, "pages": [ "overview/about-venice", - "overview/getting-started", - "overview/privacy", "overview/pricing", "overview/deprecations", - "overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "guides/overview" + "overview/beta-models", + "overview/privacy" ] }, { "group": "Getting Started", "icon": "rocket", + "expanded": true, "pages": [ + "getting-started/quick-start", "guides/getting-started/generating-api-key", "guides/getting-started/generating-api-key-agent", "guides/getting-started/openai-migration", @@ -55,22 +48,30 @@ { "group": "Text & Chat", "icon": "message", + "expanded": true, "pages": [ "guides/features/structured-responses", "guides/features/reasoning-models", + "guides/features/function-calling", + "guides/features/vision", "guides/features/file-inputs", + "guides/features/embeddings", "guides/features/prompt-caching", "guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Image, Video & Audio", + "icon": "photo", + "expanded": true, "pages": [ "guides/media/image-generation", "guides/media/image-editing", + "guides/media/image-upscaling", "guides/media/video-generation", "guides/media/reference-to-video", + "guides/media/text-to-speech", + "guides/media/speech-to-text", "guides/media/voice-cloning", "guides/media/video-upscaling" ] @@ -78,6 +79,7 @@ { "group": "Agents & Integrations", "icon": "robot", + "expanded": true, "pages": [ "guides/integrations/ai-agents", "guides/integrations/openclaw-bot", @@ -89,18 +91,10 @@ "guides/integrations/integrations" ] }, - { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "guides/integrations/venice-mcp", - "guides/integrations/venice-skills", - "guides/integrations/venice-video-harness" - ] - }, { "group": "Coding Tools", "icon": "terminal", + "expanded": true, "pages": [ "guides/integrations/claude-code", "guides/integrations/cursor", @@ -108,29 +102,43 @@ "guides/integrations/codex-cli" ] }, + { + "group": "Agent Tooling", + "icon": "tool", + "expanded": true, + "pages": [ + "guides/integrations/venice-mcp", + "guides/integrations/venice-skills", + "guides/integrations/venice-video-harness" + ] + }, { "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "icon": "package", + "expanded": true, "pages": [ "guides/integrations/langchain", "guides/integrations/vercel-ai-sdk", "guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Guides", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Guides", "pages": [ - "guides/projects/private-rag-bot", - "guides/projects/private-research-agent", - "guides/projects/security-code-reviewer", - "guides/projects/rust-llm-gateway" + "guides/overview" ] } - ] + ], + "hidden": true }, { "tab": "Models", + "icon": "box", "groups": [ { "group": "Model Catalog", @@ -147,8 +155,27 @@ } ] }, + { + "tab": "Demos", + "icon": "layout-grid", + "pages": [ + { + "group": "Demos", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "guides/projects/overview", + "guides/projects/private-rag-bot", + "guides/projects/private-research-agent", + "guides/projects/security-code-reviewer", + "guides/projects/rust-llm-gateway" + ] + } + ] + }, { "tab": "API Reference", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -158,6 +185,7 @@ "api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "api-reference/endpoint/chat/completions", "api-reference/endpoint/chat/model_feature_suffix" @@ -165,6 +193,7 @@ }, { "group": "Images", + "expanded": true, "pages": [ "api-reference/endpoint/image/generate", "api-reference/endpoint/image/upscale", @@ -177,6 +206,7 @@ }, { "group": "Audio", + "expanded": true, "pages": [ "api-reference/endpoint/audio/speech", "api-reference/endpoint/audio/transcriptions", @@ -188,6 +218,7 @@ }, { "group": "Video", + "expanded": true, "pages": [ "api-reference/endpoint/video/queue", "api-reference/endpoint/video/transcriptions", @@ -198,6 +229,7 @@ }, { "group": "Tools", + "expanded": true, "pages": [ "api-reference/endpoint/augment/text-parser", "api-reference/endpoint/augment/scrape", @@ -208,12 +240,14 @@ }, { "group": "Embeddings", + "expanded": true, "pages": [ "api-reference/endpoint/embeddings/generate" ] }, { "group": "Models", + "expanded": true, "pages": [ "api-reference/endpoint/models/list", "api-reference/endpoint/models/compatibility_mapping", @@ -222,6 +256,7 @@ }, { "group": "API Keys", + "expanded": true, "pages": [ "api-reference/endpoint/api_keys/list", "api-reference/endpoint/api_keys/get", @@ -234,6 +269,7 @@ }, { "group": "API Key Rate Limits", + "expanded": true, "pages": [ "api-reference/endpoint/api_keys/rate_limits", "api-reference/endpoint/api_keys/rate_limit_logs" @@ -241,6 +277,7 @@ }, { "group": "Characters", + "expanded": true, "pages": [ "api-reference/endpoint/characters/get", "api-reference/endpoint/characters/list", @@ -249,6 +286,7 @@ }, { "group": "Billing", + "expanded": true, "pages": [ "api-reference/endpoint/billing/balance", "api-reference/endpoint/billing/usage", @@ -257,6 +295,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "api-reference/endpoint/x402/balance", "api-reference/endpoint/x402/top-up", @@ -269,10 +308,12 @@ }, { "tab": "Changelog", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { "tab": "Status Page", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -281,34 +322,27 @@ "language": "pt-BR", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Documentação", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Documentação", + "icon": "book", + "expanded": true, "pages": [ "pt-BR/overview/about-venice", - "pt-BR/overview/getting-started", - "pt-BR/overview/privacy", "pt-BR/overview/pricing", "pt-BR/overview/deprecations", - "pt-BR/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "pt-BR/guides/overview" + "pt-BR/overview/beta-models", + "pt-BR/overview/privacy" ] }, { - "group": "Getting Started", + "group": "Primeiros passos", "icon": "rocket", + "expanded": true, "pages": [ + "pt-BR/overview/getting-started", "pt-BR/guides/getting-started/generating-api-key", "pt-BR/guides/getting-started/generating-api-key-agent", "pt-BR/guides/getting-started/openai-migration", @@ -316,31 +350,40 @@ ] }, { - "group": "Text & Chat", + "group": "Texto e chat", "icon": "message", + "expanded": true, "pages": [ "pt-BR/guides/features/structured-responses", "pt-BR/guides/features/reasoning-models", + "pt-BR/guides/features/function-calling", + "pt-BR/guides/features/vision", "pt-BR/guides/features/file-inputs", + "pt-BR/guides/features/embeddings", "pt-BR/guides/features/prompt-caching", "pt-BR/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Imagem, vídeo e áudio", + "icon": "photo", + "expanded": true, "pages": [ "pt-BR/guides/media/image-generation", "pt-BR/guides/media/image-editing", + "pt-BR/guides/media/image-upscaling", "pt-BR/guides/media/video-generation", "pt-BR/guides/media/reference-to-video", + "pt-BR/guides/media/text-to-speech", + "pt-BR/guides/media/speech-to-text", "pt-BR/guides/media/voice-cloning", "pt-BR/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "Agentes e integrações", "icon": "robot", + "expanded": true, "pages": [ "pt-BR/guides/integrations/ai-agents", "pt-BR/guides/integrations/openclaw-bot", @@ -353,17 +396,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "pt-BR/guides/integrations/venice-mcp", - "pt-BR/guides/integrations/venice-skills", - "pt-BR/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "Ferramentas de código", "icon": "terminal", + "expanded": true, "pages": [ "pt-BR/guides/integrations/claude-code", "pt-BR/guides/integrations/cursor", @@ -372,31 +407,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "Ferramentas para agentes", + "icon": "tool", + "expanded": true, + "pages": [ + "pt-BR/guides/integrations/venice-mcp", + "pt-BR/guides/integrations/venice-skills", + "pt-BR/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDKs e frameworks", + "icon": "package", + "expanded": true, "pages": [ "pt-BR/guides/integrations/langchain", "pt-BR/guides/integrations/vercel-ai-sdk", "pt-BR/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Guias", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Guias", "pages": [ - "pt-BR/guides/projects/private-rag-bot", - "pt-BR/guides/projects/private-research-agent", - "pt-BR/guides/projects/security-code-reviewer", - "pt-BR/guides/projects/rust-llm-gateway" + "pt-BR/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "Modelos", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "Catálogo de modelos", "pages": [ "pt-BR/models/overview", "pt-BR/models/text", @@ -411,7 +460,26 @@ ] }, { - "tab": "API Reference", + "tab": "Demos", + "icon": "layout-grid", + "pages": [ + { + "group": "Demos", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "pt-BR/guides/projects/overview", + "pt-BR/guides/projects/private-rag-bot", + "pt-BR/guides/projects/private-research-agent", + "pt-BR/guides/projects/security-code-reviewer", + "pt-BR/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "Referência da API", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -421,13 +489,15 @@ "pt-BR/api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/chat/completions", "pt-BR/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "Imagens", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/image/generate", "pt-BR/api-reference/endpoint/image/upscale", @@ -439,7 +509,8 @@ ] }, { - "group": "Audio", + "group": "Áudio", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/audio/speech", "pt-BR/api-reference/endpoint/audio/transcriptions", @@ -450,7 +521,8 @@ ] }, { - "group": "Video", + "group": "Vídeo", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/video/queue", "pt-BR/api-reference/endpoint/video/transcriptions", @@ -460,7 +532,8 @@ ] }, { - "group": "Tools", + "group": "Ferramentas", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/augment/text-parser", "pt-BR/api-reference/endpoint/augment/scrape", @@ -471,12 +544,14 @@ }, { "group": "Embeddings", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "Modelos", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/models/list", "pt-BR/api-reference/endpoint/models/compatibility_mapping", @@ -484,7 +559,8 @@ ] }, { - "group": "API Keys", + "group": "Chaves de API", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/api_keys/list", "pt-BR/api-reference/endpoint/api_keys/get", @@ -496,14 +572,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "Limites das chaves de API", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/api_keys/rate_limits", "pt-BR/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "Personagens", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/characters/get", "pt-BR/api-reference/endpoint/characters/list", @@ -511,7 +589,8 @@ ] }, { - "group": "Billing", + "group": "Faturamento", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/billing/balance", "pt-BR/api-reference/endpoint/billing/usage", @@ -520,6 +599,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "pt-BR/api-reference/endpoint/x402/balance", "pt-BR/api-reference/endpoint/x402/top-up", @@ -531,11 +611,13 @@ ] }, { - "tab": "Changelog", + "tab": "Alterações", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "Status", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -544,34 +626,27 @@ "language": "ar", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "التوثيق", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "التوثيق", + "icon": "book", + "expanded": true, "pages": [ "ar/overview/about-venice", - "ar/overview/getting-started", - "ar/overview/privacy", "ar/overview/pricing", "ar/overview/deprecations", - "ar/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "ar/guides/overview" + "ar/overview/beta-models", + "ar/overview/privacy" ] }, { - "group": "Getting Started", + "group": "البدء", "icon": "rocket", + "expanded": true, "pages": [ + "ar/overview/getting-started", "ar/guides/getting-started/generating-api-key", "ar/guides/getting-started/generating-api-key-agent", "ar/guides/getting-started/openai-migration", @@ -579,31 +654,40 @@ ] }, { - "group": "Text & Chat", + "group": "النص والدردشة", "icon": "message", + "expanded": true, "pages": [ "ar/guides/features/structured-responses", "ar/guides/features/reasoning-models", + "ar/guides/features/function-calling", + "ar/guides/features/vision", "ar/guides/features/file-inputs", + "ar/guides/features/embeddings", "ar/guides/features/prompt-caching", "ar/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "الصورة والفيديو والصوت", + "icon": "photo", + "expanded": true, "pages": [ "ar/guides/media/image-generation", "ar/guides/media/image-editing", + "ar/guides/media/image-upscaling", "ar/guides/media/video-generation", "ar/guides/media/reference-to-video", + "ar/guides/media/text-to-speech", + "ar/guides/media/speech-to-text", "ar/guides/media/voice-cloning", "ar/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "الوكلاء والتكاملات", "icon": "robot", + "expanded": true, "pages": [ "ar/guides/integrations/ai-agents", "ar/guides/integrations/openclaw-bot", @@ -616,17 +700,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "ar/guides/integrations/venice-mcp", - "ar/guides/integrations/venice-skills", - "ar/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "أدوات البرمجة", "icon": "terminal", + "expanded": true, "pages": [ "ar/guides/integrations/claude-code", "ar/guides/integrations/cursor", @@ -635,31 +711,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "أدوات الوكلاء", + "icon": "tool", + "expanded": true, + "pages": [ + "ar/guides/integrations/venice-mcp", + "ar/guides/integrations/venice-skills", + "ar/guides/integrations/venice-video-harness" + ] + }, + { + "group": "حِزم SDK والأُطر", + "icon": "package", + "expanded": true, "pages": [ "ar/guides/integrations/langchain", "ar/guides/integrations/vercel-ai-sdk", "ar/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "الأدلة", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "الأدلة", "pages": [ - "ar/guides/projects/private-rag-bot", - "ar/guides/projects/private-research-agent", - "ar/guides/projects/security-code-reviewer", - "ar/guides/projects/rust-llm-gateway" + "ar/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "النماذج", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "كتالوج النماذج", "pages": [ "ar/models/overview", "ar/models/text", @@ -674,7 +764,26 @@ ] }, { - "tab": "API Reference", + "tab": "العروض", + "icon": "layout-grid", + "pages": [ + { + "group": "العروض", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "ar/guides/projects/overview", + "ar/guides/projects/private-rag-bot", + "ar/guides/projects/private-research-agent", + "ar/guides/projects/security-code-reviewer", + "ar/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "مرجع الـ API", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -683,14 +792,16 @@ "ar/api-reference/rate-limiting", "ar/api-reference/error-codes", { - "group": "Chat", + "group": "الدردشة", + "expanded": true, "pages": [ "ar/api-reference/endpoint/chat/completions", "ar/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "الصور", + "expanded": true, "pages": [ "ar/api-reference/endpoint/image/generate", "ar/api-reference/endpoint/image/upscale", @@ -702,7 +813,8 @@ ] }, { - "group": "Audio", + "group": "الصوت", + "expanded": true, "pages": [ "ar/api-reference/endpoint/audio/speech", "ar/api-reference/endpoint/audio/transcriptions", @@ -713,7 +825,8 @@ ] }, { - "group": "Video", + "group": "الفيديو", + "expanded": true, "pages": [ "ar/api-reference/endpoint/video/queue", "ar/api-reference/endpoint/video/transcriptions", @@ -723,7 +836,8 @@ ] }, { - "group": "Tools", + "group": "الأدوات", + "expanded": true, "pages": [ "ar/api-reference/endpoint/augment/text-parser", "ar/api-reference/endpoint/augment/scrape", @@ -733,13 +847,15 @@ ] }, { - "group": "Embeddings", + "group": "التضمينات", + "expanded": true, "pages": [ "ar/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "النماذج", + "expanded": true, "pages": [ "ar/api-reference/endpoint/models/list", "ar/api-reference/endpoint/models/compatibility_mapping", @@ -747,7 +863,8 @@ ] }, { - "group": "API Keys", + "group": "مفاتيح الـ API", + "expanded": true, "pages": [ "ar/api-reference/endpoint/api_keys/list", "ar/api-reference/endpoint/api_keys/get", @@ -759,14 +876,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "حدود معدّل مفاتيح الـ API", + "expanded": true, "pages": [ "ar/api-reference/endpoint/api_keys/rate_limits", "ar/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "الشخصيات", + "expanded": true, "pages": [ "ar/api-reference/endpoint/characters/get", "ar/api-reference/endpoint/characters/list", @@ -774,7 +893,8 @@ ] }, { - "group": "Billing", + "group": "الفوترة", + "expanded": true, "pages": [ "ar/api-reference/endpoint/billing/balance", "ar/api-reference/endpoint/billing/usage", @@ -783,6 +903,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "ar/api-reference/endpoint/x402/balance", "ar/api-reference/endpoint/x402/top-up", @@ -794,11 +915,13 @@ ] }, { - "tab": "Changelog", + "tab": "سجل التغييرات", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "الحالة", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -807,34 +930,27 @@ "language": "it", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Documentazione", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Documentazione", + "icon": "book", + "expanded": true, "pages": [ "it/overview/about-venice", - "it/overview/getting-started", - "it/overview/privacy", "it/overview/pricing", "it/overview/deprecations", - "it/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "it/guides/overview" + "it/overview/beta-models", + "it/overview/privacy" ] }, { - "group": "Getting Started", + "group": "Per iniziare", "icon": "rocket", + "expanded": true, "pages": [ + "it/overview/getting-started", "it/guides/getting-started/generating-api-key", "it/guides/getting-started/generating-api-key-agent", "it/guides/getting-started/openai-migration", @@ -842,31 +958,40 @@ ] }, { - "group": "Text & Chat", + "group": "Testo e chat", "icon": "message", + "expanded": true, "pages": [ "it/guides/features/structured-responses", "it/guides/features/reasoning-models", + "it/guides/features/function-calling", + "it/guides/features/vision", "it/guides/features/file-inputs", + "it/guides/features/embeddings", "it/guides/features/prompt-caching", "it/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Immagini, video e audio", + "icon": "photo", + "expanded": true, "pages": [ "it/guides/media/image-generation", "it/guides/media/image-editing", + "it/guides/media/image-upscaling", "it/guides/media/video-generation", "it/guides/media/reference-to-video", + "it/guides/media/text-to-speech", + "it/guides/media/speech-to-text", "it/guides/media/voice-cloning", "it/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "Agenti e integrazioni", "icon": "robot", + "expanded": true, "pages": [ "it/guides/integrations/ai-agents", "it/guides/integrations/openclaw-bot", @@ -879,17 +1004,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "it/guides/integrations/venice-mcp", - "it/guides/integrations/venice-skills", - "it/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "Strumenti di sviluppo", "icon": "terminal", + "expanded": true, "pages": [ "it/guides/integrations/claude-code", "it/guides/integrations/cursor", @@ -898,31 +1015,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "Strumenti per agenti", + "icon": "tool", + "expanded": true, + "pages": [ + "it/guides/integrations/venice-mcp", + "it/guides/integrations/venice-skills", + "it/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDK e framework", + "icon": "package", + "expanded": true, "pages": [ "it/guides/integrations/langchain", "it/guides/integrations/vercel-ai-sdk", "it/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Guide", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Guide", "pages": [ - "it/guides/projects/private-rag-bot", - "it/guides/projects/private-research-agent", - "it/guides/projects/security-code-reviewer", - "it/guides/projects/rust-llm-gateway" + "it/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "Modelli", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "Catalogo modelli", "pages": [ "it/models/overview", "it/models/text", @@ -937,7 +1068,26 @@ ] }, { - "tab": "API Reference", + "tab": "Demo", + "icon": "layout-grid", + "pages": [ + { + "group": "Demo", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "it/guides/projects/overview", + "it/guides/projects/private-rag-bot", + "it/guides/projects/private-research-agent", + "it/guides/projects/security-code-reviewer", + "it/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "Riferimento API", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -947,13 +1097,15 @@ "it/api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "it/api-reference/endpoint/chat/completions", "it/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "Immagini", + "expanded": true, "pages": [ "it/api-reference/endpoint/image/generate", "it/api-reference/endpoint/image/upscale", @@ -966,6 +1118,7 @@ }, { "group": "Audio", + "expanded": true, "pages": [ "it/api-reference/endpoint/audio/speech", "it/api-reference/endpoint/audio/transcriptions", @@ -977,6 +1130,7 @@ }, { "group": "Video", + "expanded": true, "pages": [ "it/api-reference/endpoint/video/queue", "it/api-reference/endpoint/video/transcriptions", @@ -986,7 +1140,8 @@ ] }, { - "group": "Tools", + "group": "Strumenti", + "expanded": true, "pages": [ "it/api-reference/endpoint/augment/text-parser", "it/api-reference/endpoint/augment/scrape", @@ -996,13 +1151,15 @@ ] }, { - "group": "Embeddings", + "group": "Embedding", + "expanded": true, "pages": [ "it/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "Modelli", + "expanded": true, "pages": [ "it/api-reference/endpoint/models/list", "it/api-reference/endpoint/models/compatibility_mapping", @@ -1010,7 +1167,8 @@ ] }, { - "group": "API Keys", + "group": "Chiavi API", + "expanded": true, "pages": [ "it/api-reference/endpoint/api_keys/list", "it/api-reference/endpoint/api_keys/get", @@ -1022,14 +1180,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "Limiti delle chiavi API", + "expanded": true, "pages": [ "it/api-reference/endpoint/api_keys/rate_limits", "it/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "Personaggi", + "expanded": true, "pages": [ "it/api-reference/endpoint/characters/get", "it/api-reference/endpoint/characters/list", @@ -1037,7 +1197,8 @@ ] }, { - "group": "Billing", + "group": "Fatturazione", + "expanded": true, "pages": [ "it/api-reference/endpoint/billing/balance", "it/api-reference/endpoint/billing/usage", @@ -1046,6 +1207,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "it/api-reference/endpoint/x402/balance", "it/api-reference/endpoint/x402/top-up", @@ -1057,11 +1219,13 @@ ] }, { - "tab": "Changelog", + "tab": "Modifiche", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "Stato", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -1070,34 +1234,27 @@ "language": "de", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Dokumentation", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Dokumentation", + "icon": "book", + "expanded": true, "pages": [ "de/overview/about-venice", - "de/overview/getting-started", - "de/overview/privacy", "de/overview/pricing", "de/overview/deprecations", - "de/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "de/guides/overview" + "de/overview/beta-models", + "de/overview/privacy" ] }, { - "group": "Getting Started", + "group": "Erste Schritte", "icon": "rocket", + "expanded": true, "pages": [ + "de/overview/getting-started", "de/guides/getting-started/generating-api-key", "de/guides/getting-started/generating-api-key-agent", "de/guides/getting-started/openai-migration", @@ -1107,29 +1264,38 @@ { "group": "Text & Chat", "icon": "message", + "expanded": true, "pages": [ "de/guides/features/structured-responses", "de/guides/features/reasoning-models", + "de/guides/features/function-calling", + "de/guides/features/vision", "de/guides/features/file-inputs", + "de/guides/features/embeddings", "de/guides/features/prompt-caching", "de/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Bild, Video & Audio", + "icon": "photo", + "expanded": true, "pages": [ "de/guides/media/image-generation", "de/guides/media/image-editing", + "de/guides/media/image-upscaling", "de/guides/media/video-generation", "de/guides/media/reference-to-video", + "de/guides/media/text-to-speech", + "de/guides/media/speech-to-text", "de/guides/media/voice-cloning", "de/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "Agenten & Integrationen", "icon": "robot", + "expanded": true, "pages": [ "de/guides/integrations/ai-agents", "de/guides/integrations/openclaw-bot", @@ -1142,17 +1308,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "de/guides/integrations/venice-mcp", - "de/guides/integrations/venice-skills", - "de/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "Coding-Tools", "icon": "terminal", + "expanded": true, "pages": [ "de/guides/integrations/claude-code", "de/guides/integrations/cursor", @@ -1160,32 +1318,46 @@ "de/guides/integrations/codex-cli" ] }, + { + "group": "Agenten-Tools", + "icon": "tool", + "expanded": true, + "pages": [ + "de/guides/integrations/venice-mcp", + "de/guides/integrations/venice-skills", + "de/guides/integrations/venice-video-harness" + ] + }, { "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "icon": "package", + "expanded": true, "pages": [ "de/guides/integrations/langchain", "de/guides/integrations/vercel-ai-sdk", "de/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Anleitungen", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Anleitungen", "pages": [ - "de/guides/projects/private-rag-bot", - "de/guides/projects/private-research-agent", - "de/guides/projects/security-code-reviewer", - "de/guides/projects/rust-llm-gateway" + "de/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "Modelle", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "Modellkatalog", "pages": [ "de/models/overview", "de/models/text", @@ -1200,7 +1372,26 @@ ] }, { - "tab": "API Reference", + "tab": "Demos", + "icon": "layout-grid", + "pages": [ + { + "group": "Demos", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "de/guides/projects/overview", + "de/guides/projects/private-rag-bot", + "de/guides/projects/private-research-agent", + "de/guides/projects/security-code-reviewer", + "de/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "API-Referenz", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -1210,13 +1401,15 @@ "de/api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "de/api-reference/endpoint/chat/completions", "de/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "Bilder", + "expanded": true, "pages": [ "de/api-reference/endpoint/image/generate", "de/api-reference/endpoint/image/upscale", @@ -1229,6 +1422,7 @@ }, { "group": "Audio", + "expanded": true, "pages": [ "de/api-reference/endpoint/audio/speech", "de/api-reference/endpoint/audio/transcriptions", @@ -1240,6 +1434,7 @@ }, { "group": "Video", + "expanded": true, "pages": [ "de/api-reference/endpoint/video/queue", "de/api-reference/endpoint/video/transcriptions", @@ -1250,6 +1445,7 @@ }, { "group": "Tools", + "expanded": true, "pages": [ "de/api-reference/endpoint/augment/text-parser", "de/api-reference/endpoint/augment/scrape", @@ -1260,12 +1456,14 @@ }, { "group": "Embeddings", + "expanded": true, "pages": [ "de/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "Modelle", + "expanded": true, "pages": [ "de/api-reference/endpoint/models/list", "de/api-reference/endpoint/models/compatibility_mapping", @@ -1273,7 +1471,8 @@ ] }, { - "group": "API Keys", + "group": "API-Schlüssel", + "expanded": true, "pages": [ "de/api-reference/endpoint/api_keys/list", "de/api-reference/endpoint/api_keys/get", @@ -1285,14 +1484,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "API-Schlüssel-Limits", + "expanded": true, "pages": [ "de/api-reference/endpoint/api_keys/rate_limits", "de/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "Charaktere", + "expanded": true, "pages": [ "de/api-reference/endpoint/characters/get", "de/api-reference/endpoint/characters/list", @@ -1300,7 +1501,8 @@ ] }, { - "group": "Billing", + "group": "Abrechnung", + "expanded": true, "pages": [ "de/api-reference/endpoint/billing/balance", "de/api-reference/endpoint/billing/usage", @@ -1309,6 +1511,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "de/api-reference/endpoint/x402/balance", "de/api-reference/endpoint/x402/top-up", @@ -1320,11 +1523,13 @@ ] }, { - "tab": "Changelog", + "tab": "Änderungen", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "Status", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -1333,34 +1538,27 @@ "language": "es", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Documentación", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Documentación", + "icon": "book", + "expanded": true, "pages": [ "es/overview/about-venice", - "es/overview/getting-started", - "es/overview/privacy", "es/overview/pricing", "es/overview/deprecations", - "es/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "es/guides/overview" + "es/overview/beta-models", + "es/overview/privacy" ] }, { - "group": "Getting Started", + "group": "Primeros pasos", "icon": "rocket", + "expanded": true, "pages": [ + "es/overview/getting-started", "es/guides/getting-started/generating-api-key", "es/guides/getting-started/generating-api-key-agent", "es/guides/getting-started/openai-migration", @@ -1368,31 +1566,40 @@ ] }, { - "group": "Text & Chat", + "group": "Texto y chat", "icon": "message", + "expanded": true, "pages": [ "es/guides/features/structured-responses", "es/guides/features/reasoning-models", + "es/guides/features/function-calling", + "es/guides/features/vision", "es/guides/features/file-inputs", + "es/guides/features/embeddings", "es/guides/features/prompt-caching", "es/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Imagen, vídeo y audio", + "icon": "photo", + "expanded": true, "pages": [ "es/guides/media/image-generation", "es/guides/media/image-editing", + "es/guides/media/image-upscaling", "es/guides/media/video-generation", "es/guides/media/reference-to-video", + "es/guides/media/text-to-speech", + "es/guides/media/speech-to-text", "es/guides/media/voice-cloning", "es/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "Agentes e integraciones", "icon": "robot", + "expanded": true, "pages": [ "es/guides/integrations/ai-agents", "es/guides/integrations/openclaw-bot", @@ -1405,17 +1612,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "es/guides/integrations/venice-mcp", - "es/guides/integrations/venice-skills", - "es/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "Herramientas de código", "icon": "terminal", + "expanded": true, "pages": [ "es/guides/integrations/claude-code", "es/guides/integrations/cursor", @@ -1424,31 +1623,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "Herramientas para agentes", + "icon": "tool", + "expanded": true, + "pages": [ + "es/guides/integrations/venice-mcp", + "es/guides/integrations/venice-skills", + "es/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDK y frameworks", + "icon": "package", + "expanded": true, "pages": [ "es/guides/integrations/langchain", "es/guides/integrations/vercel-ai-sdk", "es/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Guías", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Guías", "pages": [ - "es/guides/projects/private-rag-bot", - "es/guides/projects/private-research-agent", - "es/guides/projects/security-code-reviewer", - "es/guides/projects/rust-llm-gateway" + "es/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "Modelos", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "Catálogo de modelos", "pages": [ "es/models/overview", "es/models/text", @@ -1463,7 +1676,26 @@ ] }, { - "tab": "API Reference", + "tab": "Demos", + "icon": "layout-grid", + "pages": [ + { + "group": "Demos", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "es/guides/projects/overview", + "es/guides/projects/private-rag-bot", + "es/guides/projects/private-research-agent", + "es/guides/projects/security-code-reviewer", + "es/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "Referencia de la API", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -1473,13 +1705,15 @@ "es/api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "es/api-reference/endpoint/chat/completions", "es/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "Imágenes", + "expanded": true, "pages": [ "es/api-reference/endpoint/image/generate", "es/api-reference/endpoint/image/upscale", @@ -1492,6 +1726,7 @@ }, { "group": "Audio", + "expanded": true, "pages": [ "es/api-reference/endpoint/audio/speech", "es/api-reference/endpoint/audio/transcriptions", @@ -1502,7 +1737,8 @@ ] }, { - "group": "Video", + "group": "Vídeo", + "expanded": true, "pages": [ "es/api-reference/endpoint/video/queue", "es/api-reference/endpoint/video/transcriptions", @@ -1512,7 +1748,8 @@ ] }, { - "group": "Tools", + "group": "Herramientas", + "expanded": true, "pages": [ "es/api-reference/endpoint/augment/text-parser", "es/api-reference/endpoint/augment/scrape", @@ -1523,12 +1760,14 @@ }, { "group": "Embeddings", + "expanded": true, "pages": [ "es/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "Modelos", + "expanded": true, "pages": [ "es/api-reference/endpoint/models/list", "es/api-reference/endpoint/models/compatibility_mapping", @@ -1536,7 +1775,8 @@ ] }, { - "group": "API Keys", + "group": "Claves de API", + "expanded": true, "pages": [ "es/api-reference/endpoint/api_keys/list", "es/api-reference/endpoint/api_keys/get", @@ -1548,14 +1788,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "Límites de las claves de API", + "expanded": true, "pages": [ "es/api-reference/endpoint/api_keys/rate_limits", "es/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "Personajes", + "expanded": true, "pages": [ "es/api-reference/endpoint/characters/get", "es/api-reference/endpoint/characters/list", @@ -1563,7 +1805,8 @@ ] }, { - "group": "Billing", + "group": "Facturación", + "expanded": true, "pages": [ "es/api-reference/endpoint/billing/balance", "es/api-reference/endpoint/billing/usage", @@ -1572,6 +1815,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "es/api-reference/endpoint/x402/balance", "es/api-reference/endpoint/x402/top-up", @@ -1583,11 +1827,13 @@ ] }, { - "tab": "Changelog", + "tab": "Cambios", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "Estado", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -1596,34 +1842,27 @@ "language": "fr", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "Documentation", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "Documentation", + "icon": "book", + "expanded": true, "pages": [ "fr/overview/about-venice", - "fr/overview/getting-started", - "fr/overview/privacy", "fr/overview/pricing", "fr/overview/deprecations", - "fr/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "fr/guides/overview" + "fr/overview/beta-models", + "fr/overview/privacy" ] }, { - "group": "Getting Started", + "group": "Démarrage", "icon": "rocket", + "expanded": true, "pages": [ + "fr/overview/getting-started", "fr/guides/getting-started/generating-api-key", "fr/guides/getting-started/generating-api-key-agent", "fr/guides/getting-started/openai-migration", @@ -1631,31 +1870,40 @@ ] }, { - "group": "Text & Chat", + "group": "Texte et chat", "icon": "message", + "expanded": true, "pages": [ "fr/guides/features/structured-responses", "fr/guides/features/reasoning-models", + "fr/guides/features/function-calling", + "fr/guides/features/vision", "fr/guides/features/file-inputs", + "fr/guides/features/embeddings", "fr/guides/features/prompt-caching", "fr/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "Image, vidéo et audio", + "icon": "photo", + "expanded": true, "pages": [ "fr/guides/media/image-generation", "fr/guides/media/image-editing", + "fr/guides/media/image-upscaling", "fr/guides/media/video-generation", "fr/guides/media/reference-to-video", + "fr/guides/media/text-to-speech", + "fr/guides/media/speech-to-text", "fr/guides/media/voice-cloning", "fr/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "Agents et intégrations", "icon": "robot", + "expanded": true, "pages": [ "fr/guides/integrations/ai-agents", "fr/guides/integrations/openclaw-bot", @@ -1668,17 +1916,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "fr/guides/integrations/venice-mcp", - "fr/guides/integrations/venice-skills", - "fr/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "Outils de code", "icon": "terminal", + "expanded": true, "pages": [ "fr/guides/integrations/claude-code", "fr/guides/integrations/cursor", @@ -1687,31 +1927,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "Outils pour agents", + "icon": "tool", + "expanded": true, + "pages": [ + "fr/guides/integrations/venice-mcp", + "fr/guides/integrations/venice-skills", + "fr/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDK et frameworks", + "icon": "package", + "expanded": true, "pages": [ "fr/guides/integrations/langchain", "fr/guides/integrations/vercel-ai-sdk", "fr/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "Guides", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "Guides", "pages": [ - "fr/guides/projects/private-rag-bot", - "fr/guides/projects/private-research-agent", - "fr/guides/projects/security-code-reviewer", - "fr/guides/projects/rust-llm-gateway" + "fr/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "Modèles", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "Catalogue de modèles", "pages": [ "fr/models/overview", "fr/models/text", @@ -1726,7 +1980,26 @@ ] }, { - "tab": "API Reference", + "tab": "Démos", + "icon": "layout-grid", + "pages": [ + { + "group": "Démos", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "fr/guides/projects/overview", + "fr/guides/projects/private-rag-bot", + "fr/guides/projects/private-research-agent", + "fr/guides/projects/security-code-reviewer", + "fr/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "Référence de l'API", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -1736,6 +2009,7 @@ "fr/api-reference/error-codes", { "group": "Chat", + "expanded": true, "pages": [ "fr/api-reference/endpoint/chat/completions", "fr/api-reference/endpoint/chat/model_feature_suffix" @@ -1743,6 +2017,7 @@ }, { "group": "Images", + "expanded": true, "pages": [ "fr/api-reference/endpoint/image/generate", "fr/api-reference/endpoint/image/upscale", @@ -1755,6 +2030,7 @@ }, { "group": "Audio", + "expanded": true, "pages": [ "fr/api-reference/endpoint/audio/speech", "fr/api-reference/endpoint/audio/transcriptions", @@ -1765,7 +2041,8 @@ ] }, { - "group": "Video", + "group": "Vidéo", + "expanded": true, "pages": [ "fr/api-reference/endpoint/video/queue", "fr/api-reference/endpoint/video/transcriptions", @@ -1775,7 +2052,8 @@ ] }, { - "group": "Tools", + "group": "Outils", + "expanded": true, "pages": [ "fr/api-reference/endpoint/augment/text-parser", "fr/api-reference/endpoint/augment/scrape", @@ -1786,12 +2064,14 @@ }, { "group": "Embeddings", + "expanded": true, "pages": [ "fr/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "Modèles", + "expanded": true, "pages": [ "fr/api-reference/endpoint/models/list", "fr/api-reference/endpoint/models/compatibility_mapping", @@ -1799,7 +2079,8 @@ ] }, { - "group": "API Keys", + "group": "Clés d'API", + "expanded": true, "pages": [ "fr/api-reference/endpoint/api_keys/list", "fr/api-reference/endpoint/api_keys/get", @@ -1811,14 +2092,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "Limites des clés d'API", + "expanded": true, "pages": [ "fr/api-reference/endpoint/api_keys/rate_limits", "fr/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "Personnages", + "expanded": true, "pages": [ "fr/api-reference/endpoint/characters/get", "fr/api-reference/endpoint/characters/list", @@ -1826,7 +2109,8 @@ ] }, { - "group": "Billing", + "group": "Facturation", + "expanded": true, "pages": [ "fr/api-reference/endpoint/billing/balance", "fr/api-reference/endpoint/billing/usage", @@ -1835,6 +2119,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "fr/api-reference/endpoint/x402/balance", "fr/api-reference/endpoint/x402/top-up", @@ -1846,11 +2131,13 @@ ] }, { - "tab": "Changelog", + "tab": "Journal des modifications", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "Statut", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -1859,34 +2146,27 @@ "language": "zh", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "文档", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "文档", + "icon": "book", + "expanded": true, "pages": [ "zh/overview/about-venice", - "zh/overview/getting-started", - "zh/overview/privacy", "zh/overview/pricing", "zh/overview/deprecations", - "zh/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "zh/guides/overview" + "zh/overview/beta-models", + "zh/overview/privacy" ] }, { - "group": "Getting Started", + "group": "快速开始", "icon": "rocket", + "expanded": true, "pages": [ + "zh/overview/getting-started", "zh/guides/getting-started/generating-api-key", "zh/guides/getting-started/generating-api-key-agent", "zh/guides/getting-started/openai-migration", @@ -1894,31 +2174,40 @@ ] }, { - "group": "Text & Chat", + "group": "文本与聊天", "icon": "message", + "expanded": true, "pages": [ "zh/guides/features/structured-responses", "zh/guides/features/reasoning-models", + "zh/guides/features/function-calling", + "zh/guides/features/vision", "zh/guides/features/file-inputs", + "zh/guides/features/embeddings", "zh/guides/features/prompt-caching", "zh/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "图像、视频与音频", + "icon": "photo", + "expanded": true, "pages": [ "zh/guides/media/image-generation", "zh/guides/media/image-editing", + "zh/guides/media/image-upscaling", "zh/guides/media/video-generation", "zh/guides/media/reference-to-video", + "zh/guides/media/text-to-speech", + "zh/guides/media/speech-to-text", "zh/guides/media/voice-cloning", "zh/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "智能体与集成", "icon": "robot", + "expanded": true, "pages": [ "zh/guides/integrations/ai-agents", "zh/guides/integrations/openclaw-bot", @@ -1931,17 +2220,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "zh/guides/integrations/venice-mcp", - "zh/guides/integrations/venice-skills", - "zh/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "编程工具", "icon": "terminal", + "expanded": true, "pages": [ "zh/guides/integrations/claude-code", "zh/guides/integrations/cursor", @@ -1950,31 +2231,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "智能体工具", + "icon": "tool", + "expanded": true, + "pages": [ + "zh/guides/integrations/venice-mcp", + "zh/guides/integrations/venice-skills", + "zh/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDK 与框架", + "icon": "package", + "expanded": true, "pages": [ "zh/guides/integrations/langchain", "zh/guides/integrations/vercel-ai-sdk", "zh/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "指南", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "指南", "pages": [ - "zh/guides/projects/private-rag-bot", - "zh/guides/projects/private-research-agent", - "zh/guides/projects/security-code-reviewer", - "zh/guides/projects/rust-llm-gateway" + "zh/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "模型", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "模型目录", "pages": [ "zh/models/overview", "zh/models/text", @@ -1989,7 +2284,26 @@ ] }, { - "tab": "API Reference", + "tab": "演示", + "icon": "layout-grid", + "pages": [ + { + "group": "演示", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "zh/guides/projects/overview", + "zh/guides/projects/private-rag-bot", + "zh/guides/projects/private-research-agent", + "zh/guides/projects/security-code-reviewer", + "zh/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "API 参考", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -1998,14 +2312,16 @@ "zh/api-reference/rate-limiting", "zh/api-reference/error-codes", { - "group": "Chat", + "group": "聊天", + "expanded": true, "pages": [ "zh/api-reference/endpoint/chat/completions", "zh/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "图像", + "expanded": true, "pages": [ "zh/api-reference/endpoint/image/generate", "zh/api-reference/endpoint/image/upscale", @@ -2017,7 +2333,8 @@ ] }, { - "group": "Audio", + "group": "音频", + "expanded": true, "pages": [ "zh/api-reference/endpoint/audio/speech", "zh/api-reference/endpoint/audio/transcriptions", @@ -2028,7 +2345,8 @@ ] }, { - "group": "Video", + "group": "视频", + "expanded": true, "pages": [ "zh/api-reference/endpoint/video/queue", "zh/api-reference/endpoint/video/transcriptions", @@ -2038,7 +2356,8 @@ ] }, { - "group": "Tools", + "group": "工具", + "expanded": true, "pages": [ "zh/api-reference/endpoint/augment/text-parser", "zh/api-reference/endpoint/augment/scrape", @@ -2048,13 +2367,15 @@ ] }, { - "group": "Embeddings", + "group": "嵌入", + "expanded": true, "pages": [ "zh/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "模型", + "expanded": true, "pages": [ "zh/api-reference/endpoint/models/list", "zh/api-reference/endpoint/models/compatibility_mapping", @@ -2062,7 +2383,8 @@ ] }, { - "group": "API Keys", + "group": "API 密钥", + "expanded": true, "pages": [ "zh/api-reference/endpoint/api_keys/list", "zh/api-reference/endpoint/api_keys/get", @@ -2074,14 +2396,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "API 密钥速率限制", + "expanded": true, "pages": [ "zh/api-reference/endpoint/api_keys/rate_limits", "zh/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "角色", + "expanded": true, "pages": [ "zh/api-reference/endpoint/characters/get", "zh/api-reference/endpoint/characters/list", @@ -2089,7 +2413,8 @@ ] }, { - "group": "Billing", + "group": "账单", + "expanded": true, "pages": [ "zh/api-reference/endpoint/billing/balance", "zh/api-reference/endpoint/billing/usage", @@ -2098,6 +2423,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "zh/api-reference/endpoint/x402/balance", "zh/api-reference/endpoint/x402/top-up", @@ -2109,11 +2435,13 @@ ] }, { - "tab": "Changelog", + "tab": "更新日志", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "状态", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -2122,34 +2450,27 @@ "language": "ko", "tabs": [ { - "tab": "Overview", - "groups": [ + "tab": "문서", + "icon": "book", + "pages": [ { - "group": "Overview", + "group": "문서", + "icon": "book", + "expanded": true, "pages": [ "ko/overview/about-venice", - "ko/overview/getting-started", - "ko/overview/privacy", "ko/overview/pricing", "ko/overview/deprecations", - "ko/overview/beta-models" - ] - } - ] - }, - { - "tab": "Guides", - "groups": [ - { - "group": "Guides", - "pages": [ - "ko/guides/overview" + "ko/overview/beta-models", + "ko/overview/privacy" ] }, { - "group": "Getting Started", + "group": "시작하기", "icon": "rocket", + "expanded": true, "pages": [ + "ko/overview/getting-started", "ko/guides/getting-started/generating-api-key", "ko/guides/getting-started/generating-api-key-agent", "ko/guides/getting-started/openai-migration", @@ -2157,31 +2478,40 @@ ] }, { - "group": "Text & Chat", + "group": "텍스트 및 채팅", "icon": "message", + "expanded": true, "pages": [ "ko/guides/features/structured-responses", "ko/guides/features/reasoning-models", + "ko/guides/features/function-calling", + "ko/guides/features/vision", "ko/guides/features/file-inputs", + "ko/guides/features/embeddings", "ko/guides/features/prompt-caching", "ko/guides/features/tee-e2ee-models" ] }, { - "group": "Image & Video", - "icon": "image", + "group": "이미지, 비디오 및 오디오", + "icon": "photo", + "expanded": true, "pages": [ "ko/guides/media/image-generation", "ko/guides/media/image-editing", + "ko/guides/media/image-upscaling", "ko/guides/media/video-generation", "ko/guides/media/reference-to-video", + "ko/guides/media/text-to-speech", + "ko/guides/media/speech-to-text", "ko/guides/media/voice-cloning", "ko/guides/media/video-upscaling" ] }, { - "group": "Agents & Integrations", + "group": "에이전트 및 통합", "icon": "robot", + "expanded": true, "pages": [ "ko/guides/integrations/ai-agents", "ko/guides/integrations/openclaw-bot", @@ -2194,17 +2524,9 @@ ] }, { - "group": "Agent Tooling", - "icon": "screwdriver-wrench", - "pages": [ - "ko/guides/integrations/venice-mcp", - "ko/guides/integrations/venice-skills", - "ko/guides/integrations/venice-video-harness" - ] - }, - { - "group": "Coding Tools", + "group": "코딩 도구", "icon": "terminal", + "expanded": true, "pages": [ "ko/guides/integrations/claude-code", "ko/guides/integrations/cursor", @@ -2213,31 +2535,45 @@ ] }, { - "group": "SDKs & Frameworks", - "icon": "puzzle-piece", + "group": "에이전트 도구", + "icon": "tool", + "expanded": true, + "pages": [ + "ko/guides/integrations/venice-mcp", + "ko/guides/integrations/venice-skills", + "ko/guides/integrations/venice-video-harness" + ] + }, + { + "group": "SDK 및 프레임워크", + "icon": "package", + "expanded": true, "pages": [ "ko/guides/integrations/langchain", "ko/guides/integrations/vercel-ai-sdk", "ko/guides/integrations/crewai" ] - }, + } + ] + }, + { + "tab": "가이드", + "groups": [ { - "group": "Projects", - "icon": "hammer", + "group": "가이드", "pages": [ - "ko/guides/projects/private-rag-bot", - "ko/guides/projects/private-research-agent", - "ko/guides/projects/security-code-reviewer", - "ko/guides/projects/rust-llm-gateway" + "ko/guides/overview" ] } - ] + ], + "hidden": true }, { - "tab": "Models", + "tab": "모델", + "icon": "box", "groups": [ { - "group": "Model Catalog", + "group": "모델 카탈로그", "pages": [ "ko/models/overview", "ko/models/text", @@ -2252,7 +2588,26 @@ ] }, { - "tab": "API Reference", + "tab": "데모", + "icon": "layout-grid", + "pages": [ + { + "group": "데모", + "icon": "layout-grid", + "expanded": true, + "pages": [ + "ko/guides/projects/overview", + "ko/guides/projects/private-rag-bot", + "ko/guides/projects/private-research-agent", + "ko/guides/projects/security-code-reviewer", + "ko/guides/projects/rust-llm-gateway" + ] + } + ] + }, + { + "tab": "API 레퍼런스", + "icon": "code", "groups": [ { "group": "Venice APIs", @@ -2261,14 +2616,16 @@ "ko/api-reference/rate-limiting", "ko/api-reference/error-codes", { - "group": "Chat", + "group": "채팅", + "expanded": true, "pages": [ "ko/api-reference/endpoint/chat/completions", "ko/api-reference/endpoint/chat/model_feature_suffix" ] }, { - "group": "Images", + "group": "이미지", + "expanded": true, "pages": [ "ko/api-reference/endpoint/image/generate", "ko/api-reference/endpoint/image/upscale", @@ -2280,7 +2637,8 @@ ] }, { - "group": "Audio", + "group": "오디오", + "expanded": true, "pages": [ "ko/api-reference/endpoint/audio/speech", "ko/api-reference/endpoint/audio/transcriptions", @@ -2291,7 +2649,8 @@ ] }, { - "group": "Video", + "group": "비디오", + "expanded": true, "pages": [ "ko/api-reference/endpoint/video/queue", "ko/api-reference/endpoint/video/transcriptions", @@ -2301,7 +2660,8 @@ ] }, { - "group": "Tools", + "group": "도구", + "expanded": true, "pages": [ "ko/api-reference/endpoint/augment/text-parser", "ko/api-reference/endpoint/augment/scrape", @@ -2311,13 +2671,15 @@ ] }, { - "group": "Embeddings", + "group": "임베딩", + "expanded": true, "pages": [ "ko/api-reference/endpoint/embeddings/generate" ] }, { - "group": "Models", + "group": "모델", + "expanded": true, "pages": [ "ko/api-reference/endpoint/models/list", "ko/api-reference/endpoint/models/compatibility_mapping", @@ -2325,7 +2687,8 @@ ] }, { - "group": "API Keys", + "group": "API 키", + "expanded": true, "pages": [ "ko/api-reference/endpoint/api_keys/list", "ko/api-reference/endpoint/api_keys/get", @@ -2337,14 +2700,16 @@ ] }, { - "group": "API Key Rate Limits", + "group": "API 키 속도 제한", + "expanded": true, "pages": [ "ko/api-reference/endpoint/api_keys/rate_limits", "ko/api-reference/endpoint/api_keys/rate_limit_logs" ] }, { - "group": "Characters", + "group": "캐릭터", + "expanded": true, "pages": [ "ko/api-reference/endpoint/characters/get", "ko/api-reference/endpoint/characters/list", @@ -2352,7 +2717,8 @@ ] }, { - "group": "Billing", + "group": "결제", + "expanded": true, "pages": [ "ko/api-reference/endpoint/billing/balance", "ko/api-reference/endpoint/billing/usage", @@ -2361,6 +2727,7 @@ }, { "group": "X402", + "expanded": true, "pages": [ "ko/api-reference/endpoint/x402/balance", "ko/api-reference/endpoint/x402/top-up", @@ -2372,11 +2739,13 @@ ] }, { - "tab": "Changelog", + "tab": "변경 사항", + "icon": "history", "href": "https://featurebase.venice.ai/changelog" }, { - "tab": "Status Page", + "tab": "상태", + "icon": "activity", "href": "https://veniceai-status.com" } ] @@ -2401,12 +2770,7 @@ } }, "navbar": { - "links": [ - { - "label": "Featured Media", - "href": "https://venice.ai/media" - } - ], + "links": [], "primary": { "type": "button", "label": "Try Venice", @@ -2581,6 +2945,14 @@ { "source": "/models/audio", "destination": "/models/text-to-speech" + }, + { + "source": "/overview/getting-started", + "destination": "/getting-started/quick-start", + "permanent": true } - ] -} \ No newline at end of file + ], + "icons": { + "library": "tabler" + } +} diff --git a/es/guides/features/embeddings.mdx b/es/guides/features/embeddings.mdx new file mode 100644 index 00000000..d262f2ea --- /dev/null +++ b/es/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Genera embeddings vectoriales con Venice para búsqueda semántica, recuperación RAG, clustering y recomendaciones usando el endpoint /embeddings." +'og:title': "Embeddings | Documentación de la API de Venice" +'og:description': "Aprende a generar embeddings vectoriales con la API de Venice." +--- + +Los embeddings convierten texto en vectores que capturan significado semántico. Úsalos para búsqueda, generación aumentada por recuperación (RAG), clustering, recomendaciones, deduplicación y puntuación de similitud. + +El endpoint de embeddings de Venice es compatible con OpenAI. Envía una cadena o un arreglo de cadenas a `/embeddings` y almacena los vectores devueltos en tu base de datos o índice vectorial. + +## Uso básico + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Entradas por lotes + +Pasa un arreglo de cadenas para generar embeddings de varios textos en una sola solicitud: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +La respuesta conserva el orden de entrada. Almacena cada vector junto con el ID del texto de origen, los metadatos y el ID del modelo de embeddings. + +## Flujo de trabajo común + +1. Divide los documentos de origen en fragmentos. +2. Genera embeddings para cada fragmento. +3. Almacena los vectores y metadatos en una base de datos vectorial. +4. Genera el embedding de la consulta del usuario. +5. Recupera los fragmentos cercanos. +6. Envía el contexto recuperado a un modelo de chat. + +Para una implementación completa, consulta [Crear un bot RAG privado](/guides/projects/private-rag-bot). + +## Selección de modelo + +Utiliza la página de [Modelos de Embeddings](/models/embeddings) para comparar los modelos de embeddings actuales, sus dimensiones y precios. + + +Usa el mismo modelo de embeddings para indexar y consultar. Mezclar modelos puede hacer que las puntuaciones de similitud no sean fiables porque los espacios vectoriales no son intercambiables. + + +## Recursos relacionados + +- [API de Embeddings](/api-reference/endpoint/embeddings/generate) +- [Modelos de Embeddings](/models/embeddings) +- [Guía del bot RAG privado](/guides/projects/private-rag-bot) diff --git a/es/guides/features/function-calling.mdx b/es/guides/features/function-calling.mdx new file mode 100644 index 00000000..f47985e0 --- /dev/null +++ b/es/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Llamada a funciones" +description: "Permite que los modelos de chat de Venice llamen a las herramientas de tu aplicación con llamada a funciones compatible con OpenAI y la API de chat completions." +'og:title': "Llamada a funciones | Documentación de la API de Venice" +'og:description': "Aprende a usar la llamada a funciones con los modelos de chat de Venice." +--- + +La llamada a funciones permite que un modelo elija llamadas estructuradas a herramientas que tu aplicación puede ejecutar. El modelo no ejecuta la función por sí mismo. Devuelve el nombre de la función y sus argumentos, tu código ejecuta la función y luego envías el resultado de vuelta al modelo. + +Usa la llamada a funciones cuando el modelo necesite datos en vivo, acciones de la aplicación, búsquedas en bases de datos o cálculos deterministas. + +## Definición básica de herramientas + +Define herramientas con el arreglo `tools` compatible con OpenAI: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Ejecutar la herramienta + +Cuando el modelo elige una herramienta, inspecciona `message.tool_calls`, analiza los argumentos, ejecuta la función de tu aplicación y luego envía el resultado de vuelta como un mensaje `tool`. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Elige un modelo + +El soporte para llamada a funciones depende del modelo. Usa la página de [Modelos de Texto](/models/text) o la [API de Modelos](/api-reference/endpoint/models/list) para encontrar modelos con `supportsFunctionCalling`. + + +Trata los argumentos de las herramientas como entrada no confiable. Valida los argumentos antes de usarlos en consultas a bases de datos, comandos de shell, pagos u otras operaciones con efectos secundarios. + + +## Consejos de diseño + +- Mantén los nombres y descripciones de las herramientas breves y literales. +- Usa JSON Schema para facilitar que el modelo produzca argumentos válidos. +- Prefiere herramientas específicas con entradas claras en lugar de una herramienta amplia con muchos comportamientos opcionales. +- Devuelve resultados de herramienta concisos para que la respuesta final tenga suficiente contexto sin desperdiciar tokens. + +## Recursos relacionados + +- [API de Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelos de Texto](/models/text) +- [Guía de Respuestas Estructuradas](/guides/features/structured-responses) +- [Integración con LangChain](/guides/integrations/langchain#function-calling-with-agents) diff --git a/es/guides/features/vision.mdx b/es/guides/features/vision.mdx new file mode 100644 index 00000000..70d6a9bd --- /dev/null +++ b/es/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Visión" +description: "Analiza imágenes con los modelos de chat de Venice con capacidad de visión usando contenido multimodal en la API de chat completions compatible con OpenAI." +'og:title': "Visión | Documentación de la API de Venice" +'og:description': "Aprende a enviar imágenes a los modelos de visión de Venice." +--- + +Los modelos de visión pueden analizar imágenes junto con prompts de texto. Úsalos para comprensión de imágenes, extracción, clasificación, respuesta a preguntas visuales y razonamiento multimodal. + +Venice admite mensajes de chat multimodales compatibles con OpenAI. Coloca bloques de texto e imagen en el mismo mensaje de usuario y envía la solicitud a un modelo con capacidad de visión. + +## Uso básico + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Usar imágenes en base64 + +También puedes pasar una URL de datos en base64 cuando la imagen sea local o privada: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Elige un modelo de visión + +Usa la página de [Modelos de Texto](/models/text) o la [API de Modelos](/api-reference/endpoint/models/list) para encontrar modelos que admitan visión. El soporte para visión se indica en las capacidades del modelo. + + +Para entradas de tipo documento, usa [Entradas de archivo](/guides/features/file-inputs) cuando quieras que Venice extraiga texto de un archivo. Usa visión cuando importe el propio diseño visual o contenido de la imagen. + + +## Consejos para prompts + +- Indícale al modelo en qué debe enfocarse: objetos, texto, diseño, seguridad, defectos o diferencias. +- Solicita salida estructurada cuando tu aplicación necesite campos que puedas analizar. +- Mantén las URLs de imágenes accesibles para la API o usa URLs de datos base64 para imágenes privadas. +- Usa un modelo con suficiente contexto si combinas imágenes con instrucciones largas. + +## Recursos relacionados + +- [API de Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelos de Texto](/models/text) +- [Guía de Entradas de archivo](/guides/features/file-inputs) +- [Guía de Respuestas Estructuradas](/guides/features/structured-responses) diff --git a/es/guides/media/image-upscaling.mdx b/es/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..2c417d2b --- /dev/null +++ b/es/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Escalado de imágenes" +description: "Mejora y escala imágenes con la API síncrona de escalado de imágenes de Venice usando entrada en base64 y salida binaria de imagen." +'og:title': "Escalado de imágenes | Documentación de la API de Venice" +'og:description': "Aprende a mejorar y escalar imágenes con la API de Venice." +--- + +El escalado de imágenes mejora la resolución y la calidad visual de una imagen existente. Envía una imagen codificada en base64 a `/image/upscale`, elige un factor de escala y Venice devolverá la imagen mejorada como datos binarios. + +Usa el escalado de imágenes cuando ya tengas una imagen y quieras una salida de mayor resolución. Usa [generación de imágenes](/guides/media/image-generation) cuando necesites crear una imagen a partir de un prompt, y [edición de imágenes](/guides/media/image-editing) cuando necesites cambiar el contenido de la imagen. + +## Uso básico + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Parámetros + +| Parámetro | Tipo | Requerido | Descripción | +|-----------|------|----------|-------------| +| `image` | string | Sí | Imagen de origen codificada en base64. | +| `scale` | number | No | Factor de escalado. Usa los valores admitidos indicados en la referencia de la API y en el catálogo de modelos. | + + +La respuesta son datos binarios de imagen, no JSON. Escribe el cuerpo de la respuesta directamente en un archivo o envíalo por stream al almacenamiento. + + +## Consejos de entrada + +- Comienza con la imagen de origen más limpia que tengas. El escalado mejora el detalle, pero no puede recuperar por completo la información que no está presente. +- Usa factores de escala moderados para flujos de trabajo en producción. Las salidas muy grandes pueden aumentar la latencia y el tamaño del archivo. +- Conserva la imagen original por si necesitas comparar la calidad o reintentar con distintas configuraciones. + +## Recursos relacionados + +- [API de Escalado de Imágenes](/api-reference/endpoint/image/upscale) +- [Modelos de Imagen](/models/image) +- [Guía de Edición de Imágenes](/guides/media/image-editing) diff --git a/es/guides/media/speech-to-text.mdx b/es/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..c13d27bc --- /dev/null +++ b/es/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Voz a texto" +description: "Transcribe archivos de audio con los modelos de voz a texto de Venice usando el endpoint /audio/transcriptions compatible con OpenAI." +'og:title': "Voz a texto | Documentación de la API de Venice" +'og:description': "Aprende a transcribir archivos de audio con la API de Venice." +--- + +La voz a texto transcribe audio hablado a texto escrito. Envía un archivo de audio a `/audio/transcriptions`, elige un modelo de transcripción y selecciona el formato de respuesta que deseas recibir. + +## Uso básico + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Entradas admitidas + +Los formatos de audio comunes incluyen `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac` y `ogg`. Consulta la página de [Modelos de Voz a Texto](/models/speech-to-text) para conocer el soporte de modelos y precios actuales. + +## Formatos de respuesta + +| Formato | Cuándo usarlo | +|--------|----------| +| `json` | Quieres una respuesta sencilla `{ "text": "..." }`. | +| `text` | Quieres texto plano sin análisis de JSON. | +| `srt` | Necesitas subtítulos SubRip. | +| `vtt` | Necesitas subtítulos WebVTT. | +| `verbose_json` | Necesitas metadatos más detallados de marcas de tiempo y segmentos. | + + +Usa formatos de subtítulos cuando la transcripción se combine con la reproducción de contenido multimedia. Usa `json` o `text` cuando la transcripción alimente resúmenes, búsqueda o prompts de chat posteriores. + + +## Consejos para producción + +- Mantén el audio claro y evita solapamientos entre hablantes cuando sea posible. +- Divide las grabaciones muy largas en fragmentos más pequeños si tu flujo de trabajo necesita menor latencia o reintentos más sencillos. +- Almacena la ruta original del audio, el ID del modelo y el formato de respuesta con cada transcripción para facilitar la auditoría. + +## Recursos relacionados + +- [API de Transcripciones de Audio](/api-reference/endpoint/audio/transcriptions) +- [Modelos de Voz a Texto](/models/speech-to-text) +- [Guía de Texto a Voz](/guides/media/text-to-speech) diff --git a/es/guides/media/text-to-speech.mdx b/es/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..825bde17 --- /dev/null +++ b/es/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Texto a voz" +description: "Genera audio hablado a partir de texto con los modelos de texto a voz de Venice, voces específicas por modelo y el endpoint /audio/speech." +'og:title': "Texto a voz | Documentación de la API de Venice" +'og:description': "Aprende a convertir texto en voz con la API de Venice." +--- + +El texto a voz convierte texto escrito en audio hablado. Elige un modelo de TTS, selecciona una voz admitida por ese modelo, envía el texto a `/audio/speech` y guarda la respuesta binaria de audio. + +Usa esta guía para la generación de voz estándar. Si quieres crear voz a partir de una voz de referencia personalizada, consulta [Clonación de voz](/guides/media/voice-cloning). + +## Uso básico + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Elige un modelo y una voz + +Las voces son específicas de cada modelo. El valor de `voice` debe ser válido para el `model` que elijas. + +Usa la página de [Modelos de Texto a Voz](/models/text-to-speech) para explorar los modelos y voces disponibles. El selector de voces muestra los IDs de voz exactos que debes pasar en tu solicitud. + + +Los IDs de voz distinguen entre mayúsculas y minúsculas. Si cambias de modelo TTS, actualiza el valor de `voice` al mismo tiempo. + + +## Estructura de la solicitud + +| Parámetro | Tipo | Requerido | Descripción | +|-----------|------|----------|-------------| +| `model` | string | Sí | ID del modelo de texto a voz. | +| `voice` | string | Sí | ID de voz admitido por el modelo seleccionado. | +| `input` | string | Sí | Texto a sintetizar. | + +## Consejos para producción + +- Almacena en caché el audio generado cuando el texto de origen y la voz se reutilicen. +- Normaliza y revisa el texto antes de sintetizarlo. La puntuación afecta el ritmo y la entonación. +- Guarda la salida con la extensión de archivo correcta según el formato de respuesta del modelo. + +## Recursos relacionados + +- [API de Voz de Audio](/api-reference/endpoint/audio/speech) +- [Modelos de Texto a Voz](/models/text-to-speech) +- [Guía de Clonación de Voz](/guides/media/voice-cloning) diff --git a/es/guides/overview.mdx b/es/guides/overview.mdx index 6694d270..4eb01c2f 100644 --- a/es/guides/overview.mdx +++ b/es/guides/overview.mdx @@ -1,53 +1,62 @@ --- title: Guías -description: "Guías prácticas de la API de Venice: claves, migración desde OpenAI, respuestas estructuradas, archivos, caching, medios y agentes." +description: Guías prácticas de la API de Venice sobre claves de API, migración desde OpenAI, capacidades de chat, embeddings, medios e integraciones con agentes. --- -Usa estas guías para generar API keys, migrar aplicaciones OpenAI existentes, habilitar funciones específicas de Venice y conectar Venice con frameworks de agentes, herramientas de programación y flujos de trabajo multimedia. +Usa estas guías para generar claves de API, migrar aplicaciones existentes de OpenAI, habilitar capacidades específicas de Venice y conectar Venice a frameworks de agentes, herramientas de codificación y flujos de trabajo multimedia. - - Crea y gestiona API keys desde el dashboard de Venice. + + Crea y administra claves de API desde el panel de Venice. Cambia aplicaciones compatibles con OpenAI a Venice cambiando la URL base. - Solicita respuestas que cumplan con un schema JSON. + Solicita respuestas que coincidan con un esquema JSON. + + + Permite que los modelos llamen a las herramientas de tu aplicación con argumentos estructurados. + + + Analiza imágenes con modelos de chat multimodales. + + + Genera vectores para búsqueda semántica, RAG y recomendaciones. - Envía documentos y archivos fuente a los modelos de chat. + Envía documentos y archivos de origen a los modelos de chat. - - Reduce la latencia y el coste para contenido de prompt repetido. + + Reduce la latencia y el costo para contenido de prompt repetido. - Construye un agente de investigación en Python que recoge fuentes y escribe informes con citas. + Crea un agente de investigación en Python que recopila fuentes y escribe informes con citas. -## Explora por tema +## Explorar por tema - - API keys, migración, creación autónoma de claves y Postman. + + Claves de API, migración, creación autónoma de claves y Postman. - Salidas estructuradas, modelos de razonamiento, entradas de archivo, prompt caching y modelos con privacidad mejorada. + Salidas estructuradas, modelos de razonamiento, llamada a funciones, visión, embeddings, entradas de archivo, caché de prompts y modelos con privacidad mejorada. - - Generación de imágenes, edición de imágenes, generación de vídeo, referencias y escalado. + + Generación de imágenes, edición de imágenes, escalado, generación de video, texto a voz, voz a texto y clonación de voz. - Apps de agentes, herramientas de asistente, RPC cripto, autenticación con monedero e integraciones de la comunidad. + Aplicaciones de agentes, herramientas de asistente, RPC de criptomonedas, autenticación de wallets e integraciones de la comunidad. - + Usa modelos de Venice con Claude Code, Cursor, OpenCode y Codex CLI. Construye con LangChain, Vercel AI SDK y CrewAI. - Crea tus propios proyectos usando uno de nuestros tutoriales de proyectos. + Crea tus propios proyectos usando uno de nuestros recorridos guiados. diff --git a/es/guides/projects/overview.mdx b/es/guides/projects/overview.mdx new file mode 100644 index 00000000..6f18a21a --- /dev/null +++ b/es/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Demos y proyectos" +sidebarTitle: "Resumen" +description: "Proyectos de demostración completos construidos sobre la API de Venice, con código funcional que puedes ejecutar, leer y adaptar a tus propias aplicaciones." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Bot RAG privado

+

Respuestas fundamentadas y citables a partir de tus propios documentos con recuperación reordenada.

+
+ Qdrant + FastEmbed + Reordenación +
+
+ Leer la guía + GitHub +
+
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Agente de investigación privado

+

Planifica búsquedas, lee fuentes web y redacta informes en Markdown con citas.

+
+ Scrape API + Planificador + Informes citados +
+
+ Leer la guía + GitHub +
+
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Revisor de seguridad de código

+

Encuentra vulnerabilidades atómicas y las encadena en rutas de explotación.

+
+ Mapa AST del repo + Pydantic + Dos agentes +
+
+ Leer la guía + GitHub +
+
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Gateway LLM en Rust

+

Un gateway compatible con OpenAI con autenticación, límites de tasa, streaming y telemetría.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+
+ Leer la guía + GitHub +
+
Joshua Mo · Jul 2026
+
+
diff --git a/es/models/overview.mdx b/es/models/overview.mdx index 1c393154..b20b163f 100644 --- a/es/models/overview.mdx +++ b/es/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "Modelos" +title: "Todos los modelos" +sidebarTitle: "Todos los modelos" description: "Catálogo de todos los modelos disponibles en la API de Venice para texto, imagen, vídeo, audio, embeddings y voz, con capacidades, precios e IDs de modelo." "og:title": "Models | Venice API Docs" mode: "wide" diff --git a/fr/guides/features/embeddings.mdx b/fr/guides/features/embeddings.mdx new file mode 100644 index 00000000..36f43df6 --- /dev/null +++ b/fr/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Générez des embeddings vectoriels avec Venice pour la recherche sémantique, la récupération RAG, le clustering et les recommandations à l'aide du point de terminaison /embeddings." +'og:title': "Embeddings | Documentation de l'API Venice" +'og:description': "Apprenez à générer des embeddings vectoriels avec l'API Venice." +--- + +Les embeddings convertissent le texte en vecteurs qui capturent le sens sémantique. Utilisez-les pour la recherche, la génération augmentée par récupération (RAG), le clustering, les recommandations, la déduplication et le calcul de similarité. + +Le point de terminaison d'embeddings de Venice est compatible avec OpenAI. Envoyez une chaîne de caractères ou un tableau de chaînes à `/embeddings`, puis stockez les vecteurs retournés dans votre base de données ou votre index vectoriel. + +## Utilisation de base + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Entrées par lots + +Passez un tableau de chaînes pour embarquer plusieurs textes en une seule requête : + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +La réponse conserve l'ordre des entrées. Stockez chaque vecteur avec l'identifiant du texte source, les métadonnées et l'identifiant du modèle d'embedding. + +## Flux de travail courant + +1. Découpez les documents sources en fragments. +2. Générez les embeddings pour chaque fragment. +3. Stockez les vecteurs et les métadonnées dans une base de données vectorielle. +4. Générez l'embedding de la requête utilisateur. +5. Récupérez les fragments proches. +6. Envoyez le contexte récupéré à un modèle de chat. + +Pour une implémentation complète, consultez [Créer un bot RAG privé](/guides/projects/private-rag-bot). + +## Choix du modèle + +Consultez la page [Modèles d'embeddings](/models/embeddings) pour comparer les modèles d'embeddings actuels, leurs dimensions et leurs tarifs. + + +Utilisez le même modèle d'embedding pour l'indexation et l'interrogation. Mélanger les modèles peut rendre les scores de similarité peu fiables car les espaces vectoriels ne sont pas interchangeables. + + +## Ressources connexes + +- [API Embeddings](/api-reference/endpoint/embeddings/generate) +- [Modèles d'embeddings](/models/embeddings) +- [Guide du bot RAG privé](/guides/projects/private-rag-bot) diff --git a/fr/guides/features/function-calling.mdx b/fr/guides/features/function-calling.mdx new file mode 100644 index 00000000..05f6e6e5 --- /dev/null +++ b/fr/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Appel de fonctions" +description: "Permettez aux modèles de chat Venice d'appeler les outils de votre application avec l'appel de fonctions compatible OpenAI et l'API de complétions de chat." +'og:title': "Appel de fonctions | Documentation de l'API Venice" +'og:description': "Apprenez à utiliser l'appel de fonctions avec les modèles de chat Venice." +--- + +L'appel de fonctions permet au modèle de choisir des appels d'outils structurés que votre application peut exécuter. Le modèle n'exécute pas la fonction lui-même. Il retourne le nom de la fonction et ses arguments, votre code exécute la fonction, et vous renvoyez le résultat au modèle. + +Utilisez l'appel de fonctions lorsque le modèle a besoin de données en direct, d'actions applicatives, de recherches en base de données ou de calculs déterministes. + +## Définition d'outil de base + +Définissez les outils avec le tableau `tools` compatible OpenAI : + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Exécuter l'outil + +Lorsque le modèle choisit un outil, inspectez `message.tool_calls`, analysez les arguments, exécutez la fonction de votre application, puis renvoyez le résultat sous forme de message `tool`. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Choisir un modèle + +La prise en charge de l'appel de fonctions dépend du modèle. Consultez la page [Modèles de texte](/models/text) ou l'[API Models](/api-reference/endpoint/models/list) pour trouver les modèles avec `supportsFunctionCalling`. + + +Traitez les arguments d'outil comme une entrée non fiable. Validez les arguments avant de les utiliser dans des requêtes de base de données, des commandes shell, des paiements ou d'autres opérations à effet de bord. + + +## Conseils de conception + +- Gardez les noms et descriptions d'outils courts et littéraux. +- Utilisez JSON Schema pour faciliter la génération d'arguments valides par le modèle. +- Préférez des outils restreints avec des entrées claires à un outil unique et large avec de nombreux comportements optionnels. +- Retournez des résultats d'outils concis afin que la réponse finale ait suffisamment de contexte sans gaspiller de jetons. + +## Ressources connexes + +- [API Chat Completions](/api-reference/endpoint/chat/completions) +- [Modèles de texte](/models/text) +- [Guide des réponses structurées](/guides/features/structured-responses) +- [Intégration LangChain](/guides/integrations/langchain#function-calling-with-agents) diff --git a/fr/guides/features/vision.mdx b/fr/guides/features/vision.mdx new file mode 100644 index 00000000..7da858e6 --- /dev/null +++ b/fr/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Vision" +description: "Analysez des images avec les modèles de chat Venice compatibles avec la vision en utilisant du contenu de message multimodal dans l'API de complétions de chat compatible OpenAI." +'og:title': "Vision | Documentation de l'API Venice" +'og:description': "Apprenez à envoyer des images aux modèles de vision Venice." +--- + +Les modèles de vision peuvent analyser des images en même temps que des invites textuelles. Utilisez-les pour la compréhension d'images, l'extraction, la classification, la réponse aux questions visuelles et le raisonnement multimodal. + +Venice prend en charge les messages de chat multimodaux compatibles OpenAI. Placez des blocs de texte et d'image dans le même message utilisateur, puis envoyez la requête à un modèle compatible avec la vision. + +## Utilisation de base + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Utiliser des images en base64 + +Vous pouvez également transmettre une URL de données en base64 lorsque l'image est locale ou privée : + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Choisir un modèle de vision + +Consultez la page [Modèles de texte](/models/text) ou l'[API Models](/api-reference/endpoint/models/list) pour trouver les modèles qui prennent en charge la vision. La prise en charge de la vision est indiquée dans les capacités du modèle. + + +Pour les entrées de type document, utilisez les [Entrées de fichier](/guides/features/file-inputs) lorsque vous souhaitez que Venice extraie le texte d'un fichier. Utilisez la vision lorsque la mise en page visuelle ou le contenu de l'image lui-même est important. + + +## Conseils de rédaction d'invites + +- Indiquez au modèle ce sur quoi se concentrer : objets, texte, mise en page, sécurité, défauts ou différences. +- Demandez une sortie structurée lorsque votre application a besoin de champs analysables. +- Gardez les URL d'images accessibles à l'API, ou utilisez des URL de données en base64 pour les images privées. +- Utilisez un modèle avec un contexte suffisant si vous combinez des images avec de longues instructions. + +## Ressources connexes + +- [API Chat Completions](/api-reference/endpoint/chat/completions) +- [Modèles de texte](/models/text) +- [Guide des entrées de fichier](/guides/features/file-inputs) +- [Guide des réponses structurées](/guides/features/structured-responses) diff --git a/fr/guides/media/image-upscaling.mdx b/fr/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..ac185574 --- /dev/null +++ b/fr/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Agrandissement d'image" +description: "Améliorez et agrandissez des images avec l'API synchrone d'agrandissement d'image de Venice en utilisant une entrée en base64 et une sortie image binaire." +'og:title': "Agrandissement d'image | Documentation de l'API Venice" +'og:description': "Apprenez à améliorer et agrandir des images avec l'API Venice." +--- + +L'agrandissement d'image améliore la résolution et la qualité visuelle d'une image existante. Envoyez une image encodée en base64 à `/image/upscale`, choisissez un facteur d'échelle, et Venice retourne l'image améliorée sous forme de données binaires. + +Utilisez l'agrandissement d'image lorsque vous disposez déjà d'une image et souhaitez obtenir une sortie de plus haute résolution. Utilisez la [génération d'image](/guides/media/image-generation) lorsque vous devez créer une image à partir d'une invite, et l'[édition d'image](/guides/media/image-editing) lorsque vous devez modifier le contenu de l'image. + +## Utilisation de base + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Paramètres + +| Paramètre | Type | Requis | Description | +|-----------|------|--------|-------------| +| `image` | string | Oui | Image source encodée en base64. | +| `scale` | number | Non | Facteur d'agrandissement. Utilisez les valeurs prises en charge listées dans la référence de l'API et le catalogue de modèles. | + + +La réponse est constituée de données d'image binaires, et non de JSON. Écrivez le corps de la réponse directement dans un fichier ou envoyez-le en flux vers le stockage. + + +## Conseils sur l'entrée + +- Commencez avec l'image source la plus nette dont vous disposez. L'agrandissement améliore les détails, mais ne peut pas récupérer entièrement les informations absentes. +- Utilisez des facteurs d'échelle modérés pour les flux de production. Des sorties très grandes peuvent augmenter la latence et la taille des fichiers. +- Conservez l'image originale si vous devez comparer la qualité ou réessayer avec d'autres paramètres. + +## Ressources connexes + +- [API Image Upscale](/api-reference/endpoint/image/upscale) +- [Modèles d'image](/models/image) +- [Guide d'édition d'image](/guides/media/image-editing) diff --git a/fr/guides/media/speech-to-text.mdx b/fr/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..c34e2910 --- /dev/null +++ b/fr/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Reconnaissance vocale" +description: "Transcrivez des fichiers audio avec les modèles de reconnaissance vocale de Venice à l'aide du point de terminaison /audio/transcriptions compatible OpenAI." +'og:title': "Reconnaissance vocale | Documentation de l'API Venice" +'og:description': "Apprenez à transcrire des fichiers audio avec l'API Venice." +--- + +La reconnaissance vocale transcrit l'audio parlé en texte écrit. Envoyez un fichier audio à `/audio/transcriptions`, choisissez un modèle de transcription et sélectionnez le format de réponse que vous souhaitez recevoir. + +## Utilisation de base + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Entrées prises en charge + +Les formats audio courants incluent `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac` et `ogg`. Consultez la page [Modèles de reconnaissance vocale](/models/speech-to-text) pour connaître les modèles actuellement pris en charge et les tarifs. + +## Formats de réponse + +| Format | À utiliser lorsque | +|--------|-------------------| +| `json` | Vous souhaitez une réponse simple `{ "text": "..." }`. | +| `text` | Vous souhaitez du texte brut sans analyse JSON. | +| `srt` | Vous avez besoin de sous-titres SubRip. | +| `vtt` | Vous avez besoin de sous-titres WebVTT. | +| `verbose_json` | Vous avez besoin de métadonnées de segments et d'horodatages plus riches. | + + +Utilisez les formats de sous-titres lorsque la transcription sera associée à la lecture d'un média. Utilisez `json` ou `text` lorsque la transcription alimente la synthèse, la recherche ou des invites de chat en aval. + + +## Conseils pour la production + +- Gardez l'audio clair et évitez les locuteurs qui se chevauchent lorsque possible. +- Découpez les enregistrements très longs en fragments plus petits si votre flux de travail nécessite une latence plus faible ou des réessais plus faciles. +- Stockez le chemin audio d'origine, l'identifiant du modèle et le format de réponse avec chaque transcription pour la traçabilité. + +## Ressources connexes + +- [API Audio Transcriptions](/api-reference/endpoint/audio/transcriptions) +- [Modèles de reconnaissance vocale](/models/speech-to-text) +- [Guide de synthèse vocale](/guides/media/text-to-speech) diff --git a/fr/guides/media/text-to-speech.mdx b/fr/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..e6526157 --- /dev/null +++ b/fr/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Synthèse vocale" +description: "Générez de l'audio parlé à partir de texte avec les modèles de synthèse vocale de Venice, des voix spécifiques au modèle et le point de terminaison /audio/speech." +'og:title': "Synthèse vocale | Documentation de l'API Venice" +'og:description': "Apprenez à convertir du texte en parole avec l'API Venice." +--- + +La synthèse vocale transforme du texte écrit en audio parlé. Choisissez un modèle TTS, sélectionnez une voix prise en charge par ce modèle, envoyez le texte à `/audio/speech` et enregistrez la réponse audio binaire. + +Utilisez ce guide pour la génération de voix standard. Si vous souhaitez créer de la parole à partir d'une voix de référence personnalisée, consultez [Clonage de voix](/guides/media/voice-cloning). + +## Utilisation de base + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Choisir un modèle et une voix + +Les voix sont spécifiques au modèle. La valeur `voice` doit être valide pour le `model` choisi. + +Consultez la page [Modèles de synthèse vocale](/models/text-to-speech) pour parcourir les modèles et les voix disponibles. Le sélecteur de voix indique les identifiants exacts à transmettre dans votre requête. + + +Les identifiants de voix sont sensibles à la casse. Si vous changez de modèle TTS, mettez à jour la valeur `voice` en même temps. + + +## Forme de la requête + +| Paramètre | Type | Requis | Description | +|-----------|------|--------|-------------| +| `model` | string | Oui | Identifiant du modèle de synthèse vocale. | +| `voice` | string | Oui | Identifiant de voix pris en charge par le modèle sélectionné. | +| `input` | string | Oui | Texte à synthétiser. | + +## Conseils pour la production + +- Mettez en cache l'audio généré lorsque le texte source et la voix sont réutilisés. +- Normalisez et relisez le texte avant la synthèse. La ponctuation influence le rythme et l'intonation. +- Stockez la sortie avec l'extension de fichier appropriée au format de réponse du modèle. + +## Ressources connexes + +- [API Audio Speech](/api-reference/endpoint/audio/speech) +- [Modèles de synthèse vocale](/models/text-to-speech) +- [Guide de clonage de voix](/guides/media/voice-cloning) diff --git a/fr/guides/overview.mdx b/fr/guides/overview.mdx index 14fbe2d4..8d72c0c1 100644 --- a/fr/guides/overview.mdx +++ b/fr/guides/overview.mdx @@ -1,25 +1,34 @@ --- title: Guides -description: "Guides pratiques de l'API Venice : clés d'API, migration OpenAI, réponses structurées, entrées de fichiers, cache de prompts, médias et agents." +description: Guides pratiques de l'API Venice pour les clés API, la migration depuis OpenAI, les capacités de chat, les embeddings, les médias et les intégrations d'agents. --- -Utilisez ces guides pour générer des clés API, migrer des applications OpenAI existantes, activer les fonctionnalités spécifiques à Venice, et connecter Venice à des frameworks d'agents, des outils de codage et des workflows multimédias. +Utilisez ces guides pour générer des clés API, migrer les applications OpenAI existantes, activer les capacités spécifiques à Venice, et connecter Venice à des frameworks d'agents, des outils de codage et des flux de travail médias. - Créez et gérez les clés API depuis le tableau de bord Venice. + Créez et gérez des clés API depuis le tableau de bord Venice. Basculez les applications compatibles OpenAI vers Venice en changeant l'URL de base. - Demandez des réponses correspondant à un schéma JSON. + Demandez des réponses qui correspondent à un schéma JSON. - - Envoyez des documents et fichiers sources aux modèles de chat. + + Permettez aux modèles d'appeler les outils de votre application avec des arguments structurés. - - Réduisez la latence et le coût pour le contenu de prompt répété. + + Analysez des images avec des modèles de chat multimodaux. + + + Générez des vecteurs pour la recherche sémantique, le RAG et les recommandations. + + + Envoyez des documents et des fichiers sources aux modèles de chat. + + + Réduisez la latence et le coût pour le contenu d'invite répété. Construisez un agent de recherche Python qui collecte des sources et rédige des rapports cités. @@ -29,25 +38,25 @@ Utilisez ces guides pour générer des clés API, migrer des applications OpenAI ## Explorer par sujet - - Clés API, migration, création de clés autonomes et Postman. + + Clés API, migration, création autonome de clés et Postman. - Sorties structurées, modèles de raisonnement, entrées de fichiers, mise en cache des prompts et modèles à confidentialité renforcée. + Sorties structurées, modèles de raisonnement, appel de fonctions, vision, embeddings, entrées de fichier, mise en cache des invites et modèles à confidentialité renforcée. - - Génération d'image, édition d'image, génération vidéo, références et agrandissement. + + Génération d'image, édition d'image, agrandissement, génération de vidéo, synthèse vocale, reconnaissance vocale et clonage de voix. - Applications d'agent, outils d'assistant, RPC crypto, authentification par portefeuille et intégrations communautaires. + Applications d'agents, outils d'assistant, RPC crypto, authentification de portefeuille et intégrations communautaires. Utilisez les modèles Venice avec Claude Code, Cursor, OpenCode et Codex CLI. - Construisez avec LangChain, Vercel AI SDK et CrewAI. + Développez avec LangChain, le SDK IA Vercel et CrewAI. - Construisez vos propres projets en utilisant l'un de nos tutoriels. + Construisez vos propres projets en suivant l'un de nos tutoriels de projets. diff --git a/fr/guides/projects/overview.mdx b/fr/guides/projects/overview.mdx new file mode 100644 index 00000000..a6f5efc5 --- /dev/null +++ b/fr/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Démos et projets" +sidebarTitle: "Aperçu" +description: "Des projets de démonstration complets construits sur l'API Venice, avec du code fonctionnel que vous pouvez exécuter, lire et adapter à vos propres applications." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Bot RAG privé

+

Des réponses fondées et citables à partir de vos propres documents grâce à une recherche ré-ordonnée.

+
+ Qdrant + FastEmbed + Ré-ordonnancement +
+ +
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Agent de recherche privé

+

Planifie des recherches, lit des sources web et rédige des rapports Markdown avec citations.

+
+ Scrape API + Planificateur + Rapports cités +
+ +
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Réviseur de sécurité du code

+

Détecte les vulnérabilités atomiques et les enchaîne en chemins d'exploitation.

+
+ Carte AST du dépôt + Pydantic + Deux agents +
+ +
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Passerelle LLM en Rust

+

Une passerelle compatible OpenAI avec authentification, limites de débit, streaming et télémétrie.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+ +
Joshua Mo · Jul 2026
+
+
diff --git a/fr/models/overview.mdx b/fr/models/overview.mdx index ea980947..8e188920 100644 --- a/fr/models/overview.mdx +++ b/fr/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "Modèles" +title: "Tous les modèles" +sidebarTitle: "Tous les modèles" description: "Catalogue de tous les modèles disponibles sur l'API Venice — texte, image, vidéo, audio, embeddings et parole — avec capacités, tarification et ID de modèles." "og:title": "Modèles | Venice API Docs" mode: "wide" diff --git a/getting-started/quick-start.mdx b/getting-started/quick-start.mdx new file mode 100644 index 00000000..8fd27162 --- /dev/null +++ b/getting-started/quick-start.mdx @@ -0,0 +1,397 @@ +--- +title: "Quickstart" +description: "Quickstart for the Venice API — generate an API key, send your first chat completion, and explore image, video, and audio endpoints in minutes." +og:title: "Quickstart | Venice API Docs" +--- + +Get up and running with the Venice API in minutes. Generate an API key, make your first request, and start building. + +## Quickstart + + + + Head to your [Venice API Settings](https://venice.ai/settings/api) and generate a new API key. + + For a detailed walkthrough, check out the [API Key guide](/guides/getting-started/generating-api-key). + + + Add your API key to your environment. You can export it in your shell: + + ```bash + export VENICE_API_KEY='your-api-key-here' + ``` + + Or add it to a `.env` file in your project: + + ```bash + VENICE_API_KEY=your-api-key-here + ``` + + + Venice is OpenAI-compatible, so you can use the OpenAI SDK. If you prefer to use cURL or raw HTTP requests, you can skip this step. + + + + ```bash Python + pip install openai + ``` + + ```bash Node.js + npm install openai + ``` + + + + + + + ```python Python + 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) + ``` + + ```javascript Node.js + 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); + ``` + + ```bash cURL + 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?"} + ] + }' + ``` + + + + **Message roles:** + + - `system` - Instructions for how the model should behave + - `user` - Your prompts or questions + - `assistant` - Previous model responses (for multi-turn conversations) + - `tool` - Function calling results (when using tools) + + + Every request includes a `model` ID. To use a different model, change the `model` value in your request. Popular choices: + + - `zai-org-glm-5` - Default model for most use cases + - `kimi-k2-6` - Strong reasoning for more complex tasks + - `claude-opus-4-8` - High-intelligence model for complex tasks + - `venice-uncensored-1-2` - Venice's uncensored model + + + Browse the complete list of models with pricing, capabilities, and context limits + + + + You can choose to enable Venice-specific features like web search using `venice_parameters`: + + + + ```python Python + 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) + ``` + + ```javascript Node.js + 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); + ``` + + ```bash cURL + 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 + } + }' + ``` + + + + See all [available parameters](https://docs.venice.ai/api-reference/api-spec#venice-parameters). + + + Stream responses in real-time using `stream=True`: + + + + ```python Python + 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="") + ``` + + ```javascript Node.js + 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); + } + } + ``` + + ```bash cURL + 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 + }' + ``` + + + + + Control how the model responds with parameters like temperature, max tokens, and more: + + + + ```python Python + 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) + ``` + + ```javascript Node.js + 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); + ``` + + ```bash cURL + 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 + } + }' + ``` + + + + Check out the [Chat Completions docs](/api-reference/endpoint/chat/completions) for more information on all supported parameters. + + + +--- + +## Next Steps + +Now that you've made your first requests, explore more of what Venice API has to offer: + + + + Compare all available models with their capabilities, pricing, and context limits + + + + Explore detailed API documentation with all endpoints and parameters + + + + Learn how to get JSON responses with guaranteed schemas + + + + Build with agent apps, coding agents, MCP tools, skills, and crypto workflows + + + +### Additional Resources + + + + Understand rate limits and best practices for production usage + + + + Reference for handling API errors and troubleshooting issues + + + + Import our complete Postman collection for easy testing + + + + Learn about Venice's privacy-first architecture and data handling + + + +--- + +## Need Help? + +- **Discord Community**: Join our [Discord server](https://discord.gg/askvenice) for support and discussions +- **Documentation**: Browse our [complete API reference](/api-reference/api-spec) +- **Status Page**: Check service status at [veniceai-status.com](https://veniceai-status.com) +- **Twitter**: Follow [@AskVenice](https://x.com/AskVenice) for updates + + \ No newline at end of file diff --git a/guides/features/embeddings.mdx b/guides/features/embeddings.mdx new file mode 100644 index 00000000..dd0d8594 --- /dev/null +++ b/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Generate vector embeddings with Venice for semantic search, RAG retrieval, clustering, and recommendations using the /embeddings endpoint." +'og:title': "Embeddings | Venice API Docs" +'og:description': "Learn how to generate vector embeddings with the Venice API." +--- + +Embeddings convert text into vectors that capture semantic meaning. Use them for search, retrieval-augmented generation (RAG), clustering, recommendations, deduplication, and similarity scoring. + +The Venice embeddings endpoint is OpenAI-compatible. Send one string or an array of strings to `/embeddings`, then store the returned vectors in your database or vector index. + +## Basic Usage + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Batch Inputs + +Pass an array of strings to embed multiple texts in one request: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +The response preserves input order. Store each vector with the source text ID, metadata, and embedding model ID. + +## Common Workflow + +1. Split source documents into chunks. +2. Generate embeddings for each chunk. +3. Store vectors and metadata in a vector database. +4. Embed the user's query. +5. Retrieve nearby chunks. +6. Send the retrieved context to a chat model. + +For a complete implementation, see [Building a Private RAG Bot](/guides/projects/private-rag-bot). + +## Model Selection + +Use the [Embedding Models](/models/embeddings) page to compare current embedding models, dimensions, and pricing. + + +Use the same embedding model for indexing and querying. Mixing models can make similarity scores unreliable because vector spaces are not interchangeable. + + +## Related Resources + +- [Embeddings API](/api-reference/endpoint/embeddings/generate) +- [Embedding Models](/models/embeddings) +- [Private RAG Bot Guide](/guides/projects/private-rag-bot) diff --git a/guides/features/function-calling.mdx b/guides/features/function-calling.mdx new file mode 100644 index 00000000..b498e5c5 --- /dev/null +++ b/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Function Calling" +description: "Let Venice chat models call your application tools with OpenAI-compatible function calling and the chat completions API." +'og:title': "Function Calling | Venice API Docs" +'og:description': "Learn how to use function calling with Venice chat models." +--- + +Function calling lets a model choose structured tool calls that your application can execute. The model does not run the function itself. It returns the function name and arguments, your code runs the function, and you send the result back to the model. + +Use function calling when the model needs live data, application actions, database lookups, or deterministic calculations. + +## Basic Tool Definition + +Define tools with the OpenAI-compatible `tools` array: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Execute the Tool + +When the model chooses a tool, inspect `message.tool_calls`, parse the arguments, execute your application function, then send the result back as a `tool` message. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Choose a Model + +Function calling support is model-specific. Use the [Text Models](/models/text) page or the [Models API](/api-reference/endpoint/models/list) to find models with `supportsFunctionCalling`. + + +Treat tool arguments as untrusted input. Validate arguments before using them in database queries, shell commands, payments, or other side-effecting operations. + + +## Design Tips + +- Keep tool names and descriptions short and literal. +- Use JSON Schema to make valid arguments easy for the model to produce. +- Prefer narrow tools with clear inputs over one broad tool with many optional behaviors. +- Return concise tool results so the final answer has enough context without wasting tokens. + +## Related Resources + +- [Chat Completions API](/api-reference/endpoint/chat/completions) +- [Text Models](/models/text) +- [Structured Responses Guide](/guides/features/structured-responses) +- [LangChain Integration](/guides/integrations/langchain#function-calling-with-agents) diff --git a/guides/features/vision.mdx b/guides/features/vision.mdx new file mode 100644 index 00000000..0400e8e9 --- /dev/null +++ b/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Vision" +description: "Analyze images with Venice vision-capable chat models using multimodal message content in the OpenAI-compatible chat completions API." +'og:title': "Vision | Venice API Docs" +'og:description': "Learn how to send images to Venice vision models." +--- + +Vision models can analyze images alongside text prompts. Use them for image understanding, extraction, classification, visual question answering, and multimodal reasoning. + +Venice supports OpenAI-compatible multimodal chat messages. Put text and image blocks in the same user message, then send the request to a vision-capable model. + +## Basic Usage + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Use Base64 Images + +You can also pass a base64 data URL when the image is local or private: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Choose a Vision Model + +Use the [Text Models](/models/text) page or the [Models API](/api-reference/endpoint/models/list) to find models that support vision. Vision support is listed in model capabilities. + + +For document-like inputs, use [File Inputs](/guides/features/file-inputs) when you want Venice to extract text from a file. Use vision when the visual layout or image content itself matters. + + +## Prompting Tips + +- Tell the model what to focus on: objects, text, layout, safety, defects, or differences. +- Ask for structured output when your application needs fields you can parse. +- Keep image URLs accessible to the API, or use base64 data URLs for private images. +- Use a model with enough context if you combine images with long instructions. + +## Related Resources + +- [Chat Completions API](/api-reference/endpoint/chat/completions) +- [Text Models](/models/text) +- [File Inputs Guide](/guides/features/file-inputs) +- [Structured Responses Guide](/guides/features/structured-responses) diff --git a/guides/media/image-upscaling.mdx b/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..eefee019 --- /dev/null +++ b/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Image Upscaling" +description: "Enhance and upscale images with Venice's synchronous image upscale API using base64 input and binary image output." +'og:title': "Image Upscaling | Venice API Docs" +'og:description': "Learn how to enhance and upscale images with the Venice API." +--- + +Image upscaling improves the resolution and visual quality of an existing image. Send a base64-encoded image to `/image/upscale`, choose a scale factor, and Venice returns the enhanced image as binary data. + +Use image upscaling when you already have an image and want a higher-resolution output. Use [image generation](/guides/media/image-generation) when you need to create an image from a prompt, and [image editing](/guides/media/image-editing) when you need to change image content. + +## Basic Usage + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Parameters + +| Parameter | Type | Required | Description | +|-----------|------|----------|-------------| +| `image` | string | Yes | Base64-encoded source image. | +| `scale` | number | No | Upscale factor. Use the supported values listed by the API reference and model catalog. | + + +The response is binary image data, not JSON. Write the response body directly to a file or stream it to storage. + + +## Input Tips + +- Start with the cleanest source image you have. Upscaling improves detail, but it cannot fully recover information that is not present. +- Use moderate scale factors for production workflows. Very large outputs can increase latency and file size. +- Keep the original image around if you need to compare quality or retry with different settings. + +## Related Resources + +- [Image Upscale API](/api-reference/endpoint/image/upscale) +- [Image Models](/models/image) +- [Image Editing Guide](/guides/media/image-editing) diff --git a/guides/media/speech-to-text.mdx b/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..b3ce042b --- /dev/null +++ b/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Speech-to-Text" +description: "Transcribe audio files with Venice speech-to-text models using the OpenAI-compatible /audio/transcriptions endpoint." +'og:title': "Speech-to-Text | Venice API Docs" +'og:description': "Learn how to transcribe audio files with the Venice API." +--- + +Speech-to-text transcribes spoken audio into written text. Send an audio file to `/audio/transcriptions`, choose a transcription model, and select the response format you want back. + +## Basic Usage + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Supported Inputs + +Common audio formats include `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac`, and `ogg`. See the [Speech-to-Text Models](/models/speech-to-text) page for current model support and pricing. + +## Response Formats + +| Format | Use when | +|--------|----------| +| `json` | You want a simple `{ "text": "..." }` response. | +| `text` | You want plain text without JSON parsing. | +| `srt` | You need SubRip subtitles. | +| `vtt` | You need WebVTT subtitles. | +| `verbose_json` | You need richer timestamp and segment metadata. | + + +Use subtitle formats when the transcript will be paired with media playback. Use `json` or `text` when the transcript feeds summarization, search, or downstream chat prompts. + + +## Production Tips + +- Keep audio clear and avoid overlapping speakers when possible. +- Split very long recordings into smaller chunks if your workflow needs lower latency or easier retries. +- Store the original audio path, model ID, and response format with each transcript for auditability. + +## Related Resources + +- [Audio Transcriptions API](/api-reference/endpoint/audio/transcriptions) +- [Speech-to-Text Models](/models/speech-to-text) +- [Text-to-Speech Guide](/guides/media/text-to-speech) diff --git a/guides/media/text-to-speech.mdx b/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..f8d80abe --- /dev/null +++ b/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Text-to-Speech" +description: "Generate spoken audio from text with Venice text-to-speech models, model-specific voices, and the /audio/speech endpoint." +'og:title': "Text-to-Speech | Venice API Docs" +'og:description': "Learn how to convert text to speech with the Venice API." +--- + +Text-to-speech turns written text into spoken audio. Choose a TTS model, select a voice supported by that model, send text to `/audio/speech`, and save the binary audio response. + +Use this guide for standard voice generation. If you want to create speech from a custom reference voice, see [Voice Cloning](/guides/media/voice-cloning). + +## Basic Usage + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Choose a Model and Voice + +Voices are model-specific. The `voice` value must be valid for the `model` you choose. + +Use the [Text-to-Speech Models](/models/text-to-speech) page to browse available models and voices. The voice picker lists the exact voice IDs to pass in your request. + + +Voice IDs are case-sensitive. If you switch TTS models, update the `voice` value at the same time. + + +## Request Shape + +| Parameter | Type | Required | Description | +|-----------|------|----------|-------------| +| `model` | string | Yes | Text-to-speech model ID. | +| `voice` | string | Yes | Voice ID supported by the selected model. | +| `input` | string | Yes | Text to synthesize. | + +## Production Tips + +- Cache generated audio when the source text and voice are reused. +- Normalize and proofread text before synthesis. Punctuation affects pacing and intonation. +- Store output with the correct file extension for the model's response format. + +## Related Resources + +- [Audio Speech API](/api-reference/endpoint/audio/speech) +- [Text-to-Speech Models](/models/text-to-speech) +- [Voice Cloning Guide](/guides/media/voice-cloning) diff --git a/guides/overview.mdx b/guides/overview.mdx index ee0d2703..42c2daf0 100644 --- a/guides/overview.mdx +++ b/guides/overview.mdx @@ -1,9 +1,9 @@ --- title: Guides -description: Practical Venice API guides for API keys, OpenAI migration, structured responses, file inputs, prompt caching, media, and agent integrations. +description: Practical Venice API guides for API keys, OpenAI migration, chat capabilities, embeddings, media, and agent integrations. --- -Use these guides to generate API keys, migrate existing OpenAI apps, enable Venice-specific features, and connect Venice to agent frameworks, coding tools, and media workflows. +Use these guides to generate API keys, migrate existing OpenAI apps, enable Venice-specific capabilities, and connect Venice to agent frameworks, coding tools, and media workflows. @@ -15,6 +15,15 @@ Use these guides to generate API keys, migrate existing OpenAI apps, enable Veni Request responses that match a JSON schema. + + Let models call your application tools with structured arguments. + + + Analyze images with multimodal chat models. + + + Generate vectors for semantic search, RAG, and recommendations. + Send documents and source files to chat models. @@ -33,10 +42,10 @@ Use these guides to generate API keys, migrate existing OpenAI apps, enable Veni API keys, migration, autonomous key creation, and Postman. - Structured outputs, reasoning models, file inputs, prompt caching, and privacy-enhanced models. + Structured outputs, reasoning models, function calling, vision, embeddings, file inputs, prompt caching, and privacy-enhanced models. - - Image generation, image editing, video generation, references, and upscaling. + + Image generation, image editing, upscaling, video generation, text-to-speech, speech-to-text, and voice cloning. Agent apps, assistant tools, crypto RPC, wallet auth, and community integrations. diff --git a/guides/projects/overview.mdx b/guides/projects/overview.mdx new file mode 100644 index 00000000..0216e5a0 --- /dev/null +++ b/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Demos & Projects" +sidebarTitle: "Overview" +description: "End-to-end demo projects built on the Venice API, with working code you can run, read, and adapt for your own apps." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Private RAG Bot

+

Grounded, citable answers from your own documents with re-ranked retrieval.

+
+ Qdrant + FastEmbed + Re-ranking +
+ +
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Private Research Agent

+

Plans searches, reads web sources, and writes cited Markdown briefings.

+
+ Scrape API + Planner + Cited reports +
+ +
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Codebase Security Reviewer

+

Finds atomic vulnerabilities and chains them into exploit paths.

+
+ AST repo map + Pydantic + Two-agent +
+ +
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Rust LLM Gateway

+

An OpenAI-compatible gateway with auth, rate limits, streaming, and telemetry.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+ +
Joshua Mo · Jul 2026
+
+
diff --git a/it/guides/features/embeddings.mdx b/it/guides/features/embeddings.mdx new file mode 100644 index 00000000..96a3989c --- /dev/null +++ b/it/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Genera embedding vettoriali con Venice per ricerca semantica, recupero RAG, clustering e raccomandazioni usando l'endpoint /embeddings." +'og:title': "Embeddings | Documentazione API Venice" +'og:description': "Scopri come generare embedding vettoriali con l'API di Venice." +--- + +Gli embedding convertono il testo in vettori che catturano il significato semantico. Usali per ricerca, generazione aumentata da recupero (RAG), clustering, raccomandazioni, deduplicazione e calcolo della similarità. + +L'endpoint embeddings di Venice è compatibile con OpenAI. Invia una singola stringa o un array di stringhe a `/embeddings`, quindi memorizza i vettori restituiti nel tuo database o indice vettoriale. + +## Utilizzo di Base + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Input in Batch + +Passa un array di stringhe per generare embedding di più testi in una singola richiesta: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +La risposta preserva l'ordine dell'input. Memorizza ogni vettore insieme all'ID del testo di origine, ai metadati e all'ID del modello di embedding. + +## Flusso di Lavoro Tipico + +1. Suddividi i documenti di origine in chunk. +2. Genera gli embedding per ogni chunk. +3. Memorizza vettori e metadati in un database vettoriale. +4. Genera l'embedding della query dell'utente. +5. Recupera i chunk più vicini. +6. Invia il contesto recuperato a un modello di chat. + +Per un'implementazione completa, consulta [Creare un Bot RAG Privato](/guides/projects/private-rag-bot). + +## Scelta del Modello + +Usa la pagina [Modelli di Embedding](/models/embeddings) per confrontare i modelli di embedding disponibili, le dimensioni e i prezzi. + + +Usa lo stesso modello di embedding per l'indicizzazione e per le query. Mescolare modelli diversi può rendere i punteggi di similarità inaffidabili perché gli spazi vettoriali non sono interscambiabili. + + +## Risorse Correlate + +- [API Embeddings](/api-reference/endpoint/embeddings/generate) +- [Modelli di Embedding](/models/embeddings) +- [Guida al Bot RAG Privato](/guides/projects/private-rag-bot) diff --git a/it/guides/features/function-calling.mdx b/it/guides/features/function-calling.mdx new file mode 100644 index 00000000..008233b9 --- /dev/null +++ b/it/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Function Calling" +description: "Permetti ai modelli di chat Venice di richiamare gli strumenti della tua applicazione con function calling compatibile con OpenAI e l'API chat completions." +'og:title': "Function Calling | Documentazione API Venice" +'og:description': "Scopri come usare il function calling con i modelli di chat Venice." +--- + +Il function calling permette a un modello di scegliere chiamate strutturate a strumenti che la tua applicazione può eseguire. Il modello non esegue direttamente la funzione. Restituisce il nome della funzione e gli argomenti, il tuo codice esegue la funzione e tu invii il risultato al modello. + +Usa il function calling quando il modello ha bisogno di dati in tempo reale, azioni applicative, ricerche in un database o calcoli deterministici. + +## Definizione di Base di uno Strumento + +Definisci gli strumenti con l'array `tools` compatibile con OpenAI: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Esecuzione dello Strumento + +Quando il modello sceglie uno strumento, analizza `message.tool_calls`, effettua il parsing degli argomenti, esegui la funzione della tua applicazione e poi invia il risultato come messaggio `tool`. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Scelta di un Modello + +Il supporto al function calling dipende dal modello. Usa la pagina [Modelli di Testo](/models/text) o l'[API Modelli](/api-reference/endpoint/models/list) per trovare modelli con `supportsFunctionCalling`. + + +Considera gli argomenti degli strumenti come input non attendibile. Convalida gli argomenti prima di usarli in query al database, comandi shell, pagamenti o altre operazioni con effetti collaterali. + + +## Consigli di Progettazione + +- Mantieni i nomi e le descrizioni degli strumenti brevi e letterali. +- Usa JSON Schema per rendere semplice al modello la produzione di argomenti validi. +- Preferisci strumenti specifici con input chiari rispetto a un unico strumento generico con molti comportamenti opzionali. +- Restituisci risultati degli strumenti concisi affinché la risposta finale abbia contesto sufficiente senza sprecare token. + +## Risorse Correlate + +- [API Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelli di Testo](/models/text) +- [Guida alle Risposte Strutturate](/guides/features/structured-responses) +- [Integrazione LangChain](/guides/integrations/langchain#function-calling-with-agents) diff --git a/it/guides/features/vision.mdx b/it/guides/features/vision.mdx new file mode 100644 index 00000000..235fe3f0 --- /dev/null +++ b/it/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Vision" +description: "Analizza immagini con i modelli di chat Venice abilitati alla visione usando contenuti multimodali nei messaggi dell'API chat completions compatibile con OpenAI." +'og:title': "Vision | Documentazione API Venice" +'og:description': "Scopri come inviare immagini ai modelli di visione Venice." +--- + +I modelli di visione possono analizzare immagini insieme a prompt testuali. Usali per la comprensione delle immagini, l'estrazione, la classificazione, il visual question answering e il ragionamento multimodale. + +Venice supporta messaggi di chat multimodali compatibili con OpenAI. Inserisci blocchi di testo e immagini nello stesso messaggio utente, quindi invia la richiesta a un modello abilitato alla visione. + +## Utilizzo di Base + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Uso di Immagini Base64 + +Puoi anche passare una data URL in base64 quando l'immagine è locale o privata: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Scelta di un Modello di Visione + +Usa la pagina [Modelli di Testo](/models/text) o l'[API Modelli](/api-reference/endpoint/models/list) per trovare modelli che supportano la visione. Il supporto alla visione è indicato tra le capacità del modello. + + +Per input di tipo documento, usa gli [Input da File](/guides/features/file-inputs) quando desideri che Venice estragga il testo da un file. Usa la visione quando conta il layout visivo o il contenuto stesso dell'immagine. + + +## Consigli sul Prompting + +- Indica al modello su cosa concentrarsi: oggetti, testo, layout, sicurezza, difetti o differenze. +- Richiedi output strutturato quando la tua applicazione ha bisogno di campi che puoi analizzare. +- Assicurati che gli URL delle immagini siano accessibili all'API, oppure usa data URL in base64 per immagini private. +- Usa un modello con contesto sufficiente se combini immagini con istruzioni lunghe. + +## Risorse Correlate + +- [API Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelli di Testo](/models/text) +- [Guida agli Input da File](/guides/features/file-inputs) +- [Guida alle Risposte Strutturate](/guides/features/structured-responses) diff --git a/it/guides/media/image-upscaling.mdx b/it/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..ee8ee561 --- /dev/null +++ b/it/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Upscaling delle Immagini" +description: "Migliora e aumenta la risoluzione delle immagini con l'API sincrona di upscale immagini di Venice, con input in base64 e output binario dell'immagine." +'og:title': "Upscaling delle Immagini | Documentazione API Venice" +'og:description': "Scopri come migliorare e aumentare la risoluzione delle immagini con l'API di Venice." +--- + +L'upscaling delle immagini migliora la risoluzione e la qualità visiva di un'immagine esistente. Invia un'immagine codificata in base64 a `/image/upscale`, scegli un fattore di scala e Venice restituirà l'immagine migliorata come dati binari. + +Usa l'upscaling quando hai già un'immagine e vuoi ottenerne una versione a maggiore risoluzione. Usa la [generazione di immagini](/guides/media/image-generation) quando devi creare un'immagine da un prompt, e l'[editing di immagini](/guides/media/image-editing) quando devi modificare il contenuto di un'immagine. + +## Utilizzo di Base + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Parametri + +| Parametro | Tipo | Obbligatorio | Descrizione | +|-----------|------|--------------|-------------| +| `image` | string | Sì | Immagine sorgente codificata in base64. | +| `scale` | number | No | Fattore di upscaling. Usa i valori supportati elencati nel riferimento API e nel catalogo dei modelli. | + + +La risposta contiene dati binari dell'immagine, non JSON. Scrivi il corpo della risposta direttamente in un file o effettuane lo streaming verso uno storage. + + +## Consigli sull'Input + +- Parti dall'immagine sorgente più pulita a tua disposizione. L'upscaling migliora il dettaglio, ma non può recuperare completamente informazioni non presenti. +- Usa fattori di scala moderati nei flussi di produzione. Output molto grandi possono aumentare la latenza e la dimensione dei file. +- Conserva l'immagine originale nel caso in cui debba confrontare la qualità o riprovare con impostazioni diverse. + +## Risorse Correlate + +- [API Upscale Immagini](/api-reference/endpoint/image/upscale) +- [Modelli di Immagini](/models/image) +- [Guida all'Editing di Immagini](/guides/media/image-editing) diff --git a/it/guides/media/speech-to-text.mdx b/it/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..0b3e3477 --- /dev/null +++ b/it/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Speech-to-Text" +description: "Trascrivi file audio con i modelli speech-to-text di Venice usando l'endpoint /audio/transcriptions compatibile con OpenAI." +'og:title': "Speech-to-Text | Documentazione API Venice" +'og:description': "Scopri come trascrivere file audio con l'API di Venice." +--- + +Lo speech-to-text trascrive l'audio parlato in testo scritto. Invia un file audio a `/audio/transcriptions`, scegli un modello di trascrizione e seleziona il formato di risposta desiderato. + +## Utilizzo di Base + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Input Supportati + +I formati audio comuni includono `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac` e `ogg`. Consulta la pagina [Modelli Speech-to-Text](/models/speech-to-text) per il supporto dei modelli e i prezzi aggiornati. + +## Formati di Risposta + +| Formato | Da usare quando | +|---------|-----------------| +| `json` | Vuoi una risposta semplice del tipo `{ "text": "..." }`. | +| `text` | Vuoi testo semplice senza fare parsing di JSON. | +| `srt` | Hai bisogno di sottotitoli SubRip. | +| `vtt` | Hai bisogno di sottotitoli WebVTT. | +| `verbose_json` | Hai bisogno di timestamp più ricchi e metadati sui segmenti. | + + +Usa i formati per sottotitoli quando la trascrizione verrà abbinata a una riproduzione multimediale. Usa `json` o `text` quando la trascrizione alimenta riassunti, ricerca o prompt di chat a valle. + + +## Consigli per la Produzione + +- Mantieni l'audio chiaro ed evita, se possibile, la sovrapposizione tra parlanti. +- Suddividi registrazioni molto lunghe in chunk più piccoli se il tuo flusso richiede minore latenza o retry più semplici. +- Memorizza il percorso audio originale, l'ID del modello e il formato di risposta insieme a ogni trascrizione per esigenze di tracciabilità. + +## Risorse Correlate + +- [API Audio Transcriptions](/api-reference/endpoint/audio/transcriptions) +- [Modelli Speech-to-Text](/models/speech-to-text) +- [Guida al Text-to-Speech](/guides/media/text-to-speech) diff --git a/it/guides/media/text-to-speech.mdx b/it/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..7d9abdb8 --- /dev/null +++ b/it/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Text-to-Speech" +description: "Genera audio parlato dal testo con i modelli text-to-speech di Venice, voci specifiche per modello e l'endpoint /audio/speech." +'og:title': "Text-to-Speech | Documentazione API Venice" +'og:description': "Scopri come convertire il testo in voce con l'API di Venice." +--- + +Il text-to-speech trasforma il testo scritto in audio parlato. Scegli un modello TTS, seleziona una voce supportata da quel modello, invia il testo a `/audio/speech` e salva la risposta audio binaria. + +Usa questa guida per la generazione vocale standard. Se vuoi creare audio a partire da una voce di riferimento personalizzata, consulta il [Voice Cloning](/guides/media/voice-cloning). + +## Utilizzo di Base + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Scelta di Modello e Voce + +Le voci sono specifiche per modello. Il valore di `voice` deve essere valido per il `model` che scegli. + +Usa la pagina [Modelli Text-to-Speech](/models/text-to-speech) per esplorare i modelli e le voci disponibili. Il selettore delle voci elenca gli ID esatti da passare nella richiesta. + + +Gli ID delle voci fanno distinzione tra maiuscole e minuscole. Se cambi modello TTS, aggiorna contemporaneamente il valore di `voice`. + + +## Struttura della Richiesta + +| Parametro | Tipo | Obbligatorio | Descrizione | +|-----------|------|--------------|-------------| +| `model` | string | Sì | ID del modello text-to-speech. | +| `voice` | string | Sì | ID della voce supportata dal modello selezionato. | +| `input` | string | Sì | Testo da sintetizzare. | + +## Consigli per la Produzione + +- Metti in cache l'audio generato quando il testo sorgente e la voce vengono riutilizzati. +- Normalizza e revisiona il testo prima della sintesi. La punteggiatura influenza ritmo e intonazione. +- Salva l'output con l'estensione di file corretta in base al formato di risposta del modello. + +## Risorse Correlate + +- [API Audio Speech](/api-reference/endpoint/audio/speech) +- [Modelli Text-to-Speech](/models/text-to-speech) +- [Guida al Voice Cloning](/guides/media/voice-cloning) diff --git a/it/guides/overview.mdx b/it/guides/overview.mdx index 31e5529a..ae946b5c 100644 --- a/it/guides/overview.mdx +++ b/it/guides/overview.mdx @@ -1,54 +1,62 @@ --- title: Guide -description: "Guide pratiche per l'API Venice su chiavi API, migrazione da OpenAI, risposte strutturate, file inputs, prompt caching, media e integrazioni con agenti." +description: Guide pratiche all'API Venice per chiavi API, migrazione da OpenAI, capacità di chat, embedding, media e integrazioni con agenti. --- -Usa queste guide per generare API key, migrare app OpenAI esistenti, abilitare funzionalità specifiche di Venice e collegare Venice a framework di agenti, strumenti di coding e workflow multimediali. +Usa queste guide per generare chiavi API, migrare le app OpenAI esistenti, abilitare capacità specifiche di Venice e collegare Venice a framework di agenti, strumenti di coding e flussi di lavoro multimediali. - - Crea e gestisci API key dalla dashboard Venice. + + Crea e gestisci le chiavi API dalla dashboard Venice. - Passa le app compatibili con OpenAI a Venice cambiando il base URL. + Passa le app compatibili con OpenAI a Venice cambiando l'URL di base. - - Richiedi risposte conformi a uno schema JSON. + + Richiedi risposte che aderiscano a uno schema JSON. - - Invia documenti e file sorgente ai modelli chat. + + Permetti ai modelli di richiamare gli strumenti della tua applicazione con argomenti strutturati. - + + Analizza immagini con modelli di chat multimodali. + + + Genera vettori per ricerca semantica, RAG e raccomandazioni. + + + Invia documenti e file sorgente ai modelli di chat. + + Riduci latenza e costi per contenuti di prompt ripetuti. - + Costruisci un agente di ricerca in Python che raccoglie fonti e scrive report con citazioni. -## Esplora per argomento +## Esplora per Argomento - - API key, migrazione, creazione autonoma di chiavi e Postman. + + Chiavi API, migrazione, creazione autonoma di chiavi e Postman. - - Output strutturati, modelli di ragionamento, file inputs, prompt caching e modelli con privacy avanzata. + + Output strutturati, modelli di reasoning, function calling, vision, embedding, input da file, prompt caching e modelli con maggiore privacy. - - Generazione di immagini, image editing, generazione video, riferimenti e upscaling. + + Generazione di immagini, editing di immagini, upscaling, generazione video, text-to-speech, speech-to-text e voice cloning. - - App agent, strumenti per assistenti, crypto RPC, autenticazione tramite wallet e integrazioni della community. + + App di agenti, strumenti per assistenti, RPC crypto, autenticazione con wallet e integrazioni della community. - + Usa i modelli Venice con Claude Code, Cursor, OpenCode e Codex CLI. - + Costruisci con LangChain, Vercel AI SDK e CrewAI. - Crea i tuoi progetti seguendo una delle nostre guide pratiche. + Costruisci i tuoi progetti seguendo una delle nostre guide passo-passo. - diff --git a/it/guides/projects/overview.mdx b/it/guides/projects/overview.mdx new file mode 100644 index 00000000..d57695bd --- /dev/null +++ b/it/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Demo e progetti" +sidebarTitle: "Panoramica" +description: "Progetti demo completi realizzati sull'API di Venice, con codice funzionante che puoi eseguire, leggere e adattare alle tue applicazioni." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Bot RAG privato

+

Risposte fondate e citabili dai tuoi documenti con recupero ri-ordinato.

+
+ Qdrant + FastEmbed + Ri-ordinamento +
+ +
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Agente di ricerca privato

+

Pianifica ricerche, legge fonti web e scrive report Markdown con citazioni.

+
+ Scrape API + Pianificatore + Report citati +
+ +
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Revisore di sicurezza del codice

+

Trova vulnerabilità atomiche e le concatena in percorsi di exploit.

+
+ Mappa AST del repo + Pydantic + Due agenti +
+ +
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Gateway LLM in Rust

+

Un gateway compatibile con OpenAI con autenticazione, limiti di frequenza, streaming e telemetria.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+ +
Joshua Mo · Jul 2026
+
+
diff --git a/it/models/overview.mdx b/it/models/overview.mdx index 3651aa74..872eb7af 100644 --- a/it/models/overview.mdx +++ b/it/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "Modelli" +title: "Tutti i modelli" +sidebarTitle: "Tutti i modelli" description: "Catalogo di tutti i modelli disponibili sull'API Venice per testo, immagini, video, audio, embedding e voce, con capacità, prezzi e ID modello." "og:title": "Models | Venice API Docs" mode: "wide" diff --git a/ko/guides/features/embeddings.mdx b/ko/guides/features/embeddings.mdx new file mode 100644 index 00000000..2fa12b3e --- /dev/null +++ b/ko/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "임베딩" +description: "Venice에서 벡터 임베딩을 생성하여 /embeddings 엔드포인트로 시맨틱 검색, RAG 검색, 클러스터링 및 추천에 활용하세요." +'og:title': "임베딩 | Venice API 문서" +'og:description': "Venice API로 벡터 임베딩을 생성하는 방법을 알아보세요." +--- + +임베딩은 텍스트를 의미를 담은 벡터로 변환합니다. 검색, 검색 증강 생성(RAG), 클러스터링, 추천, 중복 제거 및 유사도 점수 산출에 사용할 수 있습니다. + +Venice 임베딩 엔드포인트는 OpenAI와 호환됩니다. 하나의 문자열 또는 문자열 배열을 `/embeddings`로 전송한 다음, 반환된 벡터를 데이터베이스 또는 벡터 인덱스에 저장하세요. + +## 기본 사용법 + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## 배치 입력 + +여러 텍스트를 한 번의 요청으로 임베딩하려면 문자열 배열을 전달하세요: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +응답은 입력 순서를 보존합니다. 각 벡터를 소스 텍스트 ID, 메타데이터, 임베딩 모델 ID와 함께 저장하세요. + +## 일반적인 워크플로 + +1. 소스 문서를 청크로 분할합니다. +2. 각 청크에 대해 임베딩을 생성합니다. +3. 벡터와 메타데이터를 벡터 데이터베이스에 저장합니다. +4. 사용자의 질의를 임베딩합니다. +5. 근접한 청크를 검색합니다. +6. 검색된 컨텍스트를 채팅 모델에 전달합니다. + +전체 구현은 [비공개 RAG 봇 만들기](/guides/projects/private-rag-bot)를 참조하세요. + +## 모델 선택 + +현재 사용 가능한 임베딩 모델, 차원, 가격을 비교하려면 [임베딩 모델](/models/embeddings) 페이지를 이용하세요. + + +인덱싱과 질의에는 동일한 임베딩 모델을 사용하세요. 서로 다른 모델을 혼합하면 벡터 공간이 호환되지 않아 유사도 점수가 신뢰할 수 없게 됩니다. + + +## 관련 리소스 + +- [임베딩 API](/api-reference/endpoint/embeddings/generate) +- [임베딩 모델](/models/embeddings) +- [비공개 RAG 봇 가이드](/guides/projects/private-rag-bot) diff --git a/ko/guides/features/function-calling.mdx b/ko/guides/features/function-calling.mdx new file mode 100644 index 00000000..e1544d12 --- /dev/null +++ b/ko/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "함수 호출" +description: "OpenAI 호환 함수 호출과 채팅 완성 API로 Venice 채팅 모델이 애플리케이션 도구를 호출하도록 하세요." +'og:title': "함수 호출 | Venice API 문서" +'og:description': "Venice 채팅 모델에서 함수 호출을 사용하는 방법을 알아보세요." +--- + +함수 호출을 이용하면 모델이 애플리케이션이 실행할 수 있는 구조화된 도구 호출을 선택할 수 있습니다. 모델 자체가 함수를 실행하지는 않습니다. 함수 이름과 인수를 반환하면, 여러분의 코드가 함수를 실행하고 그 결과를 모델에 돌려 보냅니다. + +모델이 실시간 데이터, 애플리케이션 동작, 데이터베이스 조회 또는 결정적인 계산을 필요로 할 때 함수 호출을 사용하세요. + +## 기본 도구 정의 + +OpenAI 호환 `tools` 배열로 도구를 정의합니다: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## 도구 실행하기 + +모델이 도구를 선택하면 `message.tool_calls`를 확인하고 인수를 파싱한 뒤 애플리케이션 함수를 실행하고, 그 결과를 `tool` 메시지로 다시 전송합니다. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## 모델 선택 + +함수 호출 지원은 모델에 따라 다릅니다. `supportsFunctionCalling`이 지원되는 모델을 찾으려면 [텍스트 모델](/models/text) 페이지나 [Models API](/api-reference/endpoint/models/list)를 이용하세요. + + +도구 인수는 신뢰할 수 없는 입력으로 간주하세요. 데이터베이스 쿼리, 쉘 명령, 결제 또는 기타 부작용이 있는 작업에 사용하기 전에 인수를 검증하세요. + + +## 설계 팁 + +- 도구 이름과 설명은 짧고 명확하게 유지하세요. +- JSON Schema를 사용해 모델이 유효한 인수를 만들기 쉽도록 하세요. +- 여러 선택적 동작을 가진 하나의 광범위한 도구보다는 입력이 명확한 좁은 도구를 선호하세요. +- 도구 결과는 간결하게 반환해 최종 답변이 토큰 낭비 없이 충분한 컨텍스트를 갖도록 하세요. + +## 관련 리소스 + +- [채팅 완성 API](/api-reference/endpoint/chat/completions) +- [텍스트 모델](/models/text) +- [구조화된 응답 가이드](/guides/features/structured-responses) +- [LangChain 통합](/guides/integrations/langchain#function-calling-with-agents) diff --git a/ko/guides/features/vision.mdx b/ko/guides/features/vision.mdx new file mode 100644 index 00000000..20eee28b --- /dev/null +++ b/ko/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "비전" +description: "OpenAI 호환 채팅 완성 API에서 멀티모달 메시지 콘텐츠를 사용해 Venice 비전 지원 채팅 모델로 이미지를 분석하세요." +'og:title': "비전 | Venice API 문서" +'og:description': "Venice 비전 모델에 이미지를 전송하는 방법을 알아보세요." +--- + +비전 모델은 텍스트 프롬프트와 함께 이미지를 분석할 수 있습니다. 이미지 이해, 정보 추출, 분류, 시각적 질의응답, 멀티모달 추론에 사용하세요. + +Venice는 OpenAI 호환 멀티모달 채팅 메시지를 지원합니다. 동일한 사용자 메시지 안에 텍스트 블록과 이미지 블록을 함께 넣어 비전 지원 모델로 요청을 보내세요. + +## 기본 사용법 + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Base64 이미지 사용하기 + +이미지가 로컬에 있거나 비공개인 경우 base64 데이터 URL을 전달할 수도 있습니다: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## 비전 모델 선택 + +비전을 지원하는 모델을 찾으려면 [텍스트 모델](/models/text) 페이지나 [Models API](/api-reference/endpoint/models/list)를 이용하세요. 비전 지원 여부는 모델 기능 목록에 표시됩니다. + + +문서와 같은 입력이라면, Venice가 파일에서 텍스트를 추출하기 원할 때 [파일 입력](/guides/features/file-inputs)을 사용하세요. 시각적 레이아웃이나 이미지 콘텐츠 자체가 중요할 때는 비전을 사용하세요. + + +## 프롬프트 팁 + +- 모델이 무엇에 집중해야 하는지 알려주세요: 객체, 텍스트, 레이아웃, 안전성, 결함 또는 차이점 등. +- 애플리케이션에서 파싱할 필드가 필요하다면 구조화된 출력을 요청하세요. +- 이미지 URL은 API가 접근 가능해야 하며, 비공개 이미지에는 base64 데이터 URL을 사용하세요. +- 이미지와 긴 지시문을 함께 사용한다면 충분한 컨텍스트를 지원하는 모델을 사용하세요. + +## 관련 리소스 + +- [채팅 완성 API](/api-reference/endpoint/chat/completions) +- [텍스트 모델](/models/text) +- [파일 입력 가이드](/guides/features/file-inputs) +- [구조화된 응답 가이드](/guides/features/structured-responses) diff --git a/ko/guides/media/image-upscaling.mdx b/ko/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..a9ace5bd --- /dev/null +++ b/ko/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "이미지 업스케일링" +description: "base64 입력과 바이너리 이미지 출력을 사용하는 Venice의 동기식 이미지 업스케일 API로 이미지를 향상 및 확대하세요." +'og:title': "이미지 업스케일링 | Venice API 문서" +'og:description': "Venice API로 이미지를 향상하고 업스케일하는 방법을 알아보세요." +--- + +이미지 업스케일링은 기존 이미지의 해상도와 시각적 품질을 향상시킵니다. base64로 인코딩된 이미지를 `/image/upscale`로 전송하고 스케일 배수를 선택하면, Venice가 향상된 이미지를 바이너리 데이터로 반환합니다. + +이미 이미지를 가지고 있고 더 높은 해상도의 출력을 원할 때 이미지 업스케일링을 사용하세요. 프롬프트로부터 이미지를 생성해야 한다면 [이미지 생성](/guides/media/image-generation)을, 이미지 콘텐츠를 변경해야 한다면 [이미지 편집](/guides/media/image-editing)을 사용하세요. + +## 기본 사용법 + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## 매개변수 + +| 매개변수 | 유형 | 필수 여부 | 설명 | +|-----------|------|----------|-------------| +| `image` | string | 예 | base64로 인코딩된 소스 이미지. | +| `scale` | number | 아니요 | 업스케일 배수. API 레퍼런스와 모델 카탈로그에 나열된 지원 값을 사용하세요. | + + +응답은 JSON이 아닌 바이너리 이미지 데이터입니다. 응답 본문을 파일에 직접 쓰거나 스토리지로 스트리밍하세요. + + +## 입력 팁 + +- 최대한 깨끗한 소스 이미지에서 시작하세요. 업스케일링은 세부 정보를 개선하지만, 원본에 없는 정보를 완전히 복원하지는 못합니다. +- 프로덕션 워크플로에서는 적당한 스케일 배수를 사용하세요. 매우 큰 출력은 지연 시간과 파일 크기를 증가시킬 수 있습니다. +- 품질을 비교하거나 다른 설정으로 재시도해야 할 경우를 대비해 원본 이미지를 보관해 두세요. + +## 관련 리소스 + +- [이미지 업스케일 API](/api-reference/endpoint/image/upscale) +- [이미지 모델](/models/image) +- [이미지 편집 가이드](/guides/media/image-editing) diff --git a/ko/guides/media/speech-to-text.mdx b/ko/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..3769446c --- /dev/null +++ b/ko/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "음성-텍스트 변환" +description: "OpenAI 호환 /audio/transcriptions 엔드포인트로 Venice 음성-텍스트 모델을 이용해 오디오 파일을 전사하세요." +'og:title': "음성-텍스트 변환 | Venice API 문서" +'og:description': "Venice API로 오디오 파일을 전사하는 방법을 알아보세요." +--- + +음성-텍스트 변환은 음성 오디오를 문자로 전사합니다. 오디오 파일을 `/audio/transcriptions`로 전송하고 전사 모델을 선택한 뒤 원하는 응답 형식을 지정하세요. + +## 기본 사용법 + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## 지원 입력 + +일반적인 오디오 형식으로는 `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac`, `ogg`가 있습니다. 현재 모델 지원과 가격 정보는 [음성-텍스트 모델](/models/speech-to-text) 페이지를 참조하세요. + +## 응답 형식 + +| 형식 | 사용 시점 | +|--------|----------| +| `json` | 단순한 `{ "text": "..." }` 응답을 원할 때. | +| `text` | JSON 파싱 없이 순수 텍스트를 원할 때. | +| `srt` | SubRip 자막이 필요할 때. | +| `vtt` | WebVTT 자막이 필요할 때. | +| `verbose_json` | 더 풍부한 타임스탬프 및 세그먼트 메타데이터가 필요할 때. | + + +전사 결과를 미디어 재생과 함께 쓸 경우 자막 형식을 사용하세요. 요약, 검색 또는 후속 채팅 프롬프트로 전사 결과를 넘길 때는 `json`이나 `text`를 사용하세요. + + +## 프로덕션 팁 + +- 가능하면 오디오를 선명하게 유지하고 화자가 겹치지 않도록 하세요. +- 워크플로에 낮은 지연 시간이나 손쉬운 재시도가 필요하다면 매우 긴 녹음을 더 작은 청크로 분할하세요. +- 감사 추적을 위해 각 전사 결과와 함께 원본 오디오 경로, 모델 ID, 응답 형식을 저장하세요. + +## 관련 리소스 + +- [오디오 전사 API](/api-reference/endpoint/audio/transcriptions) +- [음성-텍스트 모델](/models/speech-to-text) +- [텍스트-음성 변환 가이드](/guides/media/text-to-speech) diff --git a/ko/guides/media/text-to-speech.mdx b/ko/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..7c1d012f --- /dev/null +++ b/ko/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "텍스트-음성 변환" +description: "Venice 텍스트-음성 변환 모델, 모델별 음성, 그리고 /audio/speech 엔드포인트로 텍스트에서 음성 오디오를 생성하세요." +'og:title': "텍스트-음성 변환 | Venice API 문서" +'og:description': "Venice API로 텍스트를 음성으로 변환하는 방법을 알아보세요." +--- + +텍스트-음성 변환은 작성된 텍스트를 음성 오디오로 바꿉니다. TTS 모델을 선택하고, 해당 모델이 지원하는 음성을 고르고, 텍스트를 `/audio/speech`로 전송한 뒤 바이너리 오디오 응답을 저장하세요. + +이 가이드는 표준 음성 생성을 다룹니다. 사용자 지정 참조 음성으로부터 음성을 생성하려면 [음성 복제](/guides/media/voice-cloning)를 참조하세요. + +## 기본 사용법 + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## 모델과 음성 선택 + +음성은 모델별로 다릅니다. `voice` 값은 선택한 `model`에 유효해야 합니다. + +사용 가능한 모델과 음성을 살펴보려면 [텍스트-음성 변환 모델](/models/text-to-speech) 페이지를 이용하세요. 음성 선택기는 요청에 전달할 정확한 음성 ID를 표시합니다. + + +음성 ID는 대소문자를 구분합니다. TTS 모델을 변경할 때는 `voice` 값도 함께 업데이트하세요. + + +## 요청 구조 + +| 매개변수 | 유형 | 필수 여부 | 설명 | +|-----------|------|----------|-------------| +| `model` | string | 예 | 텍스트-음성 변환 모델 ID. | +| `voice` | string | 예 | 선택한 모델이 지원하는 음성 ID. | +| `input` | string | 예 | 합성할 텍스트. | + +## 프로덕션 팁 + +- 소스 텍스트와 음성이 재사용될 때는 생성된 오디오를 캐시하세요. +- 합성 전에 텍스트를 정규화하고 교정하세요. 구두점은 속도와 억양에 영향을 줍니다. +- 출력물은 모델의 응답 형식에 맞는 파일 확장자로 저장하세요. + +## 관련 리소스 + +- [오디오 스피치 API](/api-reference/endpoint/audio/speech) +- [텍스트-음성 변환 모델](/models/text-to-speech) +- [음성 복제 가이드](/guides/media/voice-cloning) diff --git a/ko/guides/overview.mdx b/ko/guides/overview.mdx index 844b9c3d..90544db4 100644 --- a/ko/guides/overview.mdx +++ b/ko/guides/overview.mdx @@ -1,54 +1,62 @@ --- title: 가이드 -description: "API 키, OpenAI 마이그레이션, 구조화된 응답, 파일 입력, 프롬프트 캐싱, 미디어, 에이전트 통합을 다루는 실용적인 Venice API 가이드." +description: API 키, OpenAI 마이그레이션, 채팅 기능, 임베딩, 미디어, 에이전트 통합을 위한 실용적인 Venice API 가이드. --- -이러한 가이드를 사용하여 API 키를 생성하고, 기존 OpenAI 앱을 마이그레이션하며, Venice 전용 기능을 활성화하고, Venice를 에이전트 프레임워크, 코딩 도구, 미디어 워크플로에 연결하세요. +이 가이드를 사용하여 API 키를 생성하고, 기존 OpenAI 앱을 마이그레이션하며, Venice 고유의 기능을 활성화하고, Venice를 에이전트 프레임워크, 코딩 도구, 미디어 워크플로에 연결하세요. - Venice 대시보드에서 API 키를 생성하고 관리합니다. + Venice 대시보드에서 API 키를 생성하고 관리하세요. - base URL을 변경하여 OpenAI 호환 앱을 Venice로 전환합니다. + base URL만 변경하여 OpenAI 호환 앱을 Venice로 전환하세요. - JSON 스키마와 일치하는 응답을 요청합니다. + JSON 스키마에 맞는 응답을 요청하세요. + + + 모델이 구조화된 인수로 애플리케이션 도구를 호출하도록 하세요. + + + 멀티모달 채팅 모델로 이미지를 분석하세요. + + + 시맨틱 검색, RAG 및 추천을 위한 벡터를 생성하세요. - 채팅 모델에 문서와 소스 파일을 전송합니다. + 문서와 소스 파일을 채팅 모델에 전송하세요. - 반복되는 프롬프트 콘텐츠의 지연 시간과 비용을 줄입니다. + 반복되는 프롬프트 콘텐츠에 대한 지연 시간과 비용을 줄이세요. - 출처를 수집하고 인용 보고서를 작성하는 Python 리서치 에이전트를 구축합니다. + 출처를 수집하고 인용이 포함된 리포트를 작성하는 Python 리서치 에이전트를 구축하세요. -## 주제별 탐색 +## 주제별 살펴보기 - API 키, 마이그레이션, 자율 키 생성 및 Postman. + API 키, 마이그레이션, 자동 키 생성, Postman. - 구조화된 출력, 추론 모델, 파일 입력, 프롬프트 캐싱 및 개인정보 강화 모델. + 구조화된 출력, 추론 모델, 함수 호출, 비전, 임베딩, 파일 입력, 프롬프트 캐싱, 프라이버시 강화 모델. - - 이미지 생성, 이미지 편집, 비디오 생성, 참조 및 업스케일링. + + 이미지 생성, 이미지 편집, 업스케일링, 비디오 생성, 텍스트-음성 변환, 음성-텍스트 변환, 음성 복제. - 에이전트 앱, 어시스턴트 도구, 크립토 RPC, 지갑 인증 및 커뮤니티 통합. + 에이전트 앱, 어시스턴트 도구, 크립토 RPC, 지갑 인증, 커뮤니티 통합. - Claude Code, Cursor, OpenCode 및 Codex CLI와 함께 Venice 모델을 사용합니다. + Claude Code, Cursor, OpenCode, Codex CLI에서 Venice 모델을 사용하세요. - LangChain, Vercel AI SDK 및 CrewAI로 구축합니다. + LangChain, Vercel AI SDK, CrewAI로 빌드하세요. - 프로젝트 워크스루 중 하나를 사용하여 자체 프로젝트를 구축합니다. + 프로젝트 워크스루를 활용해 여러분만의 프로젝트를 구축하세요. - diff --git a/ko/guides/projects/overview.mdx b/ko/guides/projects/overview.mdx new file mode 100644 index 00000000..cfc9171e --- /dev/null +++ b/ko/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "데모 및 프로젝트" +sidebarTitle: "개요" +description: "Venice API로 구축한 엔드투엔드 데모 프로젝트로, 직접 실행하고 읽고 자신의 앱에 맞게 수정할 수 있는 동작하는 코드를 제공합니다." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

프라이빗 RAG 봇

+

재순위 검색으로 자신의 문서에서 근거 있고 인용 가능한 답변을 제공합니다.

+
+ Qdrant + FastEmbed + 재순위 +
+ +
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

프라이빗 리서치 에이전트

+

검색을 계획하고 웹 소스를 읽어 인용이 포함된 Markdown 브리핑을 작성합니다.

+
+ Scrape API + 플래너 + 인용 보고서 +
+ +
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

코드베이스 보안 검토기

+

원자적 취약점을 찾아 익스플로잇 경로로 연결합니다.

+
+ AST 리포 맵 + Pydantic + 이중 에이전트 +
+ +
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Rust LLM 게이트웨이

+

인증, 속도 제한, 스트리밍, 텔레메트리를 갖춘 OpenAI 호환 게이트웨이입니다.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+ +
Joshua Mo · Jul 2026
+
+
diff --git a/ko/models/overview.mdx b/ko/models/overview.mdx index b379e591..42a6a2f6 100644 --- a/ko/models/overview.mdx +++ b/ko/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "모델" +title: "전체 모델" +sidebarTitle: "전체 모델" description: "텍스트, 이미지, 비디오, 오디오, 임베딩, 음성을 아우르는 Venice API에서 사용 가능한 모든 모델 카탈로그 — 기능, 가격, 모델 ID 포함." "og:title": "Models | Venice API Docs" mode: "wide" diff --git a/model-search.js b/model-search.js index d55b4e2c..a1833abd 100644 --- a/model-search.js +++ b/model-search.js @@ -1,3 +1,74 @@ +// Scroll-position safeguard for the Demos landing page. +// +// This site runs with history.scrollRestoration === "auto", so on SPA +// navigation the browser can asynchronously restore a prior scroll offset onto +// the newly rendered page. The Demos overview page is short and has its sidebar +// and "On this page" column hidden, so any restored offset from a taller source +// page is very visible (the page lands scrolled down). We watch the +// data-current-path attribute Mintlify sets on and force the window back +// to the top whenever we land on that route, beating the browser's async +// restoration. Scoped to this one route so it can't affect anchor links or +// scroll behavior anywhere else. +(function() { + var DEMOS_PATH = '/guides/projects/overview'; + + function resetIfDemos() { + if (document.documentElement.getAttribute('data-current-path') === DEMOS_PATH) { + window.scrollTo(0, 0); + // Re-assert across a few ticks to beat late async browser scroll + // restoration, which can fire after the route attribute updates. + requestAnimationFrame(function() { window.scrollTo(0, 0); }); + setTimeout(function() { window.scrollTo(0, 0); }, 60); + } + } + + new MutationObserver(resetIfDemos).observe(document.documentElement, { + attributes: true, + attributeFilter: ['data-current-path'], + }); + + resetIfDemos(); +})(); + +// Relocate the language selector into the right-hand header actions cluster. +// +// Mintlify natively renders the language selector in the left group (next to the +// logo). We want it on the right, just left of the search / Ask AI / theme icon +// group. Rather than absolutely positioning it -- which collides whenever +// Mintlify adds another header button (e.g. the AI assistant) -- we move the +// node into the right actions cluster so it lays out in natural flex flow. The +// header is re-rendered on SPA navigation, so we re-run on DOM changes, +// idempotently and coalesced via requestAnimationFrame to avoid churn. +(function() { + function relocate() { + const trigger = document.querySelector('#localization-select-trigger'); + const search = document.querySelector('#search-bar-entry'); + if (!trigger || !search) return; + const langWrapper = trigger.parentElement; //
wrapping the trigger + const iconGroup = search.parentElement; //
holding search + Ask AI + const cluster = iconGroup ? iconGroup.parentElement : null; // right actions cluster + if (!langWrapper || !iconGroup || !cluster) return; + // Already placed immediately before the icon group -> nothing to do (this + // guard also stops our own DOM mutation from causing a relocate loop). + if (langWrapper.parentElement === cluster && langWrapper.nextElementSibling === iconGroup) return; + cluster.insertBefore(langWrapper, iconGroup); + } + + let scheduled = false; + function schedule() { + if (scheduled) return; + scheduled = true; + requestAnimationFrame(function() { scheduled = false; relocate(); }); + } + + new MutationObserver(schedule).observe(document.documentElement, { + childList: true, + subtree: true, + }); + + relocate(); +})(); + // Venice AI Model Browser & Pricing Tables - Fetches from API (function() { @@ -12,7 +83,7 @@ const CACHE_TTL = 5 * 60 * 1000; // 5 minutes // Static fallback data for instant pricing page load (updated 2026-07-08) - const STATIC_MODELS = [{"id":"firered-image-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04}},"traits":[],"name":"FireRed Edit"},"created":1774396800},{"id":"flux-2-max-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.19,"diem":0.19}},"traits":[],"name":"Flux 2 Max"},"created":1767571200},{"id":"gpt-image-1-5-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.36,"diem":0.36}},"traits":[],"name":"GPT Image 1.5"},"created":1767555000},{"id":"gpt-image-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.36,"diem":0.36},"resolutions":{"1K":{"usd":0.36,"diem":0.36},"2K":{"usd":0.53,"diem":0.53},"4K":{"usd":0.85,"diem":0.85}},"quality":{"1K":{"high":{"usd":0.36,"diem":0.36},"low":{"usd":0.03,"diem":0.03},"medium":{"usd":0.1,"diem":0.1}},"2K":{"high":{"usd":0.53,"diem":0.53},"low":{"usd":0.04,"diem":0.04},"medium":{"usd":0.15,"diem":0.15}},"4K":{"high":{"usd":0.86,"diem":0.86},"low":{"usd":0.06,"diem":0.06},"medium":{"usd":0.22,"diem":0.22}}}},"traits":[],"name":"GPT Image 2"},"created":1776729600},{"id":"grok-imagine-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04},"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}}},"traits":[],"name":"Grok Imagine"},"created":1769644800},{"id":"grok-imagine-quality-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.1,"diem":0.1},"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.12,"diem":0.12}}},"traits":[],"name":"Grok Imagine High Quality"},"created":1778198400},{"id":"luma-uni-1-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.06,"diem":0.06}},"traits":[],"name":"Luma Uni-1"},"created":1781654400},{"id":"luma-uni-1-max-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.13,"diem":0.13}},"traits":[],"name":"Luma Uni-1 Max"},"created":1781654400},{"id":"nano-banana-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.1,"diem":0.1},"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.14,"diem":0.14},"4K":{"usd":0.19,"diem":0.19}}},"traits":[],"name":"Nano Banana 2"},"created":1772064000},{"id":"nano-banana-2-lite-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.06,"diem":0.06}},"traits":[],"name":"Nano Banana 2 Lite"},"created":1782777600},{"id":"nano-banana-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.18,"diem":0.18},"resolutions":{"1K":{"usd":0.18,"diem":0.18},"2K":{"usd":0.23,"diem":0.23},"4K":{"usd":0.35,"diem":0.35}}},"traits":[],"name":"Nano Banana Pro"},"created":1765584000},{"id":"qwen-edit-uncensored","type":"inpaint","model_spec":{"betaModel":true,"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04}},"traits":[],"name":"Qwen Edit Uncensored"},"created":1780531200},{"id":"qwen-image-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Qwen Image 2"},"created":1772582400},{"id":"qwen-image-2-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.1,"diem":0.1}},"traits":[],"name":"Qwen Image 2 Pro"},"created":1772582400},{"id":"seedream-v4-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Seedream V4.5"},"created":1767484800},{"id":"seedream-v5-lite-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Seedream V5 Lite"},"created":1771804800},{"id":"wan-2-7-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.094,"diem":0.094}},"traits":[],"name":"Wan 2.7 Pro Edit"},"created":1776902400},{"id":"tts-chatterbox-hd","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":50,"diem":50}},"traits":[],"name":"Chatterbox HD (Resemble AI)","voices":["Aurora","Blade","Britney","Carl","Cliff","Richard","Rico","Siobhan","Vicky"]},"created":1776384000},{"id":"tts-elevenlabs-turbo-v2-5","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":62.5,"diem":62.5}},"traits":[],"name":"ElevenLabs Turbo v2.5","voices":["Alice","Aria","Bill","Brian","Callum","Charlie","Charlotte","Chris","Daniel","Eric","George","Jessica","Laura","Liam","Lily","Matilda","Rachel","River","Roger","Sarah","Will"]},"created":1776384000},{"id":"tts-gemini-3-1-flash","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":187.5,"diem":187.5}},"traits":[],"name":"Gemini 3.1 Flash TTS","voices":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux","Iapetus","Kore","Laomedeia","Leda","Orus","Puck","Pulcherrima","Rasalgethi","Sadachbia","Sadaltager","Schedar","Sulafat","Umbriel","Vindemiatrix","Zephyr","Zubenelgenubi"]},"created":1776643200},{"id":"tts-gradium-v1","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":47.5,"diem":47.5}},"traits":[],"name":"Gradium TTS","voices":["Alice","Davi","Elise","Emma","Eva","Jack","Kent","Leo","Maximilian","Mia","Sergio","Valentina"]},"created":1780617600},{"id":"tts-inworld-1-5-max","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":12.5,"diem":12.5}},"traits":[],"name":"Inworld TTS-1.5 Max","voices":["Alex","Ashley","Craig","Edward","Elizabeth","Hades","Luna","Mark","Olivia","Pixie","Priya","Ronald","Sarah","Theodore"]},"created":1776384000},{"id":"tts-kokoro","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kokoro Text to Speech","voices":["af_alloy","af_aoede","af_bella","af_heart","af_jadzia","af_jessica","af_kore","af_nicole","af_nova","af_river","af_sarah","af_sky","am_adam","am_echo","am_eric","am_fenrir","am_liam","am_michael","am_onyx","am_puck","am_santa","bf_alice","bf_emma","bf_lily","bm_daniel","bm_fable","bm_george","bm_lewis","ef_dora","em_alex","em_santa","ff_siwis","hf_alpha","hf_beta","hm_omega","hm_psi","if_sara","im_nicola","jf_alpha","jf_gongitsune","jf_nezumi","jf_tebukuro","jm_kumo","pf_dora","pm_alex","pm_santa","zf_xiaobei","zf_xiaoni","zf_xiaoxiao","zf_xiaoyi","zm_yunjian","zm_yunxi","zm_yunxia","zm_yunyang"]},"created":1742418046},{"id":"tts-minimax-speech-02-hd","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":125,"diem":125}},"traits":[],"name":"MiniMax Speech-02 HD","voices":["CalmWoman","CasualGuy","DeepVoiceMan","DeterminedMan","ElegantMan","ExuberantGirl","FriendlyPerson","ImposingManner","InspirationalGirl","LivelyGirl","LovelyGirl","PatientMan","SweetGirl","WiseWoman","YoungKnight"]},"created":1776384000},{"id":"tts-orpheus","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":62.5,"diem":62.5}},"traits":[],"name":"Orpheus TTS","voices":["dan","jess","leah","leo","mia","tara","zac","zoe"]},"created":1776384000},{"id":"tts-qwen3-0-6b","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":87.5,"diem":87.5}},"traits":[],"name":"Qwen 3 TTS 0.6B","voices":["Aiden","Dylan","Eric","Ono_Anna","Ryan","Serena","Sohee","Uncle_Fu","Vivian"]},"created":1773100800},{"id":"tts-qwen3-1-7b","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":112.5,"diem":112.5}},"traits":[],"name":"Qwen 3 TTS 1.7B","voices":["Aiden","Dylan","Eric","Ono_Anna","Ryan","Serena","Sohee","Uncle_Fu","Vivian"]},"created":1773100800},{"id":"tts-xai-v1","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":18.75,"diem":18.75}},"traits":[],"name":"xAI TTS v1","voices":["ara","eve","leo","rex","sal"]},"created":1776384000},{"id":"text-embedding-bge-en-icl","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"BGE-EN-ICL"},"created":1776384000},{"id":"text-embedding-bge-m3","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.6,"diem":0.6}},"traits":[],"name":"BGE-M3"},"created":1741924661},{"id":"gemini-embedding-2-preview","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":0.25,"diem":0.25}},"traits":[],"name":"Gemini Embedding 2 Preview"},"created":1776384000},{"id":"text-embedding-multilingual-e5-large-instruct","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Multilingual E5 Large Instruct"},"created":1776384000},{"id":"text-embedding-nemotron-embed-vl-1b-v2","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Nemotron Embed VL 1B v2"},"created":1776384000},{"id":"text-embedding-qwen3-0-6b","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Qwen3 Embedding 0.6B"},"created":1776384000},{"id":"text-embedding-qwen3-8b","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Qwen3 Embedding 8B"},"created":1776384000},{"id":"text-embedding-3-large","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.1625,"diem":0.1625},"output":{"usd":0.1625,"diem":0.1625}},"traits":[],"name":"Text Embedding 3 Large"},"created":1776384000},{"id":"text-embedding-3-small","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.025,"diem":0.025},"output":{"usd":0.025,"diem":0.025}},"traits":[],"name":"Text Embedding 3 Small"},"created":1776384000},{"id":"ace-step-15","type":"music","model_spec":{"privacy":"anonymized","pricing":{"durations":{"60":{"usd":0.03,"diem":0.03,"min_seconds":60,"max_seconds":60},"90":{"usd":0.04,"diem":0.04,"min_seconds":61,"max_seconds":90},"120":{"usd":0.05,"diem":0.05,"min_seconds":91,"max_seconds":120},"150":{"usd":0.06,"diem":0.06,"min_seconds":121,"max_seconds":150},"180":{"usd":0.07,"diem":0.07,"min_seconds":151,"max_seconds":180},"210":{"usd":0.08,"diem":0.08,"min_seconds":181,"max_seconds":210}}},"traits":[],"name":"ACE-Step 1.5"},"created":1771804800},{"id":"elevenlabs-tts-multilingual-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_thousand_characters":{"usd":0.11500000000000002,"diem":0.11500000000000002}},"traits":[],"name":"ElevenLabs Multilingual v2","voices":["Aria","Roger","Sarah","Laura","Charlie","George","Callum","River","Liam","Charlotte","Alice","Matilda","Will","Jessica","Eric","Chris","Brian","Daniel","Lily","Bill"]},"created":1772236800},{"id":"elevenlabs-music","type":"music","model_spec":{"privacy":"anonymized","pricing":{"durations":{"60":{"usd":0.69,"diem":0.69,"min_seconds":3,"max_seconds":60},"120":{"usd":1.38,"diem":1.38,"min_seconds":61,"max_seconds":120},"180":{"usd":2.08,"diem":2.08,"min_seconds":121,"max_seconds":180},"240":{"usd":2.76,"diem":2.76,"min_seconds":181,"max_seconds":240},"300":{"usd":3.45,"diem":3.45,"min_seconds":241,"max_seconds":300},"360":{"usd":4.15,"diem":4.15,"min_seconds":301,"max_seconds":360},"420":{"usd":4.84,"diem":4.84,"min_seconds":361,"max_seconds":420},"480":{"usd":5.52,"diem":5.52,"min_seconds":421,"max_seconds":480},"540":{"usd":6.22,"diem":6.22,"min_seconds":481,"max_seconds":540},"600":{"usd":6.9,"diem":6.9,"min_seconds":541,"max_seconds":600}}},"traits":[],"name":"ElevenLabs Music"},"created":1771718400},{"id":"elevenlabs-sound-effects-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_second":{"usd":0.0023000000000000004,"diem":0.0023000000000000004}},"traits":[],"name":"ElevenLabs Sound Effects"},"created":1772236800},{"id":"elevenlabs-tts-v3","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_thousand_characters":{"usd":0.11500000000000002,"diem":0.11500000000000002}},"traits":[],"name":"ElevenLabs TTS v3","voices":["Aria","Roger","Sarah","Laura","Charlie","George","Callum","River","Liam","Charlotte","Alice","Matilda","Will","Jessica","Eric","Chris","Brian","Daniel","Lily","Bill"]},"created":1772236800},{"id":"lyria-3-pro","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.1,"diem":0.1}},"traits":[],"name":"Lyria 3 Pro"},"created":1779408000},{"id":"minimax-music-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.04,"diem":0.04}},"traits":[],"name":"MiniMax Music 2.0"},"created":1771718400},{"id":"minimax-music-v25","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.18,"diem":0.18}},"traits":[],"name":"MiniMax Music 2.5"},"created":1775952000},{"id":"minimax-music-v26","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.18,"diem":0.18}},"traits":[],"name":"MiniMax Music 2.6"},"created":1775952000},{"id":"mmaudio-v2-text-to-audio","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_second":{"usd":0.0009200000000000001,"diem":0.0009200000000000001}},"traits":[],"name":"MMAudio V2"},"created":1772236800},{"id":"stable-audio-25","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.19,"diem":0.19}},"traits":[],"name":"Stable Audio 2.5"},"created":1771718400},{"id":"gemini-omni-flash-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash"},"created":1782777600},{"id":"gemini-omni-flash-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash"},"created":1782777600},{"id":"gemini-omni-flash-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash R2V"},"created":1782777600},{"id":"grok-imagine-1-5-image-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine 1.5 Private"},"created":1780185600},{"id":"grok-imagine-text-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776038400},{"id":"grok-imagine-image-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776211200},{"id":"grok-imagine-video-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776211200},{"id":"grok-imagine-reference-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine R2V Private"},"created":1776211200},{"id":"happyhorse-1-0-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0"},"created":1776988800},{"id":"happyhorse-1-0-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0"},"created":1777075200},{"id":"happyhorse-1-0-video-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0 Edit"},"created":1777248000},{"id":"happyhorse-1-0-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0 Reference"},"created":1777248000},{"id":"happyhorse-1-1-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1"},"created":1782086400},{"id":"happyhorse-1-1-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1"},"created":1782086400},{"id":"happyhorse-1-1-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1 Reference"},"created":1782086400},{"id":"kling-2.5-turbo-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.5 Turbo Pro"},"created":1758825748},{"id":"kling-2.5-turbo-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.5 Turbo Pro"},"created":1758825748},{"id":"kling-2.6-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.6 Pro"},"created":1733186476},{"id":"kling-2.6-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.6 Pro"},"created":1733186476},{"id":"kling-o3-4k-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K"},"created":1776816000},{"id":"kling-o3-4k-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K"},"created":1776816000},{"id":"kling-o3-4k-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K R2V"},"created":1776816000},{"id":"kling-o3-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Pro"},"created":1770076800},{"id":"kling-o3-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Pro"},"created":1770076800},{"id":"kling-o3-pro-reference-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Kling O3 Pro R2V"},"created":1773014400},{"id":"kling-o3-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Standard"},"created":1770076800},{"id":"kling-o3-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Standard"},"created":1770076800},{"id":"kling-o3-standard-reference-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Kling O3 Standard R2V"},"created":1773100800},{"id":"kling-v3-4k-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 4K"},"created":1776816000},{"id":"kling-v3-4k-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 4K R2V"},"created":1776816000},{"id":"kling-v3-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro"},"created":1770076800},{"id":"kling-v3-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro"},"created":1770076800},{"id":"kling-v3-pro-motion-control","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro Motion Control"},"created":1779667200},{"id":"kling-v3-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard"},"created":1770076800},{"id":"kling-v3-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard"},"created":1770076800},{"id":"kling-v3-standard-motion-control","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard Motion Control"},"created":1779667200},{"id":"kling-v3-turbo-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Pro"},"created":1781654400},{"id":"kling-v3-turbo-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Pro"},"created":1781654400},{"id":"kling-v3-turbo-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Standard"},"created":1781654400},{"id":"kling-v3-turbo-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Standard"},"created":1781654400},{"id":"longcat-distilled-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Distilled"},"created":1764806400},{"id":"longcat-distilled-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Distilled"},"created":1764806400},{"id":"longcat-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Full Quality"},"created":1764806400},{"id":"longcat-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Full Quality"},"created":1764806400},{"id":"ltx-2-19b-full-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B"},"created":1767830400},{"id":"ltx-2-19b-full-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B"},"created":1767830400},{"id":"ltx-2-19b-distilled-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B Distilled"},"created":1767830400},{"id":"ltx-2-19b-distilled-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B Distilled"},"created":1767830400},{"id":"ltx-2-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Fast"},"created":1732684002},{"id":"ltx-2-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Fast"},"created":1732684002},{"id":"ltx-2-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Full Quality"},"created":1732684002},{"id":"ltx-2-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Full Quality"},"created":1732684002},{"id":"ltx-2-v2-3-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Fast"},"created":1772668800},{"id":"ltx-2-v2-3-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Fast"},"created":1772668800},{"id":"ltx-2-v2-3-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Full Quality"},"created":1772668800},{"id":"ltx-2-v2-3-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Full Quality"},"created":1772668800},{"id":"ovi-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Ovi"},"created":1758825748},{"id":"pixverse-c1-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1"},"created":1775865600},{"id":"pixverse-c1-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1"},"created":1775865600},{"id":"pixverse-c1-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1 R2V"},"created":1775865600},{"id":"pixverse-c1-transition","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1 Transition"},"created":1775865600},{"id":"pixverse-v5.6-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6"},"created":1769472000},{"id":"pixverse-v5.6-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6"},"created":1769472000},{"id":"pixverse-v5.6-transition","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6 Transition"},"created":1769472000},{"id":"runway-gen4-aleph","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4 Aleph"},"created":1769040000},{"id":"runway-gen4-turbo","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4 Turbo"},"created":1769040000},{"id":"runway-gen4-5","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4.5"},"created":1775952000},{"id":"runway-gen4-5-text","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4.5"},"created":1775952000},{"id":"sora-2-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2 Pro","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2 Pro","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"topaz-video-upscale","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Topaz Video Upscale"},"created":1775174400},{"id":"veo3-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Fast"},"created":1758825748},{"id":"veo3-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Fast"},"created":1758825748},{"id":"veo3-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Full Quality"},"created":1758825748},{"id":"veo3-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Full Quality"},"created":1758825748},{"id":"veo3.1-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Fast"},"created":1729030447},{"id":"veo3.1-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Fast"},"created":1729030447},{"id":"veo3.1-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Full Quality"},"created":1729030447},{"id":"veo3.1-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Full Quality"},"created":1729030447},{"id":"vidu-q3-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Vidu Q3"},"created":1769817600},{"id":"vidu-q3-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Vidu Q3"},"created":1769817600},{"id":"wan-2.1-pro-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Wan 2.1 Pro"},"created":1758825748},{"id":"wan-2.2-a14b-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Wan 2.2 A14B"},"created":1758825748},{"id":"wan-2.5-preview-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.5 Preview"},"created":1758825748},{"id":"wan-2.5-preview-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.5 Preview"},"created":1758825748},{"id":"wan-2.6-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6"},"created":1765843200},{"id":"wan-2.6-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6"},"created":1765843200},{"id":"wan-2.6-flash-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6 Flash"},"created":1768824000},{"id":"wan-2-7-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7"},"created":1775088000},{"id":"wan-2-7-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7"},"created":1775088000},{"id":"wan-2-7-video-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Edit"},"created":1775088000},{"id":"wan-2-7-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Reference"},"created":1775088000},{"id":"wan-2-7-uncensored-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Uncensored"},"created":1778284800},{"id":"wan-2-7-uncensored-text-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Wan 2.7 Uncensored"},"created":1780444800},{"id":"aion-labs-aion-2-0","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.25,"diem":0.25},"output":{"usd":2,"diem":2}},"traits":[],"name":"Aion 2.0","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false},"deprecation":{"autoRemap":false,"date":"2026-07-15T00:00:00.000Z","removesAt":"2026-07-15T00:00:00.000Z","replacementModelId":"aion-labs-aion-3-0"}},"created":1774310400},{"id":"aion-labs-aion-3-0","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":3.75,"diem":3.75},"cache_input":{"usd":0.9375,"diem":0.9375},"output":{"usd":7.5,"diem":7.5}},"traits":[],"name":"Aion 3.0","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783468800},{"id":"aion-labs-aion-3-0-mini","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.875,"diem":0.875},"cache_input":{"usd":0.225,"diem":0.225},"output":{"usd":1.75,"diem":1.75}},"traits":[],"name":"Aion 3.0 Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783468800},{"id":"claude-fable-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":12,"diem":12},"cache_input":{"usd":1.2,"diem":1.2},"cache_write":{"usd":15,"diem":15},"output":{"usd":60,"diem":60}},"traits":[],"name":"Claude Fable 5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781049600},{"id":"claude-opus-4-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":198000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1764979200},{"id":"claude-opus-4-6","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.6","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770249600},{"id":"claude-opus-4-7","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776297600},{"id":"claude-opus-4-7-fast","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":36,"diem":36},"cache_input":{"usd":3.6,"diem":3.6},"cache_write":{"usd":45,"diem":45},"output":{"usd":180,"diem":180}},"traits":[],"name":"Claude Opus 4.7 Fast","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false},"deprecation":{"autoRemap":false,"date":"2026-07-24T00:00:00.000Z","removesAt":"2026-07-24T00:00:00.000Z"}},"created":1778716800},{"id":"claude-opus-4-8","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.8","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779926400},{"id":"claude-opus-4-8-fast","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":12,"diem":12},"cache_input":{"usd":1.2,"diem":1.2},"cache_write":{"usd":15,"diem":15},"output":{"usd":60,"diem":60}},"traits":[],"name":"Claude Opus 4.8 Fast","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779926400},{"id":"claude-sonnet-4-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":198000,"pricing":{"input":{"usd":3.75,"diem":3.75},"cache_input":{"usd":0.375,"diem":0.375},"cache_write":{"usd":4.69,"diem":4.69},"output":{"usd":18.75,"diem":18.75}},"traits":[],"name":"Claude Sonnet 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1736899200},{"id":"claude-sonnet-4-6","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3.6,"diem":3.6},"cache_input":{"usd":0.36,"diem":0.36},"cache_write":{"usd":4.5,"diem":4.5},"output":{"usd":18,"diem":18}},"traits":[],"name":"Claude Sonnet 4.6","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771286400},{"id":"claude-sonnet-5","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3,"diem":3},"cache_input":{"usd":0.3,"diem":0.3},"cache_write":{"usd":3.75,"diem":3.75},"output":{"usd":15,"diem":15}},"traits":[],"name":"Claude Sonnet 5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1782691200},{"id":"deepseek-v3.2","type":"text","model_spec":{"privacy":"private","availableContextTokens":160000,"pricing":{"input":{"usd":0.33,"diem":0.33},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":0.48,"diem":0.48}},"traits":[],"name":"DeepSeek V3.2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1764806400},{"id":"deepseek-v4-flash","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.138,"diem":0.138},"cache_input":{"usd":0.028,"diem":0.028},"output":{"usd":0.275,"diem":0.275}},"traits":[],"name":"DeepSeek V4 Flash","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"e2ee-deepseek-v4-flash","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":0.182,"diem":0.182},"cache_input":{"usd":0.038,"diem":0.038},"output":{"usd":0.373,"diem":0.373}},"traits":[],"name":"DeepSeek V4 Flash","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783382400},{"id":"deepseek-v4-pro","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":1.65,"diem":1.65},"cache_input":{"usd":0.33,"diem":0.33},"output":{"usd":3.301,"diem":3.301}},"traits":[],"name":"DeepSeek V4 Pro","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"gemini-3-flash-preview","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":0.7,"diem":0.7},"cache_input":{"usd":0.07,"diem":0.07},"output":{"usd":3.75,"diem":3.75}},"traits":[],"name":"Gemini 3 Flash Preview","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1766102400},{"id":"gemini-3-1-pro-preview","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":2.5,"diem":2.5},"cache_input":{"usd":0.5,"diem":0.5},"cache_write":{"usd":0.5,"diem":0.5},"output":{"usd":15,"diem":15},"extended":{"context_token_threshold":200000,"input":{"usd":5,"diem":5},"output":{"usd":22.5,"diem":22.5},"cache_input":{"usd":0.5,"diem":0.5},"cache_write":{"usd":0.5,"diem":0.5}}},"traits":[],"name":"Gemini 3.1 Pro Preview","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":20,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771459200},{"id":"gemini-3-5-flash","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":1.55,"diem":1.55},"cache_input":{"usd":0.155,"diem":0.155},"cache_write":{"usd":0.086,"diem":0.086},"output":{"usd":9.45,"diem":9.45}},"traits":[],"name":"Gemini 3.5 Flash","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":20,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779408000},{"id":"e2ee-gemma-3-27b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":40000,"pricing":{"input":{"usd":0.14,"diem":0.14},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"Gemma 3 27B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-gemma-4-26b-a4b-uncensored-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":64000,"pricing":{"input":{"usd":0.19,"diem":0.19},"output":{"usd":0.88,"diem":0.88}},"traits":[],"name":"Gemma 4 26B A4B Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779580800},{"id":"e2ee-gemma-4-31b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.139,"diem":0.139},"cache_input":{"usd":0.028,"diem":0.028},"output":{"usd":0.43,"diem":0.43}},"traits":[],"name":"Gemma 4 31B Instruct","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779235200},{"id":"gemma-4-uncensored","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1625,"diem":0.1625},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"Gemma 4 Uncensored","capabilities":{"optimizedForCode":false,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776038400},{"id":"zai-org-glm-4.6","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.43,"diem":0.43},"cache_input":{"usd":0.08,"diem":0.08},"output":{"usd":1.75,"diem":1.75}},"traits":[],"name":"GLM 4.6","capabilities":{"optimizedForCode":false,"quantization":"fp4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1711929600},{"id":"zai-org-glm-4.7","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.55,"diem":0.55},"cache_input":{"usd":0.11,"diem":0.11},"output":{"usd":2.65,"diem":2.65}},"traits":["default","most_intelligent","function_calling_default"],"name":"GLM 4.7","capabilities":{"optimizedForCode":false,"quantization":"fp4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1766534400},{"id":"e2ee-glm-4-7-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":4.15,"diem":4.15}},"traits":[],"name":"GLM 4.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"zai-org-glm-4.7-flash","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.125,"diem":0.125},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"GLM 4.7 Flash","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769644800},{"id":"olafangensan-glm-4.7-flash-heretic","type":"text","model_spec":{"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":0.07,"diem":0.07},"cache_input":{"usd":0.035,"diem":0.035},"output":{"usd":0.4,"diem":0.4}},"traits":[],"name":"GLM 4.7 Flash Heretic","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770163200},{"id":"zai-org-glm-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.2,"diem":0.2},"output":{"usd":3.2,"diem":3.2}},"traits":[],"name":"GLM 5","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770768000},{"id":"z-ai-glm-5-turbo","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":200000,"pricing":{"input":{"usd":1.2,"diem":1.2},"cache_input":{"usd":0.24,"diem":0.24},"output":{"usd":4,"diem":4}},"traits":[],"name":"GLM 5 Turbo","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773532800},{"id":"zai-org-glm-5-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":1.54,"diem":1.54},"cache_input":{"usd":0.286,"diem":0.286},"output":{"usd":4.84,"diem":4.84}},"traits":[],"name":"GLM 5.1","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775520000},{"id":"e2ee-glm-5-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":4.15,"diem":4.15}},"traits":[],"name":"GLM 5.1","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"zai-org-glm-5-2","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":1.4,"diem":1.4},"cache_input":{"usd":0.26,"diem":0.26},"output":{"usd":4.4,"diem":4.4}},"traits":[],"name":"GLM 5.2","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781568000},{"id":"e2ee-glm-5-2-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":524288,"pricing":{"input":{"usd":1.75,"diem":1.75},"output":{"usd":5.75,"diem":5.75}},"traits":[],"name":"GLM 5.2","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781568000},{"id":"z-ai-glm-5v-turbo","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":200000,"pricing":{"input":{"usd":1.5,"diem":1.5},"cache_input":{"usd":0.3,"diem":0.3},"output":{"usd":5,"diem":5}},"traits":[],"name":"GLM 5V Turbo","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775001600},{"id":"google-gemma-3-27b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.12,"diem":0.12},"output":{"usd":0.2,"diem":0.2}},"traits":[],"name":"Google Gemma 3 27B Instruct","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1762214400},{"id":"google-gemma-4-26b-a4b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.13,"diem":0.13},"cache_input":{"usd":0.05,"diem":0.05},"output":{"usd":0.4,"diem":0.4}},"traits":[],"name":"Google Gemma 4 26B A4B Instruct","capabilities":{"optimizedForCode":false,"quantization":"bf16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775088000},{"id":"google-gemma-4-31b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.12,"diem":0.12},"cache_input":{"usd":0.09,"diem":0.09},"output":{"usd":0.36,"diem":0.36}},"traits":[],"name":"Google Gemma 4 31B Instruct","capabilities":{"optimizedForCode":false,"quantization":"bf16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775174400},{"id":"e2ee-gpt-oss-120b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.13,"diem":0.13},"output":{"usd":0.65,"diem":0.65}},"traits":[],"name":"GPT OSS 120B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-gpt-oss-20b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.05,"diem":0.05},"output":{"usd":0.19,"diem":0.19}},"traits":[],"name":"GPT OSS 20B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"openai-gpt-4o-2024-11-20","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":3.125,"diem":3.125},"output":{"usd":12.5,"diem":12.5}},"traits":[],"name":"GPT-4o","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772236800},{"id":"openai-gpt-4o-mini-2024-07-18","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.1875,"diem":0.1875},"cache_input":{"usd":0.09375,"diem":0.09375},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"GPT-4o Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772236800},{"id":"openai-gpt-52","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1765584000},{"id":"openai-gpt-52-codex","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.2 Codex","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1736899200},{"id":"openai-gpt-53-codex","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":400000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.3 Codex","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771891200},{"id":"openai-gpt-54","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3.13,"diem":3.13},"cache_input":{"usd":0.313,"diem":0.313},"output":{"usd":18.8,"diem":18.8}},"traits":[],"name":"GPT-5.4","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"openai-gpt-54-mini","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":400000,"pricing":{"input":{"usd":0.9375,"diem":0.9375},"cache_input":{"usd":0.09375,"diem":0.09375},"output":{"usd":5.625,"diem":5.625}},"traits":[],"name":"GPT-5.4 Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1774569600},{"id":"openai-gpt-54-pro","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":37.5,"diem":37.5},"output":{"usd":225,"diem":225},"extended":{"context_token_threshold":272000,"input":{"usd":75,"diem":75},"output":{"usd":337.5,"diem":337.5}}},"traits":[],"name":"GPT-5.4 Pro","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"medium","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"openai-gpt-55","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6.25,"diem":6.25},"cache_input":{"usd":0.625,"diem":0.625},"output":{"usd":37.5,"diem":37.5},"extended":{"context_token_threshold":272000,"input":{"usd":12.5,"diem":12.5},"output":{"usd":56.25,"diem":56.25},"cache_input":{"usd":1.25,"diem":1.25}}},"traits":[],"name":"GPT-5.5","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776902400},{"id":"openai-gpt-55-pro","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":37.5,"diem":37.5},"output":{"usd":225,"diem":225}},"traits":[],"name":"GPT-5.5 Pro","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"medium","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"grok-4-20","type":"text","model_spec":{"privacy":"private","availableContextTokens":2000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.20","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1773273600},{"id":"grok-4-20-multi-agent","type":"text","model_spec":{"privacy":"private","availableContextTokens":2000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.20 Multi-Agent","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1773273600},{"id":"grok-4-3","type":"text","model_spec":{"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.3","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1776470400},{"id":"grok-4-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":500000,"pricing":{"input":{"usd":2.27,"diem":2.27},"cache_input":{"usd":0.57,"diem":0.57},"output":{"usd":6.8,"diem":6.8},"extended":{"context_token_threshold":200000,"input":{"usd":4.53,"diem":4.53},"output":{"usd":13.6,"diem":13.6},"cache_input":{"usd":1.13,"diem":1.13}}},"traits":[],"name":"Grok 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1783382400},{"id":"grok-build-0-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.2,"diem":0.2},"output":{"usd":2,"diem":2},"extended":{"context_token_threshold":200000,"input":{"usd":2,"diem":2},"output":{"usd":4,"diem":4},"cache_input":{"usd":0.4,"diem":0.4}}},"traits":[],"name":"Grok Build 0.1","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779321600},{"id":"hermes-3-llama-3.1-405b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":3,"diem":3}},"traits":[],"name":"Hermes 3 Llama 3.1 405b","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1758758400},{"id":"kimi-k2-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.56,"diem":0.56},"cache_input":{"usd":0.22,"diem":0.22},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769548800},{"id":"kimi-k2-6","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.75,"diem":0.75},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.6","capabilities":{"optimizedForCode":true,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776643200},{"id":"kimi-k2-7-code","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.75,"diem":0.75},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.7 Code","capabilities":{"optimizedForCode":true,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781308800},{"id":"llama-3.2-3b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.6,"diem":0.6}},"traits":[],"name":"Llama 3.2 3B","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1727966436},{"id":"llama-3.3-70b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.7,"diem":0.7},"output":{"usd":2.8,"diem":2.8}},"traits":[],"name":"Llama 3.3 70B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1743897600},{"id":"mercury-2","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.3125,"diem":0.3125},"cache_input":{"usd":0.03125,"diem":0.03125},"output":{"usd":0.9375,"diem":0.9375}},"traits":[],"name":"Mercury 2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771545600},{"id":"xiaomi-mimo-v2-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":0.14,"diem":0.14},"cache_input":{"usd":0.05,"diem":0.05},"output":{"usd":0.28,"diem":0.28}},"traits":[],"name":"MiMo-V2.5","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781136000},{"id":"minimax-m25","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.27,"diem":0.27},"cache_input":{"usd":0.03,"diem":0.03},"output":{"usd":0.95,"diem":0.95}},"traits":[],"name":"MiniMax M2.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770854400},{"id":"minimax-m27","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.375,"diem":0.375},"cache_input":{"usd":0.06875,"diem":0.06875},"output":{"usd":1.5,"diem":1.5}},"traits":[],"name":"MiniMax M2.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"minimax-m3-preview","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":524288,"pricing":{"input":{"usd":0.3,"diem":0.3},"cache_input":{"usd":0.06,"diem":0.06},"output":{"usd":1.2,"diem":1.2}},"traits":[],"name":"MiniMax M3 Preview","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781222400},{"id":"mistral-small-3-2-24b-instruct","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.09375,"diem":0.09375},"output":{"usd":0.25,"diem":0.25}},"traits":[],"name":"Mistral Small 3.2 24B Instruct","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1768435200},{"id":"mistral-small-2603","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1875,"diem":0.1875},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"Mistral Small 4","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773619200},{"id":"nvidia-nemotron-cascade-2-30b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.14,"diem":0.14},"output":{"usd":0.8,"diem":0.8}},"traits":[],"name":"Nemotron Cascade 2 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1774310400},{"id":"nvidia-nemotron-3-nano-30b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.075,"diem":0.075},"output":{"usd":0.3,"diem":0.3}},"traits":[],"name":"NVIDIA Nemotron 3 Nano 30B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769472000},{"id":"nvidia-nemotron-3-ultra-550b-a55b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.625,"diem":0.625},"cache_input":{"usd":0.1875,"diem":0.1875},"output":{"usd":3.125,"diem":3.125}},"traits":[],"name":"NVIDIA Nemotron 3 Ultra","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1780531200},{"id":"openai-gpt-oss-120b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.07,"diem":0.07},"output":{"usd":0.3,"diem":0.3}},"traits":[],"name":"OpenAI GPT OSS 120B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1762387200},{"id":"e2ee-qwen-2-5-7b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.05,"diem":0.05},"output":{"usd":0.13,"diem":0.13}},"traits":[],"name":"Qwen 2.5 7B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"qwen3-235b-a22b-instruct-2507","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"Qwen 3 235B A22B Instruct 2507","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-235b-a22b-thinking-2507","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.45,"diem":0.45},"output":{"usd":3.5,"diem":3.5}},"traits":["default_reasoning"],"name":"Qwen 3 235B A22B Thinking 2507","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-coder-480b-a35b-instruct-turbo","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.35,"diem":0.35},"cache_input":{"usd":0.04,"diem":0.04},"output":{"usd":1.5,"diem":1.5}},"traits":["default_code"],"name":"Qwen 3 Coder 480B Turbo","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769472000},{"id":"qwen3-next-80b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.35,"diem":0.35},"output":{"usd":1.9,"diem":1.9}},"traits":[],"name":"Qwen 3 Next 80b","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-5-35b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.3125,"diem":0.3125},"cache_input":{"usd":0.15625,"diem":0.15625},"output":{"usd":1.25,"diem":1.25}},"traits":[],"name":"Qwen 3.5 35B A3B","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771977600},{"id":"qwen3-5-397b-a17b","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.75,"diem":0.75},"output":{"usd":4.5,"diem":4.5}},"traits":[],"name":"Qwen 3.5 397B","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":5,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771200000},{"id":"qwen3-5-9b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1,"diem":0.1},"output":{"usd":0.15,"diem":0.15}},"traits":[],"name":"Qwen 3.5 9B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"qwen3-6-27b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.325,"diem":0.325},"output":{"usd":3.25,"diem":3.25}},"traits":[],"name":"Qwen 3.6 27B","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"e2ee-qwen3-6-27b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.346,"diem":0.346},"cache_input":{"usd":0.171,"diem":0.171},"output":{"usd":3.46,"diem":3.46}},"traits":[],"name":"Qwen 3.6 27B FP8","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783382400},{"id":"e2ee-qwen3-6-35b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.182,"diem":0.182},"cache_input":{"usd":0.06,"diem":0.06},"output":{"usd":1.18,"diem":1.18}},"traits":[],"name":"Qwen 3.6 35B A3B FP8","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779235200},{"id":"qwen-3-6-plus","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.625,"diem":0.625},"cache_input":{"usd":0.0625,"diem":0.0625},"cache_write":{"usd":0.78,"diem":0.78},"output":{"usd":3.75,"diem":3.75},"extended":{"context_token_threshold":256000,"input":{"usd":2.5,"diem":2.5},"output":{"usd":7.5,"diem":7.5},"cache_input":{"usd":0.0625,"diem":0.0625},"cache_write":{"usd":0.78,"diem":0.78}}},"traits":[],"name":"Qwen 3.6 Plus Uncensored","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775433600},{"id":"qwen-3-7-max","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":2.7,"diem":2.7},"cache_input":{"usd":0.27,"diem":0.27},"cache_write":{"usd":3.35,"diem":3.35},"output":{"usd":8.05,"diem":8.05}},"traits":[],"name":"Qwen 3.7 Max","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779408000},{"id":"qwen-3-7-plus","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.5,"diem":0.5},"cache_input":{"usd":0.05,"diem":0.05},"cache_write":{"usd":0.625,"diem":0.625},"output":{"usd":2,"diem":2},"extended":{"context_token_threshold":256000,"input":{"usd":1.5,"diem":1.5},"output":{"usd":6,"diem":6},"cache_input":{"usd":0.15,"diem":0.15},"cache_write":{"usd":1.875,"diem":1.875}}},"traits":[],"name":"Qwen 3.7 Plus","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1780358400},{"id":"e2ee-qwen3-30b-a3b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.19,"diem":0.19},"output":{"usd":0.69,"diem":0.69}},"traits":[],"name":"Qwen3 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"qwen3-vl-235b-a22b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.21,"diem":0.21},"cache_input":{"usd":0.1,"diem":0.1},"output":{"usd":1.9,"diem":1.9}},"traits":["default_vision"],"name":"Qwen3 VL 235B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1768521600},{"id":"e2ee-qwen3-vl-30b-a3b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":0.9,"diem":0.9}},"traits":[],"name":"Qwen3 VL 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-qwen3-6-35b-a3b-uncensored-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.38,"diem":0.38},"output":{"usd":1.88,"diem":1.88}},"traits":[],"name":"Qwen3.6 35B A3B Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779580800},{"id":"venice-uncensored-role-play","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.5,"diem":0.5},"output":{"usd":2,"diem":2}},"traits":[],"name":"Venice Role Play Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771545600},{"id":"e2ee-venice-uncensored-24b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":1.15,"diem":1.15}},"traits":[],"name":"Venice Uncensored 1.1","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"venice-uncensored-1-2","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.2,"diem":0.2},"output":{"usd":0.9,"diem":0.9}},"traits":["most_uncensored"],"name":"Venice Uncensored 1.2","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775001600},{"id":"elevenlabs/scribe-v2","type":"asr","model_spec":{"privacy":"anonymized","pricing":{"per_audio_second":{"usd":0.000167,"diem":0.000167}},"traits":[],"name":"ElevenLabs Scribe V2"},"created":1776384000},{"id":"nvidia/parakeet-tdt-0.6b-v3","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Parakeet ASR"},"created":1760136444},{"id":"openai/whisper-large-v3","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Whisper Large V3"},"created":1736899200},{"id":"fal-ai/wizper","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Wizper (Whisper v3)"},"created":1776384000},{"id":"stt-xai-v1","type":"asr","model_spec":{"privacy":"anonymized","pricing":{"per_audio_second":{"usd":0.000031480000000000004,"diem":0.000031480000000000004}},"traits":[],"name":"xAI Speech to Text v1"},"created":1776470400},{"id":"upscaler","type":"upscale","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Upscaler"},"created":1744453050},{"id":"wai-Illustrious","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Anime (WAI)"},"created":1736635129},{"id":"bria-bg-remover","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Background Remover"},"created":1772064000},{"id":"chroma","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Chroma"},"created":1769731200},{"id":"flux-2-max","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.09,"diem":0.09},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Flux 2 Max"},"created":1764086377},{"id":"flux-2-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Flux 2 Pro"},"created":1764086377},{"id":"gpt-image-1-5","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.26,"diem":0.26},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"GPT Image 1.5"},"created":1765986864},{"id":"gpt-image-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.27,"diem":0.27},"2K":{"usd":0.51,"diem":0.51},"4K":{"usd":0.84,"diem":0.84}},"quality":{"1K":{"high":{"usd":0.26,"diem":0.26},"low":{"usd":0.02,"diem":0.02},"medium":{"usd":0.07,"diem":0.07}},"2K":{"high":{"usd":0.5,"diem":0.5},"low":{"usd":0.03,"diem":0.03},"medium":{"usd":0.13,"diem":0.13}},"4K":{"high":{"usd":0.83,"diem":0.83},"low":{"usd":0.05,"diem":0.05},"medium":{"usd":0.21,"diem":0.21}}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"GPT Image 2"},"created":1776729600},{"id":"grok-imagine-image","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Grok Imagine"},"created":1775692800},{"id":"grok-imagine-image-quality","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.08,"diem":0.08},"2K":{"usd":0.1,"diem":0.1}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Grok Imagine High Quality (SOTA)"},"created":1778112000},{"id":"hunyuan-image-v3","type":"image","model_spec":{"betaModel":true,"privacy":"private","pricing":{"generation":{"usd":0.09,"diem":0.09},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Hunyuan Image 3.0"},"created":1772323200},{"id":"ideogram-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Ideogram V4"},"created":1780444800},{"id":"imagineart-1.5-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"ImagineArt 1.5 Pro"},"created":1769437800},{"id":"krea-2-turbo","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea 2 Turbo"},"created":1782777600},{"id":"krea-v2-large","type":"image","model_spec":{"betaModel":true,"privacy":"anonymized","pricing":{"generation":{"usd":0.07,"diem":0.07},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea v2 Large"},"created":1779408000},{"id":"krea-v2-medium","type":"image","model_spec":{"betaModel":true,"privacy":"anonymized","pricing":{"generation":{"usd":0.04,"diem":0.04},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea v2 Medium"},"created":1779408000},{"id":"luma-uni-1","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Luma Uni-1"},"created":1781654400},{"id":"luma-uni-1-max","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.12,"diem":0.12},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Luma Uni-1 Max"},"created":1781654400},{"id":"lustify-sdxl","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Lustify SDXL"},"created":1738704152},{"id":"lustify-v7","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["most_uncensored"],"name":"Lustify v7"},"created":1736635129},{"id":"lustify-v8","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["most_uncensored"],"name":"Lustify v8"},"created":1774828800},{"id":"nano-banana-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.14,"diem":0.14},"4K":{"usd":0.19,"diem":0.19}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana 2"},"created":1772064000},{"id":"nano-banana-2-lite","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana 2 Lite"},"created":1782777600},{"id":"nano-banana-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.18,"diem":0.18},"2K":{"usd":0.23,"diem":0.23},"4K":{"usd":0.35,"diem":0.35}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana Pro"},"created":1763653951},{"id":"qwen-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["highest_quality"],"name":"Qwen Image"},"created":1736635129},{"id":"qwen-image-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Qwen Image 2"},"created":1772582400},{"id":"qwen-image-2-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.1,"diem":0.1},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Qwen Image 2 Pro"},"created":1772582400},{"id":"recraft-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Recraft V4"},"created":1770854400},{"id":"recraft-v4-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.29,"diem":0.29},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Recraft V4 Pro"},"created":1770854400},{"id":"seedream-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Seedream V4.5"},"created":1762383600},{"id":"seedream-v5-lite","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Seedream V5 Lite"},"created":1771804800},{"id":"venice-sd35","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["eliza-default"],"name":"Venice SD35"},"created":1743099022},{"id":"wan-2-7-text-to-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.0375,"diem":0.0375},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Wan 2.7"},"created":1775001600},{"id":"wan-2-7-pro-text-to-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.09375,"diem":0.09375},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Wan 2.7 Pro"},"created":1775001600},{"id":"z-image-turbo","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["default","fastest"],"name":"Z-Image Turbo"},"created":1764758779}]; + const STATIC_MODELS = [{"id":"firered-image-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04}},"traits":[],"name":"FireRed Edit"},"created":1774396800},{"id":"flux-2-max-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.19,"diem":0.19}},"traits":[],"name":"Flux 2 Max"},"created":1767571200},{"id":"gpt-image-1-5-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.36,"diem":0.36}},"traits":[],"name":"GPT Image 1.5"},"created":1767555000},{"id":"gpt-image-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.36,"diem":0.36},"resolutions":{"1K":{"usd":0.36,"diem":0.36},"2K":{"usd":0.53,"diem":0.53},"4K":{"usd":0.85,"diem":0.85}},"quality":{"1K":{"high":{"usd":0.36,"diem":0.36},"low":{"usd":0.03,"diem":0.03},"medium":{"usd":0.1,"diem":0.1}},"2K":{"high":{"usd":0.53,"diem":0.53},"low":{"usd":0.04,"diem":0.04},"medium":{"usd":0.15,"diem":0.15}},"4K":{"high":{"usd":0.86,"diem":0.86},"low":{"usd":0.06,"diem":0.06},"medium":{"usd":0.22,"diem":0.22}}}},"traits":[],"name":"GPT Image 2"},"created":1776729600},{"id":"grok-imagine-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04},"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}}},"traits":[],"name":"Grok Imagine"},"created":1769644800},{"id":"grok-imagine-quality-edit","type":"inpaint","model_spec":{"privacy":"private","pricing":{"inpaint":{"usd":0.1,"diem":0.1},"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.12,"diem":0.12}}},"traits":[],"name":"Grok Imagine High Quality"},"created":1778198400},{"id":"luma-uni-1-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.06,"diem":0.06}},"traits":[],"name":"Luma Uni-1"},"created":1781654400},{"id":"luma-uni-1-max-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.13,"diem":0.13}},"traits":[],"name":"Luma Uni-1 Max"},"created":1781654400},{"id":"nano-banana-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.1,"diem":0.1},"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.14,"diem":0.14},"4K":{"usd":0.19,"diem":0.19}}},"traits":[],"name":"Nano Banana 2"},"created":1772064000},{"id":"nano-banana-2-lite-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.06,"diem":0.06}},"traits":[],"name":"Nano Banana 2 Lite"},"created":1782777600},{"id":"nano-banana-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.18,"diem":0.18},"resolutions":{"1K":{"usd":0.18,"diem":0.18},"2K":{"usd":0.23,"diem":0.23},"4K":{"usd":0.35,"diem":0.35}}},"traits":[],"name":"Nano Banana Pro"},"created":1765584000},{"id":"qwen-edit-uncensored","type":"inpaint","model_spec":{"betaModel":true,"privacy":"private","pricing":{"inpaint":{"usd":0.04,"diem":0.04}},"traits":[],"name":"Qwen Edit Uncensored"},"created":1780531200},{"id":"qwen-image-2-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Qwen Image 2"},"created":1772582400},{"id":"qwen-image-2-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.1,"diem":0.1}},"traits":[],"name":"Qwen Image 2 Pro"},"created":1772582400},{"id":"seedream-v4-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Seedream V4.5"},"created":1767484800},{"id":"seedream-v5-lite-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.05,"diem":0.05}},"traits":[],"name":"Seedream V5 Lite"},"created":1771804800},{"id":"seedream-v5-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.11,"diem":0.11},"resolutions":{"1K":{"usd":0.06,"diem":0.06},"2K":{"usd":0.11,"diem":0.11}}},"traits":[],"name":"Seedream V5 Pro"},"created":1783468800},{"id":"wan-2-7-pro-edit","type":"inpaint","model_spec":{"privacy":"anonymized","pricing":{"inpaint":{"usd":0.094,"diem":0.094}},"traits":[],"name":"Wan 2.7 Pro Edit"},"created":1776902400},{"id":"tts-chatterbox-hd","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":50,"diem":50}},"traits":[],"name":"Chatterbox HD (Resemble AI)","voices":["Aurora","Blade","Britney","Carl","Cliff","Richard","Rico","Siobhan","Vicky"]},"created":1776384000},{"id":"tts-elevenlabs-turbo-v2-5","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":62.5,"diem":62.5}},"traits":[],"name":"ElevenLabs Turbo v2.5","voices":["Alice","Aria","Bill","Brian","Callum","Charlie","Charlotte","Chris","Daniel","Eric","George","Jessica","Laura","Liam","Lily","Matilda","Rachel","River","Roger","Sarah","Will"]},"created":1776384000},{"id":"tts-gemini-3-1-flash","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":187.5,"diem":187.5}},"traits":[],"name":"Gemini 3.1 Flash TTS","voices":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux","Iapetus","Kore","Laomedeia","Leda","Orus","Puck","Pulcherrima","Rasalgethi","Sadachbia","Sadaltager","Schedar","Sulafat","Umbriel","Vindemiatrix","Zephyr","Zubenelgenubi"]},"created":1776643200},{"id":"tts-gradium-v1","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":47.5,"diem":47.5}},"traits":[],"name":"Gradium TTS","voices":["Alice","Davi","Elise","Emma","Eva","Jack","Kent","Leo","Maximilian","Mia","Sergio","Valentina"]},"created":1780617600},{"id":"tts-inworld-1-5-max","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":12.5,"diem":12.5}},"traits":[],"name":"Inworld TTS-1.5 Max","voices":["Alex","Ashley","Craig","Edward","Elizabeth","Hades","Luna","Mark","Olivia","Pixie","Priya","Ronald","Sarah","Theodore"]},"created":1776384000},{"id":"tts-kokoro","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kokoro Text to Speech","voices":["af_alloy","af_aoede","af_bella","af_heart","af_jadzia","af_jessica","af_kore","af_nicole","af_nova","af_river","af_sarah","af_sky","am_adam","am_echo","am_eric","am_fenrir","am_liam","am_michael","am_onyx","am_puck","am_santa","bf_alice","bf_emma","bf_lily","bm_daniel","bm_fable","bm_george","bm_lewis","ef_dora","em_alex","em_santa","ff_siwis","hf_alpha","hf_beta","hm_omega","hm_psi","if_sara","im_nicola","jf_alpha","jf_gongitsune","jf_nezumi","jf_tebukuro","jm_kumo","pf_dora","pm_alex","pm_santa","zf_xiaobei","zf_xiaoni","zf_xiaoxiao","zf_xiaoyi","zm_yunjian","zm_yunxi","zm_yunxia","zm_yunyang"]},"created":1742418046},{"id":"tts-minimax-speech-02-hd","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":125,"diem":125}},"traits":[],"name":"MiniMax Speech-02 HD","voices":["CalmWoman","CasualGuy","DeepVoiceMan","DeterminedMan","ElegantMan","ExuberantGirl","FriendlyPerson","ImposingManner","InspirationalGirl","LivelyGirl","LovelyGirl","PatientMan","SweetGirl","WiseWoman","YoungKnight"]},"created":1776384000},{"id":"tts-orpheus","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":62.5,"diem":62.5}},"traits":[],"name":"Orpheus TTS","voices":["dan","jess","leah","leo","mia","tara","zac","zoe"]},"created":1776384000},{"id":"tts-qwen3-0-6b","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":87.5,"diem":87.5}},"traits":[],"name":"Qwen 3 TTS 0.6B","voices":["Aiden","Dylan","Eric","Ono_Anna","Ryan","Serena","Sohee","Uncle_Fu","Vivian"]},"created":1773100800},{"id":"tts-qwen3-1-7b","type":"tts","model_spec":{"privacy":"private","pricing":{"input":{"usd":112.5,"diem":112.5}},"traits":[],"name":"Qwen 3 TTS 1.7B","voices":["Aiden","Dylan","Eric","Ono_Anna","Ryan","Serena","Sohee","Uncle_Fu","Vivian"]},"created":1773100800},{"id":"tts-xai-v1","type":"tts","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":18.75,"diem":18.75}},"traits":[],"name":"xAI TTS v1","voices":["ara","eve","leo","rex","sal"]},"created":1776384000},{"id":"text-embedding-bge-en-icl","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"BGE-EN-ICL"},"created":1776384000},{"id":"text-embedding-bge-m3","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.6,"diem":0.6}},"traits":[],"name":"BGE-M3"},"created":1741924661},{"id":"gemini-embedding-2-preview","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":0.25,"diem":0.25}},"traits":[],"name":"Gemini Embedding 2 Preview"},"created":1776384000},{"id":"text-embedding-multilingual-e5-large-instruct","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Multilingual E5 Large Instruct"},"created":1776384000},{"id":"text-embedding-nemotron-embed-vl-1b-v2","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Nemotron Embed VL 1B v2"},"created":1776384000},{"id":"text-embedding-qwen3-0-6b","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Qwen3 Embedding 0.6B"},"created":1776384000},{"id":"text-embedding-qwen3-8b","type":"embedding","model_spec":{"privacy":"private","pricing":{"input":{"usd":0.0125,"diem":0.0125},"output":{"usd":0.0125,"diem":0.0125}},"traits":[],"name":"Qwen3 Embedding 8B"},"created":1776384000},{"id":"text-embedding-3-large","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.1625,"diem":0.1625},"output":{"usd":0.1625,"diem":0.1625}},"traits":[],"name":"Text Embedding 3 Large"},"created":1776384000},{"id":"text-embedding-3-small","type":"embedding","model_spec":{"privacy":"anonymized","pricing":{"input":{"usd":0.025,"diem":0.025},"output":{"usd":0.025,"diem":0.025}},"traits":[],"name":"Text Embedding 3 Small"},"created":1776384000},{"id":"ace-step-15","type":"music","model_spec":{"privacy":"anonymized","pricing":{"durations":{"60":{"usd":0.03,"diem":0.03,"min_seconds":60,"max_seconds":60},"90":{"usd":0.04,"diem":0.04,"min_seconds":61,"max_seconds":90},"120":{"usd":0.05,"diem":0.05,"min_seconds":91,"max_seconds":120},"150":{"usd":0.06,"diem":0.06,"min_seconds":121,"max_seconds":150},"180":{"usd":0.07,"diem":0.07,"min_seconds":151,"max_seconds":180},"210":{"usd":0.08,"diem":0.08,"min_seconds":181,"max_seconds":210}}},"traits":[],"name":"ACE-Step 1.5"},"created":1771804800},{"id":"elevenlabs-tts-multilingual-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_thousand_characters":{"usd":0.11500000000000002,"diem":0.11500000000000002}},"traits":[],"name":"ElevenLabs Multilingual v2","voices":["Aria","Roger","Sarah","Laura","Charlie","George","Callum","River","Liam","Charlotte","Alice","Matilda","Will","Jessica","Eric","Chris","Brian","Daniel","Lily","Bill"]},"created":1772236800},{"id":"elevenlabs-music","type":"music","model_spec":{"privacy":"anonymized","pricing":{"durations":{"60":{"usd":0.69,"diem":0.69,"min_seconds":3,"max_seconds":60},"120":{"usd":1.38,"diem":1.38,"min_seconds":61,"max_seconds":120},"180":{"usd":2.08,"diem":2.08,"min_seconds":121,"max_seconds":180},"240":{"usd":2.76,"diem":2.76,"min_seconds":181,"max_seconds":240},"300":{"usd":3.45,"diem":3.45,"min_seconds":241,"max_seconds":300},"360":{"usd":4.15,"diem":4.15,"min_seconds":301,"max_seconds":360},"420":{"usd":4.84,"diem":4.84,"min_seconds":361,"max_seconds":420},"480":{"usd":5.52,"diem":5.52,"min_seconds":421,"max_seconds":480},"540":{"usd":6.22,"diem":6.22,"min_seconds":481,"max_seconds":540},"600":{"usd":6.9,"diem":6.9,"min_seconds":541,"max_seconds":600}}},"traits":[],"name":"ElevenLabs Music"},"created":1771718400},{"id":"elevenlabs-sound-effects-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_second":{"usd":0.0023000000000000004,"diem":0.0023000000000000004}},"traits":[],"name":"ElevenLabs Sound Effects"},"created":1772236800},{"id":"elevenlabs-tts-v3","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_thousand_characters":{"usd":0.11500000000000002,"diem":0.11500000000000002}},"traits":[],"name":"ElevenLabs TTS v3","voices":["Aria","Roger","Sarah","Laura","Charlie","George","Callum","River","Liam","Charlotte","Alice","Matilda","Will","Jessica","Eric","Chris","Brian","Daniel","Lily","Bill"]},"created":1772236800},{"id":"lyria-3-pro","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.1,"diem":0.1}},"traits":[],"name":"Lyria 3 Pro"},"created":1779408000},{"id":"minimax-music-v2","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.04,"diem":0.04}},"traits":[],"name":"MiniMax Music 2.0"},"created":1771718400},{"id":"minimax-music-v25","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.18,"diem":0.18}},"traits":[],"name":"MiniMax Music 2.5"},"created":1775952000},{"id":"minimax-music-v26","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.18,"diem":0.18}},"traits":[],"name":"MiniMax Music 2.6"},"created":1775952000},{"id":"mmaudio-v2-text-to-audio","type":"music","model_spec":{"privacy":"anonymized","pricing":{"per_second":{"usd":0.0009200000000000001,"diem":0.0009200000000000001}},"traits":[],"name":"MMAudio V2"},"created":1772236800},{"id":"stable-audio-25","type":"music","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.19,"diem":0.19}},"traits":[],"name":"Stable Audio 2.5"},"created":1771718400},{"id":"gemini-omni-flash-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash"},"created":1782777600},{"id":"gemini-omni-flash-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash"},"created":1782777600},{"id":"gemini-omni-flash-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Gemini Omni Flash R2V"},"created":1782777600},{"id":"grok-imagine-1-5-image-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine 1.5 Private"},"created":1780185600},{"id":"grok-imagine-text-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776038400},{"id":"grok-imagine-image-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776211200},{"id":"grok-imagine-video-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine Private"},"created":1776211200},{"id":"grok-imagine-reference-to-video-private","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Grok Imagine R2V Private"},"created":1776211200},{"id":"happyhorse-1-0-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0"},"created":1776988800},{"id":"happyhorse-1-0-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0"},"created":1777075200},{"id":"happyhorse-1-0-video-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0 Edit"},"created":1777248000},{"id":"happyhorse-1-0-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.0 Reference"},"created":1777248000},{"id":"happyhorse-1-1-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1"},"created":1782086400},{"id":"happyhorse-1-1-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1"},"created":1782086400},{"id":"happyhorse-1-1-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"HappyHorse 1.1 Reference"},"created":1782086400},{"id":"kling-2.5-turbo-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.5 Turbo Pro"},"created":1758825748},{"id":"kling-2.5-turbo-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.5 Turbo Pro"},"created":1758825748},{"id":"kling-2.6-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.6 Pro"},"created":1733186476},{"id":"kling-2.6-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling 2.6 Pro"},"created":1733186476},{"id":"kling-o3-4k-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K"},"created":1776816000},{"id":"kling-o3-4k-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K"},"created":1776816000},{"id":"kling-o3-4k-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 4K R2V"},"created":1776816000},{"id":"kling-o3-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Pro"},"created":1770076800},{"id":"kling-o3-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Pro"},"created":1770076800},{"id":"kling-o3-pro-reference-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Kling O3 Pro R2V"},"created":1773014400},{"id":"kling-o3-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Standard"},"created":1770076800},{"id":"kling-o3-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling O3 Standard"},"created":1770076800},{"id":"kling-o3-standard-reference-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Kling O3 Standard R2V"},"created":1773100800},{"id":"kling-v3-4k-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 4K"},"created":1776816000},{"id":"kling-v3-4k-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 4K R2V"},"created":1776816000},{"id":"kling-v3-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro"},"created":1770076800},{"id":"kling-v3-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro"},"created":1770076800},{"id":"kling-v3-pro-motion-control","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Pro Motion Control"},"created":1779667200},{"id":"kling-v3-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard"},"created":1770076800},{"id":"kling-v3-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard"},"created":1770076800},{"id":"kling-v3-standard-motion-control","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Standard Motion Control"},"created":1779667200},{"id":"kling-v3-turbo-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Pro"},"created":1781654400},{"id":"kling-v3-turbo-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Pro"},"created":1781654400},{"id":"kling-v3-turbo-standard-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Standard"},"created":1781654400},{"id":"kling-v3-turbo-standard-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Kling V3 Turbo Standard"},"created":1781654400},{"id":"longcat-distilled-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Distilled"},"created":1764806400},{"id":"longcat-distilled-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Distilled"},"created":1764806400},{"id":"longcat-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Full Quality"},"created":1764806400},{"id":"longcat-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Longcat Full Quality"},"created":1764806400},{"id":"ltx-2-19b-full-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B"},"created":1767830400},{"id":"ltx-2-19b-full-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B"},"created":1767830400},{"id":"ltx-2-19b-distilled-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B Distilled"},"created":1767830400},{"id":"ltx-2-19b-distilled-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"LTX Video 2.0 19B Distilled"},"created":1767830400},{"id":"ltx-2-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Fast"},"created":1732684002},{"id":"ltx-2-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Fast"},"created":1732684002},{"id":"ltx-2-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Full Quality"},"created":1732684002},{"id":"ltx-2-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.0 Full Quality"},"created":1732684002},{"id":"ltx-2-v2-3-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Fast"},"created":1772668800},{"id":"ltx-2-v2-3-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Fast"},"created":1772668800},{"id":"ltx-2-v2-3-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Full Quality"},"created":1772668800},{"id":"ltx-2-v2-3-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"LTX Video 2.3 Full Quality"},"created":1772668800},{"id":"ovi-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Ovi"},"created":1758825748},{"id":"pixverse-c1-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1"},"created":1775865600},{"id":"pixverse-c1-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1"},"created":1775865600},{"id":"pixverse-c1-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1 R2V"},"created":1775865600},{"id":"pixverse-c1-transition","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse C1 Transition"},"created":1775865600},{"id":"pixverse-v5.6-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6"},"created":1769472000},{"id":"pixverse-v5.6-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6"},"created":1769472000},{"id":"pixverse-v5.6-transition","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"PixVerse v5.6 Transition"},"created":1769472000},{"id":"runway-gen4-aleph","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4 Aleph"},"created":1769040000},{"id":"runway-gen4-turbo","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4 Turbo"},"created":1769040000},{"id":"runway-gen4-5","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4.5"},"created":1775952000},{"id":"runway-gen4-5-text","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Runway Gen-4.5"},"created":1775952000},{"id":"sora-2-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-pro-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2 Pro","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"sora-2-pro-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Sora 2 Pro","deprecation":{"autoRemap":false,"date":"2026-09-24T00:00:00.000Z","removesAt":"2026-09-24T00:00:00.000Z"}},"created":1758825748},{"id":"topaz-video-upscale","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Topaz Video Upscale"},"created":1775174400},{"id":"veo3-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Fast"},"created":1758825748},{"id":"veo3-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Fast"},"created":1758825748},{"id":"veo3-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Full Quality"},"created":1758825748},{"id":"veo3-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3 Full Quality"},"created":1758825748},{"id":"veo3.1-fast-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Fast"},"created":1729030447},{"id":"veo3.1-fast-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Fast"},"created":1729030447},{"id":"veo3.1-full-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Full Quality"},"created":1729030447},{"id":"veo3.1-full-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Veo 3.1 Full Quality"},"created":1729030447},{"id":"vidu-q3-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Vidu Q3"},"created":1769817600},{"id":"vidu-q3-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Vidu Q3"},"created":1769817600},{"id":"wan-2.1-pro-image-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Wan 2.1 Pro"},"created":1758825748},{"id":"wan-2.2-a14b-text-to-video","type":"video","model_spec":{"privacy":"private","traits":[],"name":"Wan 2.2 A14B"},"created":1758825748},{"id":"wan-2.5-preview-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.5 Preview"},"created":1758825748},{"id":"wan-2.5-preview-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.5 Preview"},"created":1758825748},{"id":"wan-2.6-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6"},"created":1765843200},{"id":"wan-2.6-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6"},"created":1765843200},{"id":"wan-2.6-flash-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.6 Flash"},"created":1768824000},{"id":"wan-2-7-text-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7"},"created":1775088000},{"id":"wan-2-7-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7"},"created":1775088000},{"id":"wan-2-7-video-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Edit"},"created":1775088000},{"id":"wan-2-7-reference-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Reference"},"created":1775088000},{"id":"wan-2-7-uncensored-image-to-video","type":"video","model_spec":{"privacy":"anonymized","traits":[],"name":"Wan 2.7 Uncensored"},"created":1778284800},{"id":"wan-2-7-uncensored-text-to-video","type":"video","model_spec":{"betaModel":true,"privacy":"anonymized","traits":[],"name":"Wan 2.7 Uncensored"},"created":1780444800},{"id":"aion-labs-aion-2-0","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.25,"diem":0.25},"output":{"usd":2,"diem":2}},"traits":[],"name":"Aion 2.0","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false},"deprecation":{"autoRemap":false,"date":"2026-07-15T00:00:00.000Z","removesAt":"2026-07-15T00:00:00.000Z","replacementModelId":"aion-labs-aion-3-0"}},"created":1774310400},{"id":"aion-labs-aion-3-0","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":3.75,"diem":3.75},"cache_input":{"usd":0.9375,"diem":0.9375},"output":{"usd":7.5,"diem":7.5}},"traits":[],"name":"Aion 3.0","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783468800},{"id":"aion-labs-aion-3-0-mini","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.875,"diem":0.875},"cache_input":{"usd":0.225,"diem":0.225},"output":{"usd":1.75,"diem":1.75}},"traits":[],"name":"Aion 3.0 Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783468800},{"id":"claude-fable-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":12,"diem":12},"cache_input":{"usd":1.2,"diem":1.2},"cache_write":{"usd":15,"diem":15},"output":{"usd":60,"diem":60}},"traits":[],"name":"Claude Fable 5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781049600},{"id":"claude-opus-4-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":198000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1764979200},{"id":"claude-opus-4-6","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.6","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770249600},{"id":"claude-opus-4-7","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776297600},{"id":"claude-opus-4-7-fast","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":36,"diem":36},"cache_input":{"usd":3.6,"diem":3.6},"cache_write":{"usd":45,"diem":45},"output":{"usd":180,"diem":180}},"traits":[],"name":"Claude Opus 4.7 Fast","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false},"deprecation":{"autoRemap":false,"date":"2026-07-24T00:00:00.000Z","removesAt":"2026-07-24T00:00:00.000Z"}},"created":1778716800},{"id":"claude-opus-4-8","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6,"diem":6},"cache_input":{"usd":0.6,"diem":0.6},"cache_write":{"usd":7.5,"diem":7.5},"output":{"usd":30,"diem":30}},"traits":[],"name":"Claude Opus 4.8","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779926400},{"id":"claude-opus-4-8-fast","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":12,"diem":12},"cache_input":{"usd":1.2,"diem":1.2},"cache_write":{"usd":15,"diem":15},"output":{"usd":60,"diem":60}},"traits":[],"name":"Claude Opus 4.8 Fast","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779926400},{"id":"claude-sonnet-4-5","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":198000,"pricing":{"input":{"usd":3.75,"diem":3.75},"cache_input":{"usd":0.375,"diem":0.375},"cache_write":{"usd":4.69,"diem":4.69},"output":{"usd":18.75,"diem":18.75}},"traits":[],"name":"Claude Sonnet 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1736899200},{"id":"claude-sonnet-4-6","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3.6,"diem":3.6},"cache_input":{"usd":0.36,"diem":0.36},"cache_write":{"usd":4.5,"diem":4.5},"output":{"usd":18,"diem":18}},"traits":[],"name":"Claude Sonnet 4.6","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771286400},{"id":"claude-sonnet-5","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3,"diem":3},"cache_input":{"usd":0.3,"diem":0.3},"cache_write":{"usd":3.75,"diem":3.75},"output":{"usd":15,"diem":15}},"traits":[],"name":"Claude Sonnet 5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1782691200},{"id":"deepseek-v3.2","type":"text","model_spec":{"privacy":"private","availableContextTokens":160000,"pricing":{"input":{"usd":0.33,"diem":0.33},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":0.48,"diem":0.48}},"traits":[],"name":"DeepSeek V3.2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1764806400},{"id":"deepseek-v4-flash","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.138,"diem":0.138},"cache_input":{"usd":0.028,"diem":0.028},"output":{"usd":0.275,"diem":0.275}},"traits":[],"name":"DeepSeek V4 Flash","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"e2ee-deepseek-v4-flash","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":0.182,"diem":0.182},"cache_input":{"usd":0.038,"diem":0.038},"output":{"usd":0.373,"diem":0.373}},"traits":[],"name":"DeepSeek V4 Flash","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783382400},{"id":"deepseek-v4-pro","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":1.65,"diem":1.65},"cache_input":{"usd":0.33,"diem":0.33},"output":{"usd":3.301,"diem":3.301}},"traits":[],"name":"DeepSeek V4 Pro","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"gemini-3-flash-preview","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":0.7,"diem":0.7},"cache_input":{"usd":0.07,"diem":0.07},"output":{"usd":3.75,"diem":3.75}},"traits":[],"name":"Gemini 3 Flash Preview","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1766102400},{"id":"gemini-3-1-pro-preview","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":2.5,"diem":2.5},"cache_input":{"usd":0.5,"diem":0.5},"cache_write":{"usd":0.5,"diem":0.5},"output":{"usd":15,"diem":15},"extended":{"context_token_threshold":200000,"input":{"usd":5,"diem":5},"output":{"usd":22.5,"diem":22.5},"cache_input":{"usd":0.5,"diem":0.5},"cache_write":{"usd":0.5,"diem":0.5}}},"traits":[],"name":"Gemini 3.1 Pro Preview","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":20,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771459200},{"id":"gemini-3-5-flash","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":1.55,"diem":1.55},"cache_input":{"usd":0.155,"diem":0.155},"cache_write":{"usd":0.086,"diem":0.086},"output":{"usd":9.45,"diem":9.45}},"traits":[],"name":"Gemini 3.5 Flash","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":20,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779408000},{"id":"e2ee-gemma-3-27b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":40000,"pricing":{"input":{"usd":0.14,"diem":0.14},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"Gemma 3 27B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-gemma-4-26b-a4b-uncensored-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":64000,"pricing":{"input":{"usd":0.19,"diem":0.19},"output":{"usd":0.88,"diem":0.88}},"traits":[],"name":"Gemma 4 26B A4B Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779580800},{"id":"e2ee-gemma-4-31b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.139,"diem":0.139},"cache_input":{"usd":0.028,"diem":0.028},"output":{"usd":0.43,"diem":0.43}},"traits":[],"name":"Gemma 4 31B Instruct","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779235200},{"id":"gemma-4-uncensored","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1625,"diem":0.1625},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"Gemma 4 Uncensored","capabilities":{"optimizedForCode":false,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776038400},{"id":"zai-org-glm-4.6","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.43,"diem":0.43},"cache_input":{"usd":0.08,"diem":0.08},"output":{"usd":1.75,"diem":1.75}},"traits":[],"name":"GLM 4.6","capabilities":{"optimizedForCode":false,"quantization":"fp4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1711929600},{"id":"zai-org-glm-4.7","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.55,"diem":0.55},"cache_input":{"usd":0.11,"diem":0.11},"output":{"usd":2.65,"diem":2.65}},"traits":["default","most_intelligent","function_calling_default"],"name":"GLM 4.7","capabilities":{"optimizedForCode":false,"quantization":"fp4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1766534400},{"id":"e2ee-glm-4-7-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":4.15,"diem":4.15}},"traits":[],"name":"GLM 4.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"zai-org-glm-4.7-flash","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.125,"diem":0.125},"output":{"usd":0.5,"diem":0.5}},"traits":[],"name":"GLM 4.7 Flash","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769644800},{"id":"olafangensan-glm-4.7-flash-heretic","type":"text","model_spec":{"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":0.07,"diem":0.07},"cache_input":{"usd":0.035,"diem":0.035},"output":{"usd":0.4,"diem":0.4}},"traits":[],"name":"GLM 4.7 Flash Heretic","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770163200},{"id":"zai-org-glm-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.2,"diem":0.2},"output":{"usd":3.2,"diem":3.2}},"traits":[],"name":"GLM 5","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770768000},{"id":"z-ai-glm-5-turbo","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":200000,"pricing":{"input":{"usd":1.2,"diem":1.2},"cache_input":{"usd":0.24,"diem":0.24},"output":{"usd":4,"diem":4}},"traits":[],"name":"GLM 5 Turbo","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773532800},{"id":"zai-org-glm-5-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":1.54,"diem":1.54},"cache_input":{"usd":0.286,"diem":0.286},"output":{"usd":4.84,"diem":4.84}},"traits":[],"name":"GLM 5.1","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775520000},{"id":"e2ee-glm-5-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":200000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":4.15,"diem":4.15}},"traits":[],"name":"GLM 5.1","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"zai-org-glm-5-2","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":1.4,"diem":1.4},"cache_input":{"usd":0.26,"diem":0.26},"output":{"usd":4.4,"diem":4.4}},"traits":[],"name":"GLM 5.2","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781568000},{"id":"e2ee-glm-5-2-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":524288,"pricing":{"input":{"usd":1.75,"diem":1.75},"output":{"usd":5.75,"diem":5.75}},"traits":[],"name":"GLM 5.2","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781568000},{"id":"z-ai-glm-5v-turbo","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":200000,"pricing":{"input":{"usd":1.5,"diem":1.5},"cache_input":{"usd":0.3,"diem":0.3},"output":{"usd":5,"diem":5}},"traits":[],"name":"GLM 5V Turbo","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775001600},{"id":"google-gemma-3-27b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.12,"diem":0.12},"output":{"usd":0.2,"diem":0.2}},"traits":[],"name":"Google Gemma 3 27B Instruct","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1762214400},{"id":"google-gemma-4-26b-a4b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.13,"diem":0.13},"cache_input":{"usd":0.05,"diem":0.05},"output":{"usd":0.4,"diem":0.4}},"traits":[],"name":"Google Gemma 4 26B A4B Instruct","capabilities":{"optimizedForCode":false,"quantization":"bf16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775088000},{"id":"google-gemma-4-31b-it","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.12,"diem":0.12},"cache_input":{"usd":0.09,"diem":0.09},"output":{"usd":0.36,"diem":0.36}},"traits":[],"name":"Google Gemma 4 31B Instruct","capabilities":{"optimizedForCode":false,"quantization":"bf16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775174400},{"id":"e2ee-gpt-oss-120b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.13,"diem":0.13},"output":{"usd":0.65,"diem":0.65}},"traits":[],"name":"GPT OSS 120B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-gpt-oss-20b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.05,"diem":0.05},"output":{"usd":0.19,"diem":0.19}},"traits":[],"name":"GPT OSS 20B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"openai-gpt-4o-2024-11-20","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":3.125,"diem":3.125},"output":{"usd":12.5,"diem":12.5}},"traits":[],"name":"GPT-4o","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772236800},{"id":"openai-gpt-4o-mini-2024-07-18","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.1875,"diem":0.1875},"cache_input":{"usd":0.09375,"diem":0.09375},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"GPT-4o Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772236800},{"id":"openai-gpt-52","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1765584000},{"id":"openai-gpt-52-codex","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":256000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.2 Codex","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1736899200},{"id":"openai-gpt-53-codex","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":400000,"pricing":{"input":{"usd":2.19,"diem":2.19},"cache_input":{"usd":0.219,"diem":0.219},"output":{"usd":17.5,"diem":17.5}},"traits":[],"name":"GPT-5.3 Codex","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771891200},{"id":"openai-gpt-54","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":3.13,"diem":3.13},"cache_input":{"usd":0.313,"diem":0.313},"output":{"usd":18.8,"diem":18.8}},"traits":[],"name":"GPT-5.4","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"openai-gpt-54-mini","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":400000,"pricing":{"input":{"usd":0.9375,"diem":0.9375},"cache_input":{"usd":0.09375,"diem":0.09375},"output":{"usd":5.625,"diem":5.625}},"traits":[],"name":"GPT-5.4 Mini","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1774569600},{"id":"openai-gpt-54-pro","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":37.5,"diem":37.5},"output":{"usd":225,"diem":225},"extended":{"context_token_threshold":272000,"input":{"usd":75,"diem":75},"output":{"usd":337.5,"diem":337.5}}},"traits":[],"name":"GPT-5.4 Pro","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"medium","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"openai-gpt-55","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":6.25,"diem":6.25},"cache_input":{"usd":0.625,"diem":0.625},"output":{"usd":37.5,"diem":37.5},"extended":{"context_token_threshold":272000,"input":{"usd":12.5,"diem":12.5},"output":{"usd":56.25,"diem":56.25},"cache_input":{"usd":1.25,"diem":1.25}}},"traits":[],"name":"GPT-5.5","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776902400},{"id":"openai-gpt-55-pro","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":37.5,"diem":37.5},"output":{"usd":225,"diem":225}},"traits":[],"name":"GPT-5.5 Pro","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","minimal","low","medium","high"],"defaultReasoningEffort":"medium","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"grok-4-20","type":"text","model_spec":{"privacy":"private","availableContextTokens":2000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.20","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1773273600},{"id":"grok-4-20-multi-agent","type":"text","model_spec":{"privacy":"private","availableContextTokens":2000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.20 Multi-Agent","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1773273600},{"id":"grok-4-3","type":"text","model_spec":{"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":1.42,"diem":1.42},"cache_input":{"usd":0.23,"diem":0.23},"output":{"usd":2.83,"diem":2.83},"extended":{"context_token_threshold":200000,"input":{"usd":2.83,"diem":2.83},"output":{"usd":5.67,"diem":5.67},"cache_input":{"usd":0.45,"diem":0.45}}},"traits":[],"name":"Grok 4.3","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1776470400},{"id":"grok-4-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":500000,"pricing":{"input":{"usd":2.27,"diem":2.27},"cache_input":{"usd":0.57,"diem":0.57},"output":{"usd":6.8,"diem":6.8},"extended":{"context_token_threshold":200000,"input":{"usd":4.53,"diem":4.53},"output":{"usd":13.6,"diem":13.6},"cache_input":{"usd":1.13,"diem":1.13}}},"traits":[],"name":"Grok 4.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":true}},"created":1783382400},{"id":"grok-build-0-1","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":1,"diem":1},"cache_input":{"usd":0.2,"diem":0.2},"output":{"usd":2,"diem":2},"extended":{"context_token_threshold":200000,"input":{"usd":2,"diem":2},"output":{"usd":4,"diem":4},"cache_input":{"usd":0.4,"diem":0.4}}},"traits":[],"name":"Grok Build 0.1","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779321600},{"id":"hermes-3-llama-3.1-405b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":1.1,"diem":1.1},"output":{"usd":3,"diem":3}},"traits":[],"name":"Hermes 3 Llama 3.1 405b","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1758758400},{"id":"kimi-k2-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.56,"diem":0.56},"cache_input":{"usd":0.22,"diem":0.22},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769548800},{"id":"kimi-k2-6","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.75,"diem":0.75},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.6","capabilities":{"optimizedForCode":true,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776643200},{"id":"kimi-k2-7-code","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.75,"diem":0.75},"cache_input":{"usd":0.16,"diem":0.16},"output":{"usd":3.5,"diem":3.5}},"traits":[],"name":"Kimi K2.7 Code","capabilities":{"optimizedForCode":true,"quantization":"int4","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781308800},{"id":"llama-3.2-3b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.6,"diem":0.6}},"traits":[],"name":"Llama 3.2 3B","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1727966436},{"id":"llama-3.3-70b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.7,"diem":0.7},"output":{"usd":2.8,"diem":2.8}},"traits":[],"name":"Llama 3.3 70B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1743897600},{"id":"mercury-2","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.3125,"diem":0.3125},"cache_input":{"usd":0.03125,"diem":0.03125},"output":{"usd":0.9375,"diem":0.9375}},"traits":[],"name":"Mercury 2","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771545600},{"id":"xiaomi-mimo-v2-5","type":"text","model_spec":{"privacy":"private","availableContextTokens":1000000,"pricing":{"input":{"usd":0.14,"diem":0.14},"cache_input":{"usd":0.05,"diem":0.05},"output":{"usd":0.28,"diem":0.28}},"traits":[],"name":"MiMo-V2.5","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":true,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781136000},{"id":"minimax-m25","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.27,"diem":0.27},"cache_input":{"usd":0.03,"diem":0.03},"output":{"usd":0.95,"diem":0.95}},"traits":[],"name":"MiniMax M2.5","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1770854400},{"id":"minimax-m27","type":"text","model_spec":{"privacy":"private","availableContextTokens":198000,"pricing":{"input":{"usd":0.375,"diem":0.375},"cache_input":{"usd":0.06875,"diem":0.06875},"output":{"usd":1.5,"diem":1.5}},"traits":[],"name":"MiniMax M2.7","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"minimax-m3-preview","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":524288,"pricing":{"input":{"usd":0.3,"diem":0.3},"cache_input":{"usd":0.06,"diem":0.06},"output":{"usd":1.2,"diem":1.2}},"traits":[],"name":"MiniMax M3 Preview","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1781222400},{"id":"mistral-small-3-2-24b-instruct","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.09375,"diem":0.09375},"output":{"usd":0.25,"diem":0.25}},"traits":[],"name":"Mistral Small 3.2 24B Instruct","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1768435200},{"id":"mistral-small-2603","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1875,"diem":0.1875},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"Mistral Small 4","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","high"],"defaultReasoningEffort":"high","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773619200},{"id":"nvidia-nemotron-cascade-2-30b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.14,"diem":0.14},"output":{"usd":0.8,"diem":0.8}},"traits":[],"name":"Nemotron Cascade 2 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1774310400},{"id":"nvidia-nemotron-3-nano-30b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.075,"diem":0.075},"output":{"usd":0.3,"diem":0.3}},"traits":[],"name":"NVIDIA Nemotron 3 Nano 30B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769472000},{"id":"nvidia-nemotron-3-ultra-550b-a55b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.625,"diem":0.625},"cache_input":{"usd":0.1875,"diem":0.1875},"output":{"usd":3.125,"diem":3.125}},"traits":[],"name":"NVIDIA Nemotron 3 Ultra","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1780531200},{"id":"openai-gpt-oss-120b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.07,"diem":0.07},"output":{"usd":0.3,"diem":0.3}},"traits":[],"name":"OpenAI GPT OSS 120B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1762387200},{"id":"e2ee-qwen-2-5-7b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.05,"diem":0.05},"output":{"usd":0.13,"diem":0.13}},"traits":[],"name":"Qwen 2.5 7B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"qwen3-235b-a22b-instruct-2507","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.15,"diem":0.15},"output":{"usd":0.75,"diem":0.75}},"traits":[],"name":"Qwen 3 235B A22B Instruct 2507","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-235b-a22b-thinking-2507","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.45,"diem":0.45},"output":{"usd":3.5,"diem":3.5}},"traits":["default_reasoning"],"name":"Qwen 3 235B A22B Thinking 2507","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-coder-480b-a35b-instruct-turbo","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.35,"diem":0.35},"cache_input":{"usd":0.04,"diem":0.04},"output":{"usd":1.5,"diem":1.5}},"traits":["default_code"],"name":"Qwen 3 Coder 480B Turbo","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1769472000},{"id":"qwen3-next-80b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.35,"diem":0.35},"output":{"usd":1.9,"diem":1.9}},"traits":[],"name":"Qwen 3 Next 80b","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1745903059},{"id":"qwen3-5-35b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.3125,"diem":0.3125},"cache_input":{"usd":0.15625,"diem":0.15625},"output":{"usd":1.25,"diem":1.25}},"traits":[],"name":"Qwen 3.5 35B A3B","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771977600},{"id":"qwen3-5-397b-a17b","type":"text","model_spec":{"privacy":"anonymized","availableContextTokens":128000,"pricing":{"input":{"usd":0.75,"diem":0.75},"output":{"usd":4.5,"diem":4.5}},"traits":[],"name":"Qwen 3.5 397B","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":5,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771200000},{"id":"qwen3-5-9b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.1,"diem":0.1},"output":{"usd":0.15,"diem":0.15}},"traits":[],"name":"Qwen 3.5 9B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":true,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1772668800},{"id":"qwen3-6-27b","type":"text","model_spec":{"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.325,"diem":0.325},"output":{"usd":3.25,"diem":3.25}},"traits":[],"name":"Qwen 3.6 27B","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":true,"reasoningEffortOptions":["none","low","medium","high"],"defaultReasoningEffort":"low","supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1776988800},{"id":"e2ee-qwen3-6-27b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.346,"diem":0.346},"cache_input":{"usd":0.171,"diem":0.171},"output":{"usd":3.46,"diem":3.46}},"traits":[],"name":"Qwen 3.6 27B FP8","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1783382400},{"id":"e2ee-qwen3-6-35b-a3b","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.182,"diem":0.182},"cache_input":{"usd":0.06,"diem":0.06},"output":{"usd":1.18,"diem":1.18}},"traits":[],"name":"Qwen 3.6 35B A3B FP8","capabilities":{"optimizedForCode":true,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779235200},{"id":"qwen-3-6-plus","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.625,"diem":0.625},"cache_input":{"usd":0.0625,"diem":0.0625},"cache_write":{"usd":0.78,"diem":0.78},"output":{"usd":3.75,"diem":3.75},"extended":{"context_token_threshold":256000,"input":{"usd":2.5,"diem":2.5},"output":{"usd":7.5,"diem":7.5},"cache_input":{"usd":0.0625,"diem":0.0625},"cache_write":{"usd":0.78,"diem":0.78}}},"traits":[],"name":"Qwen 3.6 Plus Uncensored","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775433600},{"id":"qwen-3-7-max","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":2.7,"diem":2.7},"cache_input":{"usd":0.27,"diem":0.27},"cache_write":{"usd":3.35,"diem":3.35},"output":{"usd":8.05,"diem":8.05}},"traits":[],"name":"Qwen 3.7 Max","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779408000},{"id":"qwen-3-7-plus","type":"text","model_spec":{"betaModel":true,"privacy":"anonymized","availableContextTokens":1000000,"pricing":{"input":{"usd":0.5,"diem":0.5},"cache_input":{"usd":0.05,"diem":0.05},"cache_write":{"usd":0.625,"diem":0.625},"output":{"usd":2,"diem":2},"extended":{"context_token_threshold":256000,"input":{"usd":1.5,"diem":1.5},"output":{"usd":6,"diem":6},"cache_input":{"usd":0.15,"diem":0.15},"cache_write":{"usd":1.875,"diem":1.875}}},"traits":[],"name":"Qwen 3.7 Plus","capabilities":{"optimizedForCode":true,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":true,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":true,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1780358400},{"id":"e2ee-qwen3-30b-a3b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":256000,"pricing":{"input":{"usd":0.19,"diem":0.19},"output":{"usd":0.69,"diem":0.69}},"traits":[],"name":"Qwen3 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"qwen3-vl-235b-a22b","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.21,"diem":0.21},"cache_input":{"usd":0.1,"diem":0.1},"output":{"usd":1.9,"diem":1.9}},"traits":["default_vision"],"name":"Qwen3 VL 235B","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1768521600},{"id":"e2ee-qwen3-vl-30b-a3b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":0.9,"diem":0.9}},"traits":[],"name":"Qwen3 VL 30B A3B","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"e2ee-qwen3-6-35b-a3b-uncensored-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.38,"diem":0.38},"output":{"usd":1.88,"diem":1.88}},"traits":[],"name":"Qwen3.6 35B A3B Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1779580800},{"id":"venice-uncensored-role-play","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.5,"diem":0.5},"output":{"usd":2,"diem":2}},"traits":[],"name":"Venice Role Play Uncensored","capabilities":{"optimizedForCode":false,"quantization":"fp8","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1771545600},{"id":"e2ee-venice-uncensored-24b-p","type":"text","model_spec":{"betaModel":true,"privacy":"private","availableContextTokens":32000,"pricing":{"input":{"usd":0.25,"diem":0.25},"output":{"usd":1.15,"diem":1.15}},"traits":[],"name":"Venice Uncensored 1.1","capabilities":{"optimizedForCode":false,"quantization":"not-available","supportsAudioInput":false,"supportsFunctionCalling":false,"supportsLogProbs":false,"supportsMultipleImages":false,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":false,"supportsTeeAttestation":true,"supportsE2EE":true,"supportsVideoInput":false,"supportsVision":false,"supportsWebSearch":true,"supportsXSearch":false}},"created":1773792000},{"id":"venice-uncensored-1-2","type":"text","model_spec":{"privacy":"private","availableContextTokens":128000,"pricing":{"input":{"usd":0.2,"diem":0.2},"output":{"usd":0.9,"diem":0.9}},"traits":["most_uncensored"],"name":"Venice Uncensored 1.2","capabilities":{"optimizedForCode":false,"quantization":"fp16","supportsAudioInput":false,"supportsFunctionCalling":true,"supportsLogProbs":false,"supportsMultipleImages":true,"maxImages":10,"supportsReasoning":false,"supportsReasoningEffort":false,"supportsResponseSchema":true,"supportsTeeAttestation":false,"supportsE2EE":false,"supportsVideoInput":false,"supportsVision":true,"supportsWebSearch":true,"supportsXSearch":false}},"created":1775001600},{"id":"elevenlabs/scribe-v2","type":"asr","model_spec":{"privacy":"anonymized","pricing":{"per_audio_second":{"usd":0.000167,"diem":0.000167}},"traits":[],"name":"ElevenLabs Scribe V2"},"created":1776384000},{"id":"nvidia/parakeet-tdt-0.6b-v3","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Parakeet ASR"},"created":1760136444},{"id":"openai/whisper-large-v3","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Whisper Large V3"},"created":1736899200},{"id":"fal-ai/wizper","type":"asr","model_spec":{"privacy":"private","pricing":{"per_audio_second":{"usd":0.0001,"diem":0.0001}},"traits":[],"name":"Wizper (Whisper v3)"},"created":1776384000},{"id":"stt-xai-v1","type":"asr","model_spec":{"privacy":"anonymized","pricing":{"per_audio_second":{"usd":0.000031480000000000004,"diem":0.000031480000000000004}},"traits":[],"name":"xAI Speech to Text v1"},"created":1776470400},{"id":"upscaler","type":"upscale","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Upscaler"},"created":1744453050},{"id":"wai-Illustrious","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Anime (WAI)"},"created":1736635129},{"id":"bria-bg-remover","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Background Remover"},"created":1772064000},{"id":"chroma","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Chroma"},"created":1769731200},{"id":"flux-2-max","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.09,"diem":0.09},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Flux 2 Max"},"created":1764086377},{"id":"flux-2-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Flux 2 Pro"},"created":1764086377},{"id":"gpt-image-1-5","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.26,"diem":0.26},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"GPT Image 1.5"},"created":1765986864},{"id":"gpt-image-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.27,"diem":0.27},"2K":{"usd":0.51,"diem":0.51},"4K":{"usd":0.84,"diem":0.84}},"quality":{"1K":{"high":{"usd":0.26,"diem":0.26},"low":{"usd":0.02,"diem":0.02},"medium":{"usd":0.07,"diem":0.07}},"2K":{"high":{"usd":0.5,"diem":0.5},"low":{"usd":0.03,"diem":0.03},"medium":{"usd":0.13,"diem":0.13}},"4K":{"high":{"usd":0.83,"diem":0.83},"low":{"usd":0.05,"diem":0.05},"medium":{"usd":0.21,"diem":0.21}}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"GPT Image 2"},"created":1776729600},{"id":"grok-imagine-image","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Grok Imagine"},"created":1775692800},{"id":"grok-imagine-image-quality","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.08,"diem":0.08},"2K":{"usd":0.1,"diem":0.1}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Grok Imagine High Quality (SOTA)"},"created":1778112000},{"id":"hunyuan-image-v3","type":"image","model_spec":{"betaModel":true,"privacy":"private","pricing":{"generation":{"usd":0.09,"diem":0.09},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Hunyuan Image 3.0"},"created":1772323200},{"id":"ideogram-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Ideogram V4"},"created":1780444800},{"id":"imagineart-1.5-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"ImagineArt 1.5 Pro"},"created":1769437800},{"id":"krea-2-turbo","type":"image","model_spec":{"privacy":"private","pricing":{"resolutions":{"1K":{"usd":0.04,"diem":0.04},"2K":{"usd":0.06,"diem":0.06}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea 2 Turbo"},"created":1782777600},{"id":"krea-v2-large","type":"image","model_spec":{"betaModel":true,"privacy":"anonymized","pricing":{"generation":{"usd":0.07,"diem":0.07},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea v2 Large"},"created":1779408000},{"id":"krea-v2-medium","type":"image","model_spec":{"betaModel":true,"privacy":"anonymized","pricing":{"generation":{"usd":0.04,"diem":0.04},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Krea v2 Medium"},"created":1779408000},{"id":"luma-uni-1","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Luma Uni-1"},"created":1781654400},{"id":"luma-uni-1-max","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.12,"diem":0.12},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Luma Uni-1 Max"},"created":1781654400},{"id":"lustify-sdxl","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Lustify SDXL"},"created":1738704152},{"id":"lustify-v7","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["most_uncensored"],"name":"Lustify v7"},"created":1736635129},{"id":"lustify-v8","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["most_uncensored"],"name":"Lustify v8"},"created":1774828800},{"id":"nano-banana-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.1,"diem":0.1},"2K":{"usd":0.14,"diem":0.14},"4K":{"usd":0.19,"diem":0.19}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana 2"},"created":1772064000},{"id":"nano-banana-2-lite","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.06,"diem":0.06},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana 2 Lite"},"created":1782777600},{"id":"nano-banana-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.18,"diem":0.18},"2K":{"usd":0.23,"diem":0.23},"4K":{"usd":0.35,"diem":0.35}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Nano Banana Pro"},"created":1763653951},{"id":"qwen-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.03,"diem":0.03},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["highest_quality"],"name":"Qwen Image"},"created":1736635129},{"id":"qwen-image-2","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Qwen Image 2"},"created":1772582400},{"id":"qwen-image-2-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.1,"diem":0.1},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Qwen Image 2 Pro"},"created":1772582400},{"id":"recraft-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Recraft V4"},"created":1770854400},{"id":"recraft-v4-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.29,"diem":0.29},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Recraft V4 Pro"},"created":1770854400},{"id":"seedream-v4","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Seedream V4.5"},"created":1762383600},{"id":"seedream-v5-lite","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.05,"diem":0.05},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Seedream V5 Lite"},"created":1771804800},{"id":"seedream-v5-pro","type":"image","model_spec":{"privacy":"anonymized","pricing":{"resolutions":{"1K":{"usd":0.06,"diem":0.06},"2K":{"usd":0.11,"diem":0.11}},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Seedream V5 Pro"},"created":1783468800},{"id":"venice-sd35","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["eliza-default"],"name":"Venice SD35"},"created":1743099022},{"id":"wan-2-7-text-to-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.0375,"diem":0.0375},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Wan 2.7"},"created":1775001600},{"id":"wan-2-7-pro-text-to-image","type":"image","model_spec":{"privacy":"anonymized","pricing":{"generation":{"usd":0.09375,"diem":0.09375},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":[],"name":"Wan 2.7 Pro"},"created":1775001600},{"id":"z-image-turbo","type":"image","model_spec":{"privacy":"private","pricing":{"generation":{"usd":0.01,"diem":0.01},"upscale":{"2x":{"usd":0.02,"diem":0.02},"4x":{"usd":0.08,"diem":0.08}}},"traits":["default","fastest"],"name":"Z-Image Turbo"},"created":1764758779}]; // Privacy types that are always private (no API privacy field needed) const PRIVATE_TYPES = new Set(['upscale']); @@ -272,16 +343,144 @@ } } - // Filter categories - const CAPABILITY_FILTERS = ['reasoning', 'vision', 'function', 'code']; - + // Capability filters only apply to text/chat models. function categoryAllowsCapabilityFilters(category) { return category === 'all' || category === 'text'; } - const VIDEO_FILTERS = ['text-to-video', 'image-to-video']; - const IMAGE_FILTERS = ['image-gen', 'image-upscale', 'image-edit', 'image-uncensored']; - const PRIVACY_FILTERS = ['e2ee', 'tee', 'private', 'anonymized']; + // ========== I18N (filter/sort UI chrome) ========== + // The model browser UI is rendered by JS, so its labels can't be localized by + // Mintlify's per-language content. We detect the locale from the URL prefix + // (e.g. /es/models/...) and translate the visible chrome. Keys are the English + // source strings; unknown keys fall back to English. + const SUPPORTED_LOCALES = ['pt-BR', 'ar', 'it', 'de', 'es', 'fr', 'zh', 'ko']; + function detectLocale() { + try { + const seg = (location.pathname.split('/')[1] || '').toLowerCase(); + const hit = SUPPORTED_LOCALES.find(l => l.toLowerCase() === seg); + if (hit) return hit; + const htmlLang = (document.documentElement.getAttribute('lang') || '').trim(); + const byLang = SUPPORTED_LOCALES.find(l => l.toLowerCase() === htmlLang.toLowerCase()); + if (byLang) return byLang; + } catch (e) {} + return 'en'; + } + const LOCALE = detectLocale(); + const I18N = { + 'pt-BR': { 'Type': 'Tipo', 'Kind': 'Categoria', 'Capability': 'Recurso', 'Privacy': 'Privacidade', 'All types': 'Todos os tipos', 'Text': 'Texto', 'Image': 'Imagem', 'Video': 'Vídeo', 'Audio': 'Áudio', 'Embedding': 'Embedding', 'Generation': 'Geração', 'Upscale': 'Ampliação', 'Edit': 'Edição', 'Uncensored': 'Sem censura', 'Text to Video': 'Texto para vídeo', 'Image to Video': 'Imagem para vídeo', 'Reasoning': 'Raciocínio', 'Vision': 'Visão', 'Function Calling': 'Chamada de funções', 'Code': 'Código', 'Private': 'Privado', 'Anonymized': 'Anonimizado', 'Sort': 'Ordenar', 'Sort models': 'Ordenar modelos', 'Search models': 'Buscar modelos', 'Recommended': 'Recomendado', 'Newest': 'Mais recentes', 'Oldest': 'Mais antigos', 'Name (A–Z)': 'Nome (A–Z)', 'Price: Low to High': 'Preço: menor para maior', 'Price: High to Low': 'Preço: maior para menor', 'Clear filters': 'Limpar filtros', 'Search models...': 'Buscar modelos...', 'models': 'modelos', 'closest matches': 'correspondências mais próximas', 'No close model matches': 'Nenhum modelo próximo encontrado', 'No models match your filters': 'Nenhum modelo corresponde aos seus filtros' }, + 'ar': { 'Type': 'النوع', 'Kind': 'الفئة', 'Capability': 'القدرة', 'Privacy': 'الخصوصية', 'All types': 'كل الأنواع', 'Text': 'نص', 'Image': 'صورة', 'Video': 'فيديو', 'Audio': 'صوت', 'Embedding': 'تضمين', 'Generation': 'توليد', 'Upscale': 'تحسين الدقة', 'Edit': 'تحرير', 'Uncensored': 'بدون رقابة', 'Text to Video': 'نص إلى فيديو', 'Image to Video': 'صورة إلى فيديو', 'Reasoning': 'استدلال', 'Vision': 'رؤية', 'Function Calling': 'استدعاء الدوال', 'Code': 'برمجة', 'Private': 'خاص', 'Anonymized': 'مجهول الهوية', 'Sort': 'ترتيب', 'Sort models': 'ترتيب النماذج', 'Search models': 'بحث في النماذج', 'Recommended': 'موصى به', 'Newest': 'الأحدث', 'Oldest': 'الأقدم', 'Name (A–Z)': 'الاسم (أ–ي)', 'Price: Low to High': 'السعر: من الأقل إلى الأعلى', 'Price: High to Low': 'السعر: من الأعلى إلى الأقل', 'Clear filters': 'مسح عوامل التصفية', 'Search models...': 'بحث في النماذج...', 'models': 'نماذج', 'closest matches': 'أقرب النتائج', 'No close model matches': 'لا توجد نماذج قريبة', 'No models match your filters': 'لا توجد نماذج تطابق عوامل التصفية' }, + 'it': { 'Type': 'Tipo', 'Kind': 'Categoria', 'Capability': 'Capacità', 'Privacy': 'Privacy', 'All types': 'Tutti i tipi', 'Text': 'Testo', 'Image': 'Immagine', 'Video': 'Video', 'Audio': 'Audio', 'Embedding': 'Embedding', 'Generation': 'Generazione', 'Upscale': 'Upscaling', 'Edit': 'Modifica', 'Uncensored': 'Senza censura', 'Text to Video': 'Testo in video', 'Image to Video': 'Immagine in video', 'Reasoning': 'Ragionamento', 'Vision': 'Visione', 'Function Calling': 'Chiamata di funzioni', 'Code': 'Codice', 'Private': 'Privato', 'Anonymized': 'Anonimizzato', 'Sort': 'Ordina', 'Sort models': 'Ordina modelli', 'Search models': 'Cerca modelli', 'Recommended': 'Consigliati', 'Newest': 'Più recenti', 'Oldest': 'Meno recenti', 'Name (A–Z)': 'Nome (A–Z)', 'Price: Low to High': 'Prezzo: dal più basso', 'Price: High to Low': 'Prezzo: dal più alto', 'Clear filters': 'Cancella filtri', 'Search models...': 'Cerca modelli...', 'models': 'modelli', 'closest matches': 'corrispondenze più vicine', 'No close model matches': 'Nessun modello simile trovato', 'No models match your filters': 'Nessun modello corrisponde ai filtri' }, + 'de': { 'Type': 'Typ', 'Kind': 'Art', 'Capability': 'Fähigkeit', 'Privacy': 'Datenschutz', 'All types': 'Alle Typen', 'Text': 'Text', 'Image': 'Bild', 'Video': 'Video', 'Audio': 'Audio', 'Embedding': 'Embedding', 'Generation': 'Generierung', 'Upscale': 'Hochskalierung', 'Edit': 'Bearbeiten', 'Uncensored': 'Unzensiert', 'Text to Video': 'Text zu Video', 'Image to Video': 'Bild zu Video', 'Reasoning': 'Reasoning', 'Vision': 'Vision', 'Function Calling': 'Function Calling', 'Code': 'Code', 'Private': 'Privat', 'Anonymized': 'Anonymisiert', 'Sort': 'Sortieren', 'Sort models': 'Modelle sortieren', 'Search models': 'Modelle suchen', 'Recommended': 'Empfohlen', 'Newest': 'Neueste', 'Oldest': 'Älteste', 'Name (A–Z)': 'Name (A–Z)', 'Price: Low to High': 'Preis: aufsteigend', 'Price: High to Low': 'Preis: absteigend', 'Clear filters': 'Filter zurücksetzen', 'Search models...': 'Modelle suchen...', 'models': 'Modelle', 'closest matches': 'nächste Treffer', 'No close model matches': 'Keine ähnlichen Modelle gefunden', 'No models match your filters': 'Keine Modelle entsprechen deinen Filtern' }, + 'es': { 'Type': 'Tipo', 'Kind': 'Categoría', 'Capability': 'Capacidad', 'Privacy': 'Privacidad', 'All types': 'Todos los tipos', 'Text': 'Texto', 'Image': 'Imagen', 'Video': 'Vídeo', 'Audio': 'Audio', 'Embedding': 'Embedding', 'Generation': 'Generación', 'Upscale': 'Escalado', 'Edit': 'Edición', 'Uncensored': 'Sin censura', 'Text to Video': 'Texto a vídeo', 'Image to Video': 'Imagen a vídeo', 'Reasoning': 'Razonamiento', 'Vision': 'Visión', 'Function Calling': 'Llamada de funciones', 'Code': 'Código', 'Private': 'Privado', 'Anonymized': 'Anonimizado', 'Sort': 'Ordenar', 'Sort models': 'Ordenar modelos', 'Search models': 'Buscar modelos', 'Recommended': 'Recomendado', 'Newest': 'Más recientes', 'Oldest': 'Más antiguos', 'Name (A–Z)': 'Nombre (A–Z)', 'Price: Low to High': 'Precio: de menor a mayor', 'Price: High to Low': 'Precio: de mayor a menor', 'Clear filters': 'Borrar filtros', 'Search models...': 'Buscar modelos...', 'models': 'modelos', 'closest matches': 'coincidencias más cercanas', 'No close model matches': 'No hay modelos parecidos', 'No models match your filters': 'Ningún modelo coincide con tus filtros' }, + 'fr': { 'Type': 'Type', 'Kind': 'Catégorie', 'Capability': 'Capacité', 'Privacy': 'Confidentialité', 'All types': 'Tous les types', 'Text': 'Texte', 'Image': 'Image', 'Video': 'Vidéo', 'Audio': 'Audio', 'Embedding': 'Embedding', 'Generation': 'Génération', 'Upscale': 'Agrandissement', 'Edit': 'Édition', 'Uncensored': 'Sans censure', 'Text to Video': 'Texte vers vidéo', 'Image to Video': 'Image vers vidéo', 'Reasoning': 'Raisonnement', 'Vision': 'Vision', 'Function Calling': 'Appel de fonctions', 'Code': 'Code', 'Private': 'Privé', 'Anonymized': 'Anonymisé', 'Sort': 'Trier', 'Sort models': 'Trier les modèles', 'Search models': 'Rechercher des modèles', 'Recommended': 'Recommandé', 'Newest': 'Plus récents', 'Oldest': 'Plus anciens', 'Name (A–Z)': 'Nom (A–Z)', 'Price: Low to High': 'Prix : croissant', 'Price: High to Low': 'Prix : décroissant', 'Clear filters': 'Effacer les filtres', 'Search models...': 'Rechercher des modèles...', 'models': 'modèles', 'closest matches': 'correspondances les plus proches', 'No close model matches': 'Aucun modèle proche', 'No models match your filters': 'Aucun modèle ne correspond à vos filtres' }, + 'zh': { 'Type': '类型', 'Kind': '类别', 'Capability': '能力', 'Privacy': '隐私', 'All types': '全部类型', 'Text': '文本', 'Image': '图像', 'Video': '视频', 'Audio': '音频', 'Embedding': '嵌入', 'Generation': '生成', 'Upscale': '放大', 'Edit': '编辑', 'Uncensored': '无审查', 'Text to Video': '文本转视频', 'Image to Video': '图像转视频', 'Reasoning': '推理', 'Vision': '视觉', 'Function Calling': '函数调用', 'Code': '代码', 'Private': '私有', 'Anonymized': '匿名化', 'Sort': '排序', 'Sort models': '排序模型', 'Search models': '搜索模型', 'Recommended': '推荐', 'Newest': '最新', 'Oldest': '最早', 'Name (A–Z)': '名称 (A–Z)', 'Price: Low to High': '价格:从低到高', 'Price: High to Low': '价格:从高到低', 'Clear filters': '清除筛选', 'Search models...': '搜索模型...', 'models': '个模型', 'closest matches': '最接近的结果', 'No close model matches': '没有相近的模型', 'No models match your filters': '没有符合筛选条件的模型' }, + 'ko': { 'Type': '유형', 'Kind': '종류', 'Capability': '기능', 'Privacy': '개인정보', 'All types': '모든 유형', 'Text': '텍스트', 'Image': '이미지', 'Video': '비디오', 'Audio': '오디오', 'Embedding': '임베딩', 'Generation': '생성', 'Upscale': '업스케일', 'Edit': '편집', 'Uncensored': '무검열', 'Text to Video': '텍스트→비디오', 'Image to Video': '이미지→비디오', 'Reasoning': '추론', 'Vision': '비전', 'Function Calling': '함수 호출', 'Code': '코드', 'Private': '프라이빗', 'Anonymized': '익명화', 'Sort': '정렬', 'Sort models': '모델 정렬', 'Search models': '모델 검색', 'Recommended': '추천', 'Newest': '최신순', 'Oldest': '오래된순', 'Name (A–Z)': '이름 (A–Z)', 'Price: Low to High': '가격: 낮은순', 'Price: High to Low': '가격: 높은순', 'Clear filters': '필터 지우기', 'Search models...': '모델 검색...', 'models': '개 모델', 'closest matches': '가장 근접한 결과', 'No close model matches': '유사한 모델이 없습니다', 'No models match your filters': '필터와 일치하는 모델이 없습니다' } + }; + function t(s) { + if (LOCALE === 'en') return s; + const table = I18N[LOCALE]; + return (table && table[s] != null) ? table[s] : s; + } + + // ========== FILTER DROPDOWNS ========== + // The model browser filters are grouped into focused dropdowns instead of a + // flat wall of pills. Type/Kind/Privacy are single-select; Capability is + // multi-select (AND semantics, e.g. Reasoning + Vision). + const FILTER_GROUPS = { + type: { + label: 'Type', mode: 'single', default: 'all', + options: [ + { value: 'all', label: 'All types' }, + { value: 'text', label: 'Text' }, + { value: 'image', label: 'Image' }, + ...(ENABLE_VIDEO ? [{ value: 'video', label: 'Video' }] : []), + { value: 'audio', label: 'Audio' }, + { value: 'embedding', label: 'Embedding' }, + ], + }, + image: { + label: 'Kind', mode: 'single', default: null, + options: [ + { value: 'image-gen', label: 'Generation' }, + { value: 'image-upscale', label: 'Upscale' }, + { value: 'image-edit', label: 'Edit' }, + { value: 'image-uncensored', label: 'Uncensored' }, + ], + }, + video: { + label: 'Kind', mode: 'single', default: null, + options: [ + { value: 'text-to-video', label: 'Text to Video' }, + { value: 'image-to-video', label: 'Image to Video' }, + ], + }, + capability: { + label: 'Capability', mode: 'multi', default: null, + options: [ + { value: 'reasoning', label: 'Reasoning' }, + { value: 'vision', label: 'Vision' }, + { value: 'function', label: 'Function Calling' }, + { value: 'code', label: 'Code' }, + ], + }, + privacy: { + label: 'Privacy', mode: 'single', default: null, + options: [ + { value: 'e2ee', label: 'E2EE' }, + { value: 'tee', label: 'TEE' }, + { value: 'private', label: 'Private' }, + { value: 'anonymized', label: 'Anonymized' }, + ], + }, + }; + + const FILTER_CHEVRON = ''; + const FILTER_CHECK = ''; + const SORT_ICON = ''; + + // Sort options (single-select). `default` preserves the API's curated order and + // is the natural resting state on preset pages; the overview page defaults to + // newest. All values are handled by sortModels(). + const SORT_OPTIONS = [ + { value: 'default', label: 'Recommended' }, + { value: 'newest', label: 'Newest' }, + { value: 'oldest', label: 'Oldest' }, + { value: 'name', label: 'Name (A–Z)' }, + { value: 'price-low', label: 'Price: Low to High' }, + { value: 'price-high', label: 'Price: High to Low' }, + ]; + + function renderSortDropdown() { + const opts = SORT_OPTIONS.map(o => + `` + ).join(''); + return ( + `
` + + `` + + `` + + `
` + ); + } + + function renderFilterDropdown(key, group) { + const opts = group.options.map(o => + `` + ).join(''); + return ( + `
` + + `` + + `` + + `
` + ); + } const MODEL_SEARCH_ALIASES = { gpt4: ['gpt-4', 'gpt 4', 'openai gpt-4'], gpt4o: ['gpt-4o', 'gpt 4o', 'openai gpt-4o'], @@ -2013,50 +2212,23 @@ container.innerHTML = `
- -
-
- +
- -
+
${hasCachedData ? '' : 'Loading...'} +
+ ${renderSortDropdown()} + + +
${hasCachedData ? '' : '
Loading models...
'} @@ -2067,80 +2239,241 @@ // Get elements const searchInput = container.querySelector('.vmb-search'); - const filterButtons = container.querySelectorAll('.vmb-filter'); const countDisplay = container.querySelector('.vmb-count'); const modelsContainer = container.querySelector('.vmb-models'); - const categoryFilters = container.querySelector('.vmb-category-filters'); - const capabilityFilters = container.querySelector('.vmb-capability-filters'); - const videoFilters = ENABLE_VIDEO ? container.querySelector('.vmb-video-filters') : null; - const imageFilters = container.querySelector('.vmb-image-filters'); - const privacyFilters = container.querySelector('.vmb-privacy-filters'); - - // Configure filter visibility based on page context + const filtersBar = container.querySelector('.vmb-filters'); + const clearBtn = container.querySelector('.vmb-dd-clear'); + + // Map each dropdown group key to its root element. + const dd = {}; + container.querySelectorAll('.vmb-dd').forEach(el => { dd[el.dataset.group] = el; }); + const showDd = (key, show) => { if (dd[key]) dd[key].style.display = show ? '' : 'none'; }; + + let allModels = []; + let activeFilter = presetFilter || 'all'; + const activeCapabilities = new Set(); // multi-select + let activeVideoType = null; + let activeImageType = null; + let activePrivacy = null; + // On overview page (no preset filter), default to newest first + let activeSort = presetFilter ? 'default' : 'newest'; + + // Configure which dropdowns are visible for the current page context. if (presetFilter) { - categoryFilters.style.display = 'none'; const filterVisibility = { text: { capability: true, video: false, image: false }, video: { capability: false, video: true, image: false }, - image: { capability: false, video: false, image: true } + image: { capability: false, video: false, image: true }, }; const config = filterVisibility[presetFilter] || { capability: false, video: false, image: false }; - capabilityFilters.style.display = config.capability ? 'contents' : 'none'; - if (videoFilters) videoFilters.style.display = config.video ? 'contents' : 'none'; - imageFilters.style.display = config.image ? 'contents' : 'none'; + showDd('type', false); + showDd('capability', config.capability); + showDd('video', config.video); + showDd('image', config.image); } else { - capabilityFilters.style.display = 'contents'; - if (videoFilters) videoFilters.style.display = 'none'; - imageFilters.style.display = 'none'; + showDd('type', true); + showDd('capability', true); + showDd('video', false); + showDd('image', false); + } + // Privacy dropdown is always available. + + // ----- Dropdown state <-> UI helpers ----- + function getSingleState(key) { + if (key === 'type') return activeFilter; + if (key === 'image') return activeImageType; + if (key === 'video') return activeVideoType; + if (key === 'privacy') return activePrivacy; + return null; } + function setSingleState(key, value) { + if (key === 'type') activeFilter = value; + else if (key === 'image') activeImageType = value; + else if (key === 'video') activeVideoType = value; + else if (key === 'privacy') activePrivacy = value; + } + + function updateDropdownUI(key) { + const ddEl = dd[key]; + if (!ddEl) return; + const group = FILTER_GROUPS[key]; + const labelEl = ddEl.querySelector('.vmb-dd-label'); + let active = false; + let text = t(group.label); + + if (group.mode === 'multi') { + active = activeCapabilities.size > 0; + if (activeCapabilities.size === 1) { + const v = [...activeCapabilities][0]; + text = t((group.options.find(o => o.value === v) || {}).label || group.label); + } else if (activeCapabilities.size > 1) { + text = `${t(group.label)} · ${activeCapabilities.size}`; + } + ddEl.querySelectorAll('.vmb-dd-option').forEach(o => { + const on = activeCapabilities.has(o.dataset.value); + o.classList.toggle('selected', on); + o.setAttribute('aria-selected', on ? 'true' : 'false'); + }); + } else { + const cur = getSingleState(key); + const def = key === 'type' ? 'all' : null; + active = cur != null && cur !== def; + if (active) { + const o = group.options.find(op => op.value === cur); + if (o) text = t(o.label); + } + ddEl.querySelectorAll('.vmb-dd-option').forEach(o => { + const on = o.dataset.value === cur; + o.classList.toggle('selected', on); + o.setAttribute('aria-selected', on ? 'true' : 'false'); + }); + } - let allModels = []; - let activeFilter = presetFilter || 'all'; - let activeCapability = null; - let activeVideoType = null; - let activeImageType = null; - let activePrivacy = null; - // On overview page (no preset filter), default to newest first - let activeSort = presetFilter ? 'default' : 'newest'; + labelEl.textContent = text; + ddEl.classList.toggle('vmb-dd-active', active); + } - function updateAriaPressed(btn, isActive) { - btn.setAttribute('aria-pressed', isActive ? 'true' : 'false'); + function updateAllDropdownUI() { + Object.keys(FILTER_GROUPS).forEach(updateDropdownUI); + } + + function updateClearVisibility() { + const any = activeCapabilities.size > 0 || activeVideoType || activeImageType || + activePrivacy || (!presetFilter && activeFilter !== 'all'); + clearBtn.hidden = !any; + } + + function closeAllPanels(except) { + container.querySelectorAll('.vmb-dd').forEach(el => { + if (el === except) return; + el.classList.remove('open'); + const t = el.querySelector('.vmb-dd-trigger'); + if (t) t.setAttribute('aria-expanded', 'false'); + const p = el.querySelector('.vmb-dd-panel'); + if (p) p.hidden = true; + }); + } + + function togglePanel(ddEl) { + const trigger = ddEl.querySelector('.vmb-dd-trigger'); + const panel = ddEl.querySelector('.vmb-dd-panel'); + const willOpen = !ddEl.classList.contains('open'); + closeAllPanels(willOpen ? ddEl : null); + ddEl.classList.toggle('open', willOpen); + trigger.setAttribute('aria-expanded', willOpen ? 'true' : 'false'); + panel.hidden = !willOpen; } function syncCapabilityFilterControls() { + const capDd = dd.capability; + if (!capDd) return; const allow = categoryAllowsCapabilityFilters(activeFilter); - if (!allow && activeCapability) { - activeCapability = null; - capabilityFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); + if (!allow && activeCapabilities.size) { + activeCapabilities.clear(); + updateDropdownUI('capability'); } - capabilityFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.disabled = !allow; - b.setAttribute('aria-disabled', allow ? 'false' : 'true'); - if (!allow) { - b.title = 'Available when viewing All or Text models'; - } else { - const f = b.dataset.filter; - if (f === 'vision') { - b.title = 'Chat models that accept image input'; - } else { - b.removeAttribute('title'); - } + capDd.classList.toggle('vmb-dd-disabled', !allow); + const trigger = capDd.querySelector('.vmb-dd-trigger'); + trigger.disabled = !allow; + trigger.setAttribute('aria-disabled', allow ? 'false' : 'true'); + trigger.title = allow ? '' : 'Available when viewing All or Text models'; + if (!allow) { + capDd.classList.remove('open'); + trigger.setAttribute('aria-expanded', 'false'); + capDd.querySelector('.vmb-dd-panel').hidden = true; + } + } + + function handleOptionSelect(option) { + const key = option.dataset.group; + const value = option.dataset.value; + const group = FILTER_GROUPS[key]; + + if (group.mode === 'multi') { + if (activeCapabilities.has(value)) activeCapabilities.delete(value); + else activeCapabilities.add(value); + // Selecting a capability on the main page implies text models. + if (activeCapabilities.size > 0 && !presetFilter && activeFilter === 'all') { + activeFilter = 'text'; + updateDropdownUI('type'); } - }); + updateDropdownUI('capability'); + // Keep the panel open for multi-select. + } else { + const cur = getSingleState(key); + const def = key === 'type' ? 'all' : null; + const next = cur === value ? def : value; + setSingleState(key, next); + // Changing type resets the type-dependent filters. + if (key === 'type') { + activeCapabilities.clear(); + activeVideoType = null; + activeImageType = null; + updateDropdownUI('capability'); + updateDropdownUI('video'); + updateDropdownUI('image'); + } + updateDropdownUI(key); + closeAllPanels(null); + } + syncCapabilityFilterControls(); + updateClearVisibility(); + renderModels(); } - syncCapabilityFilterControls(); + function clearAllFilters() { + activeCapabilities.clear(); + activeVideoType = null; + activeImageType = null; + activePrivacy = null; + if (!presetFilter) activeFilter = 'all'; + updateAllDropdownUI(); + syncCapabilityFilterControls(); + updateClearVisibility(); + closeAllPanels(null); + renderModels(); + } - const sortToggle = container.querySelector('.vmb-sort-toggle'); - - // Set initial sort toggle UI state for overview page - if (!presetFilter) { - sortToggle.classList.add('active'); - sortToggle.title = 'Newest first (click for oldest)'; + // ----- Dropdown events ----- + filtersBar.addEventListener('click', (e) => { + const trigger = e.target.closest('.vmb-dd-trigger'); + if (trigger) { + if (trigger.disabled) return; + togglePanel(trigger.closest('.vmb-dd')); + return; + } + if (e.target.closest('.vmb-dd-clear')) { clearAllFilters(); return; } + const option = e.target.closest('.vmb-dd-option'); + if (option) { handleOptionSelect(option); return; } + }); + + document.addEventListener('click', (e) => { + if (!e.target.closest('.vmb-dd')) closeAllPanels(null); + }); + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') closeAllPanels(null); + }); + + updateAllDropdownUI(); + syncCapabilityFilterControls(); + updateClearVisibility(); + + const sortDd = container.querySelector('.vmb-sort-dd'); + const sortDefault = presetFilter ? 'default' : 'newest'; + + // Sync the sort dropdown's trigger label, selected option, and active accent + // (highlighted whenever the sort differs from the page's natural default). + function updateSortUI() { + const opt = SORT_OPTIONS.find(o => o.value === activeSort); + sortDd.querySelector('.vmb-dd-label').textContent = opt ? t(opt.label) : t('Sort'); + sortDd.querySelectorAll('.vmb-dd-option').forEach(o => { + const on = o.dataset.value === activeSort; + o.classList.toggle('selected', on); + o.setAttribute('aria-selected', on ? 'true' : 'false'); + }); + sortDd.classList.toggle('vmb-dd-active', activeSort !== sortDefault); } + updateSortUI(); // Always render static data immediately for instant display allModels = STATIC_MODELS; @@ -2174,14 +2507,16 @@ } function matchesCapability(model) { - if (!activeCapability) return true; + if (activeCapabilities.size === 0) return true; const spec = model.model_spec || {}; const caps = spec.capabilities || {}; - - if (activeCapability === 'reasoning') return caps.supportsReasoning; - if (activeCapability === 'vision') return caps.supportsVision; - if (activeCapability === 'function') return caps.supportsFunctionCalling; - if (activeCapability === 'code') return matchesCodeFilter(model); + // AND semantics: the model must satisfy every selected capability. + for (const cap of activeCapabilities) { + if (cap === 'reasoning' && !caps.supportsReasoning) return false; + if (cap === 'vision' && !caps.supportsVision) return false; + if (cap === 'function' && !caps.supportsFunctionCalling) return false; + if (cap === 'code' && !matchesCodeFilter(model)) return false; + } return true; } @@ -2271,11 +2606,17 @@ sorted = visibleScored.map(item => item.model); } - const countLabel = sorted.length + ' model' + (sorted.length !== 1 ? 's' : ''); - countDisplay.textContent = showingClosestMatches ? `${countLabel} closest match${sorted.length !== 1 ? 'es' : ''}` : countLabel; + const n = sorted.length; + const countLabel = (LOCALE === 'en') + ? (n + ' model' + (n !== 1 ? 's' : '')) + : (n + ' ' + t('models')); + const closestSuffix = (LOCALE === 'en') + ? ('closest match' + (n !== 1 ? 'es' : '')) + : t('closest matches'); + countDisplay.textContent = showingClosestMatches ? `${countLabel} ${closestSuffix}` : countLabel; if (sorted.length === 0) { - modelsContainer.innerHTML = `
${query ? 'No close model matches' : 'No models match your filters'}
`; + modelsContainer.innerHTML = `
${query ? t('No close model matches') : t('No models match your filters')}
`; return; } @@ -2541,118 +2882,16 @@ searchTimeout = setTimeout(renderModels, 100); }); - // Event: Sort toggle - cycles through: default → newest → oldest → default - sortToggle.addEventListener('click', () => { - const cycle = ['default', 'newest', 'oldest']; - const currentIndex = cycle.indexOf(activeSort); - const nextIndex = (currentIndex + 1) % cycle.length; - activeSort = cycle[nextIndex]; - - // Update icon direction and active state - sortToggle.classList.toggle('active', activeSort !== 'default'); - sortToggle.classList.toggle('asc', activeSort === 'oldest'); - sortToggle.title = activeSort === 'default' ? 'Sort by date' : - activeSort === 'newest' ? 'Newest first (click for oldest)' : - 'Oldest first (click to reset)'; - renderModels(); - }); - - // Event: Filter buttons - filterButtons.forEach(btn => { - btn.addEventListener('click', () => { - const filter = btn.dataset.filter; - const isCapability = CAPABILITY_FILTERS.includes(filter); - const isVideoType = VIDEO_FILTERS.includes(filter); - const isImageType = IMAGE_FILTERS.includes(filter); - const isPrivacy = PRIVACY_FILTERS.includes(filter); - - if (isPrivacy) { - if (activePrivacy === filter) { - activePrivacy = null; - btn.classList.remove('active'); - updateAriaPressed(btn, false); - } else { - privacyFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); - activePrivacy = filter; - btn.classList.add('active'); - updateAriaPressed(btn, true); - } - } else if (isCapability) { - if (activeCapability === filter) { - activeCapability = null; - btn.classList.remove('active'); - updateAriaPressed(btn, false); - } else { - capabilityFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); - activeCapability = filter; - btn.classList.add('active'); - updateAriaPressed(btn, true); - - if (!presetFilter) { - activeFilter = 'text'; - categoryFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); - const textCategoryBtn = categoryFilters.querySelector('[data-filter="text"]'); - if (textCategoryBtn) { - textCategoryBtn.classList.add('active'); - updateAriaPressed(textCategoryBtn, true); - } - } - } - } else if (isVideoType && videoFilters) { - if (activeVideoType === filter) { - activeVideoType = null; - btn.classList.remove('active'); - updateAriaPressed(btn, false); - } else { - videoFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); - activeVideoType = filter; - btn.classList.add('active'); - updateAriaPressed(btn, true); - } - } else if (isImageType) { - if (activeImageType === filter) { - activeImageType = null; - btn.classList.remove('active'); - updateAriaPressed(btn, false); - } else { - imageFilters.querySelectorAll('.vmb-filter').forEach(b => { - b.classList.remove('active'); - updateAriaPressed(b, false); - }); - activeImageType = filter; - btn.classList.add('active'); - updateAriaPressed(btn, true); - } - } else { - // Category filter (main page only) - preserve privacy filter state - activeFilter = filter; - activeCapability = null; - activeVideoType = null; - activeImageType = null; - filterButtons.forEach(b => { - if (!PRIVACY_FILTERS.includes(b.dataset.filter)) { - b.classList.remove('active'); - updateAriaPressed(b, false); - } - }); - btn.classList.add('active'); - updateAriaPressed(btn, true); - } - syncCapabilityFilterControls(); + // Event: Sort dropdown (single-select, reuses the shared popover behavior). + sortDd.addEventListener('click', (e) => { + if (e.target.closest('.vmb-dd-trigger')) { togglePanel(sortDd); return; } + const option = e.target.closest('.vmb-dd-option'); + if (option) { + activeSort = option.dataset.value; + updateSortUI(); + closeAllPanels(null); renderModels(); - }); + } }); // Event: Copy button (delegated) - handles both name and ID copy buttons diff --git a/models/overview.mdx b/models/overview.mdx index 1fda6547..79ae12cf 100644 --- a/models/overview.mdx +++ b/models/overview.mdx @@ -1,7 +1,8 @@ --- -title: "Models" +title: "All Models" +sidebarTitle: "All Models" description: "Catalog of all models available on the Venice API across text, image, video, audio, embeddings, and speech, with capabilities, pricing, and model IDs." -"og:title": "Models | Venice API Docs" +"og:title": "All Models | Venice API Docs" mode: "wide" --- diff --git a/overview/about-venice.mdx b/overview/about-venice.mdx index 556bdbc6..a1b03bc9 100644 --- a/overview/about-venice.mdx +++ b/overview/about-venice.mdx @@ -1,20 +1,22 @@ --- -title: Venice API +title: "Venice API" description: "Venice API documentation — private, unrestricted access to OpenAI-compatible chat, image, audio, and video models behind one API key." -"og:title": "Venice API Docs" +og:title: "Venice API Docs" mode: "wide" ---

The API for private, unrestricted access to intelligence.

OpenAI-compatible chat, image, audio, and video behind one API key.

+
+ ```bash curl curl https://api.venice.ai/api/v1/chat/completions \ -H "Authorization: Bearer $VENICE_API_KEY" \ @@ -53,6 +55,7 @@ res = client.chat.completions.create( messages=[{"role": "user", "content": "Build without permission."}], ) ``` + @@ -123,11 +134,13 @@ res = client.chat.completions.create(

Connect Venice to WhatsApp, Telegram, Discord, and more through OpenClaw, Hermes, and NanoClaw.

See integrations → + Coding agents

Use Claude Code, Cursor, and Codex CLI with Venice models for private coding workflows.

See integrations →
+ MCP + Skills

Expose chat, image, video, audio, and embeddings as MCP tools or runtime skills.

@@ -151,12 +164,15 @@ res = client.chat.completions.create( Kimi K2.6 Moonshot AI
+

Open-weights frontier reasoning. Strong long-context and tool use at a fraction of frontier prices.

+
256K context - \$0.85 / \$4.66 per 1M + $0.85 / $4.66 per 1M Private
+ kimi-k2-6
@@ -165,12 +181,15 @@ res = client.chat.completions.create( Claude Opus 4.7 Anthropic
+

Best-in-class for coding, planning, and long-horizon agents that need to stay coherent.

+
1M context - \$6.00 / \$30.00 per 1M + $6.00 / $30.00 per 1M Anonymized
+ claude-opus-4-7 @@ -179,12 +198,15 @@ res = client.chat.completions.create( GPT-5.5 OpenAI
+

Frontier general intelligence with 1M context. Strong default for chat, RAG, and multi-step reasoning.

+
1M context - \$6.25 / \$37.50 per 1M + $6.25 / $37.50 per 1M Anonymized
+ openai-gpt-55
@@ -194,6 +216,7 @@ res = client.chat.completions.create( 250+ models Text, image, audio, and video + Browse the catalog → @@ -218,294 +241,302 @@ res = client.chat.completions.create(
-Add real-time web search with citations to any text model via `enable_web_search`. - - -```bash Curl -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-1", - "messages": [{"role": "user", "content": "What are the latest developments in AI?"}], - "venice_parameters": { - "enable_web_search": "auto" - } - }' -``` - -```ts TypeScript -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-1", - messages: [{ role: "user", content: "What are the latest developments in AI?" }], - // @ts-expect-error - Venice-specific parameter - venice_parameters: { - enable_web_search: "auto", - }, -}); - -console.log(completion.choices[0].message.content); -``` - -```python Python -import os -from openai import OpenAI - -client = OpenAI( - api_key=os.environ["VENICE_API_KEY"], - base_url="https://api.venice.ai/api/v1", -) - -response = client.chat.completions.create( - model="zai-org-glm-5-1", - messages=[{"role": "user", "content": "What are the latest developments in AI?"}], - extra_body={ - "venice_parameters": { - "enable_web_search": "auto", - } + Add real-time web search with citations to any text model via `enable_web_search`. + + + + ```bash Curl + 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-1", + "messages": [{"role": "user", "content": "What are the latest developments in AI?"}], + "venice_parameters": { + "enable_web_search": "auto" + } + }' + ``` + + ```ts TypeScript + 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-1", + messages: [{ role: "user", content: "What are the latest developments in AI?" }], + // @ts-expect-error - Venice-specific parameter + venice_parameters: { + enable_web_search: "auto", }, -) - -print(response.choices[0].message.content) -``` - -```bash Model Suffix -# Alternative: append parameters directly to the model ID -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-1:enable_web_search=on&enable_web_citations=true", - "messages": [{"role": "user", "content": "What are the latest developments in AI?"}] - }' -``` - + }); + + console.log(completion.choices[0].message.content); + ``` + + ```python Python + import os + from openai import OpenAI + + client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", + ) + + response = client.chat.completions.create( + model="zai-org-glm-5-1", + messages=[{"role": "user", "content": "What are the latest developments in AI?"}], + extra_body={ + "venice_parameters": { + "enable_web_search": "auto", + } + }, + ) + + print(response.choices[0].message.content) + ``` + + ```bash Model Suffix + # Alternative: append parameters directly to the model ID + 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-1:enable_web_search=on&enable_web_citations=true", + "messages": [{"role": "user", "content": "What are the latest developments in AI?"}] + }' + ``` + + -Set `enable_web_scraping: true` and the model will fetch and read any URLs in the user message before answering. - - -```bash Curl -curl https://api.venice.ai/api/v1/chat/completions \ - -H "Authorization: Bearer $VENICE_API_KEY" \ - -H "Content-Type: application/json" \ - -d '{ - "model": "openai-gpt-55", - "messages": [ - {"role": "user", "content": "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api"} - ], - "venice_parameters": { - "enable_web_scraping": true - } - }' -``` - -```ts TypeScript -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: "openai-gpt-55", - messages: [ - { - role: "user", - content: - "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api", - }, - ], - // @ts-expect-error - Venice-specific parameter - venice_parameters: { - enable_web_scraping: true, - }, -}); - -console.log(response.choices[0].message.content); -``` - -```python Python -import os -from openai import OpenAI - -client = OpenAI( - api_key=os.environ["VENICE_API_KEY"], - base_url="https://api.venice.ai/api/v1", -) - -response = client.chat.completions.create( - model="openai-gpt-55", - messages=[ - { - "role": "user", - "content": "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api", - } + Set `enable_web_scraping: true` and the model will fetch and read any URLs in the user message before answering. + + + + ```bash Curl + curl https://api.venice.ai/api/v1/chat/completions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "openai-gpt-55", + "messages": [ + {"role": "user", "content": "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api"} + ], + "venice_parameters": { + "enable_web_scraping": true + } + }' + ``` + + ```ts TypeScript + 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: "openai-gpt-55", + messages: [ + { + role: "user", + content: + "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api", + }, ], - extra_body={ - "venice_parameters": { - "enable_web_scraping": True, - } + // @ts-expect-error - Venice-specific parameter + venice_parameters: { + enable_web_scraping: true, }, -) - -print(response.choices[0].message.content) -``` - + }); + + console.log(response.choices[0].message.content); + ``` + + ```python Python + import os + from openai import OpenAI + + client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", + ) + + response = client.chat.completions.create( + model="openai-gpt-55", + messages=[ + { + "role": "user", + "content": "Summarize this post in five bullets: https://venice.ai/blog/how-to-use-venice-api", + } + ], + extra_body={ + "venice_parameters": { + "enable_web_scraping": True, + } + }, + ) + + print(response.choices[0].message.content) + ``` + + -Attach PDFs, Office docs, code, and text files (up to 25MB) directly to a chat request. See the [File Inputs guide](/guides/features/file-inputs) for the full format list. - - -```bash Curl -# Encode a local file as a base64 data URL, then send it inline -FILE_B64=$(base64 q3-report.pdf | tr -d '\n') - -curl https://api.venice.ai/api/v1/chat/completions \ - -H "Authorization: Bearer $VENICE_API_KEY" \ - -H "Content-Type: application/json" \ - -d "{ - \"model\": \"openai-gpt-55\", - \"messages\": [ - { - \"role\": \"user\", - \"content\": [ - {\"type\": \"text\", \"text\": \"Summarize this report in five bullets and list the main risks.\"}, - {\"type\": \"file\", \"file\": {\"filename\": \"q3-report.pdf\", \"file_data\": \"data:application/pdf;base64,${FILE_B64}\"}} - ] - } - ] - }" -``` - -```ts TypeScript -import OpenAI from "openai"; -import { readFile } from "node:fs/promises"; - -const client = new OpenAI({ - apiKey: process.env.VENICE_API_KEY!, - baseURL: "https://api.venice.ai/api/v1", -}); - -const pdf = await readFile("q3-report.pdf"); -const fileData = `data:application/pdf;base64,${pdf.toString("base64")}`; - -const response = await client.chat.completions.create({ - model: "openai-gpt-55", - messages: [ - { - role: "user", - content: [ - { type: "text", text: "Summarize this report in five bullets and list the main risks." }, - // @ts-expect-error - Venice file input block - { type: "file", file: { filename: "q3-report.pdf", file_data: fileData } }, - ], - }, - ], -}); - -console.log(response.choices[0].message.content); -``` - -```python Python -import base64 -import os -from pathlib import Path -from openai import OpenAI - -client = OpenAI( - api_key=os.environ["VENICE_API_KEY"], - base_url="https://api.venice.ai/api/v1", -) - -path = Path("q3-report.pdf") -file_data = "data:application/pdf;base64," + base64.b64encode(path.read_bytes()).decode("utf-8") - -response = client.chat.completions.create( - model="openai-gpt-55", - messages=[ + Attach PDFs, Office docs, code, and text files (up to 25MB) directly to a chat request. See the [File Inputs guide](/guides/features/file-inputs) for the full format list. + + + + ```bash Curl + # Encode a local file as a base64 data URL, then send it inline + FILE_B64=$(base64 q3-report.pdf | tr -d '\n') + + curl https://api.venice.ai/api/v1/chat/completions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"model\": \"openai-gpt-55\", + \"messages\": [ { - "role": "user", - "content": [ - {"type": "text", "text": "Summarize this report in five bullets and list the main risks."}, - {"type": "file", "file": {"filename": "q3-report.pdf", "file_data": file_data}}, - ], + \"role\": \"user\", + \"content\": [ + {\"type\": \"text\", \"text\": \"Summarize this report in five bullets and list the main risks.\"}, + {\"type\": \"file\", \"file\": {\"filename\": \"q3-report.pdf\", \"file_data\": \"data:application/pdf;base64,${FILE_B64}\"}} + ] } + ] + }" + ``` + + ```ts TypeScript + import OpenAI from "openai"; + import { readFile } from "node:fs/promises"; + + const client = new OpenAI({ + apiKey: process.env.VENICE_API_KEY!, + baseURL: "https://api.venice.ai/api/v1", + }); + + const pdf = await readFile("q3-report.pdf"); + const fileData = `data:application/pdf;base64,${pdf.toString("base64")}`; + + const response = await client.chat.completions.create({ + model: "openai-gpt-55", + messages: [ + { + role: "user", + content: [ + { type: "text", text: "Summarize this report in five bullets and list the main risks." }, + // @ts-expect-error - Venice file input block + { type: "file", file: { filename: "q3-report.pdf", file_data: fileData } }, + ], + }, ], -) + }); + + console.log(response.choices[0].message.content); + ``` + + ```python Python + import base64 + import os + from pathlib import Path + from openai import OpenAI + + client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", + ) + + path = Path("q3-report.pdf") + file_data = "data:application/pdf;base64," + base64.b64encode(path.read_bytes()).decode("utf-8") + + response = client.chat.completions.create( + model="openai-gpt-55", + messages=[ + { + "role": "user", + "content": [ + {"type": "text", "text": "Summarize this report in five bullets and list the main risks."}, + {"type": "file", "file": {"filename": "q3-report.pdf", "file_data": file_data}}, + ], + } + ], + ) + + print(response.choices[0].message.content) + ``` -print(response.choices[0].message.content) -``` - + -Proxy JSON-RPC 2.0 calls across 11 supported chains with your Venice key or an x402 wallet. See the [Crypto RPC reference](/api-reference/endpoint/crypto/rpc) for chains, methods, and credit tiers. - - -```bash Curl -curl https://api.venice.ai/api/v1/crypto/rpc/ethereum-mainnet \ - -H "Authorization: Bearer $VENICE_API_KEY" \ - -H "Content-Type: application/json" \ - -d '{ - "jsonrpc": "2.0", - "method": "eth_blockNumber", - "params": [], - "id": 1 - }' -``` - -```ts TypeScript -const response = await fetch( - "https://api.venice.ai/api/v1/crypto/rpc/base-mainnet", - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.VENICE_API_KEY}`, - "Content-Type": "application/json", - }, - body: JSON.stringify([ - { jsonrpc: "2.0", method: "eth_chainId", params: [], id: 1 }, - { jsonrpc: "2.0", method: "eth_blockNumber", params: [], id: 2 }, - ]), - } -); - -const results = await response.json(); -console.log(results); -``` - -```python Python -import os -import requests - -response = requests.post( - "https://api.venice.ai/api/v1/crypto/rpc/ethereum-mainnet", - headers={ - "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + Proxy JSON-RPC 2.0 calls across 11 supported chains with your Venice key or an x402 wallet. See the [Crypto RPC reference](/api-reference/endpoint/crypto/rpc) for chains, methods, and credit tiers. + + + + ```bash Curl + curl https://api.venice.ai/api/v1/crypto/rpc/ethereum-mainnet \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "jsonrpc": "2.0", + "method": "eth_blockNumber", + "params": [], + "id": 1 + }' + ``` + + ```ts TypeScript + const response = await fetch( + "https://api.venice.ai/api/v1/crypto/rpc/base-mainnet", + { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, "Content-Type": "application/json", - }, - json={ - "jsonrpc": "2.0", - "method": "eth_getBalance", - "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"], - "id": 1, - }, -) - -print(response.json()) -``` - + }, + body: JSON.stringify([ + { jsonrpc: "2.0", method: "eth_chainId", params: [], id: 1 }, + { jsonrpc: "2.0", method: "eth_blockNumber", params: [], id: 2 }, + ]), + } + ); + + const results = await response.json(); + console.log(results); + ``` + + ```python Python + import os + import requests + + response = requests.post( + "https://api.venice.ai/api/v1/crypto/rpc/ethereum-mainnet", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "jsonrpc": "2.0", + "method": "eth_getBalance", + "params": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "latest"], + "id": 1, + }, + ) + + print(response.json()) + ``` + +
@@ -521,6 +552,7 @@ print(response.json()) Credits USD or Crypto
+

Pay as you go in USD or crypto. Credits never expire and work across every endpoint.

Buy Credits @@ -530,6 +562,7 @@ print(response.json()) DIEM Daily allowance +

Stake DIEM or VVV once and earn a fixed inference allowance every day, with no per-call charges.

Learn about DIEM @@ -539,10 +572,11 @@ print(response.json()) x402 USDC on Base +

Pay per request from any Base wallet in USDC. No account or API key, built for agents.

Read x402 Guide -Questions or feedback? Join us on [Discord](https://discord.gg/askvenice). +Questions or feedback? Join us on [Discord](https://discord.gg/askvenice). \ No newline at end of file diff --git a/overview/getting-started.mdx b/overview/getting-started.mdx deleted file mode 100644 index 862c13c8..00000000 --- a/overview/getting-started.mdx +++ /dev/null @@ -1,1006 +0,0 @@ ---- -title: Getting Started -description: "Quickstart for the Venice API — generate an API key, send your first chat completion, and explore image, video, and audio endpoints in minutes." -"og:title": "Quickstart | Venice API Docs" ---- - -Get up and running with the Venice API in minutes. Generate an API key, make your first request, and start building. - -## Quickstart - - - - Head to your [Venice API Settings](https://venice.ai/settings/api) and generate a new API key. - - For a detailed walkthrough, check out the [API Key guide](/guides/getting-started/generating-api-key). - - - - Add your API key to your environment. You can export it in your shell: - - ```bash - export VENICE_API_KEY='your-api-key-here' - ``` - - Or add it to a `.env` file in your project: - - ```bash - VENICE_API_KEY=your-api-key-here - ``` - - - - Venice is OpenAI-compatible, so you can use the OpenAI SDK. If you prefer to use cURL or raw HTTP requests, you can skip this step. - - - ```bash Python - pip install openai - ``` - - ```bash Node.js - npm install openai - ``` - - - - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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?"} - ] - }' - ``` - - - **Message roles:** - - `system` - Instructions for how the model should behave - - `user` - Your prompts or questions - - `assistant` - Previous model responses (for multi-turn conversations) - - `tool` - Function calling results (when using tools) - - - - Every request includes a `model` ID. To use a different model, change the `model` value in your request. Popular choices: - - `zai-org-glm-5` - Default model for most use cases - - `kimi-k2-6` - Strong reasoning for more complex tasks - - `claude-opus-4-8` - High-intelligence model for complex tasks - - `venice-uncensored-1-2` - Venice's uncensored model - - - Browse the complete list of models with pricing, capabilities, and context limits - - - - - You can choose to enable Venice-specific features like web search using `venice_parameters`: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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 - } - }' - ``` - - - See all [available parameters](https://docs.venice.ai/api-reference/api-spec#venice-parameters). - - - - Stream responses in real-time using `stream=True`: - - - ```python Python - 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="") - ``` - - ```javascript Node.js - 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); - } - } - ``` - - ```bash cURL - 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 - }' - ``` - - - - - Control how the model responds with parameters like temperature, max tokens, and more: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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 - } - }' - ``` - - - Check out the [Chat Completions docs](/api-reference/endpoint/chat/completions) for more information on all supported parameters. - - - ---- - -## More Capabilities - -### Image Generation - -Create images from text prompts using diffusion models: - - - ```python Python - 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()) - ``` - - ```javascript Node.js - 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); - } - ``` - - ```bash cURL - 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 - }' - ``` - - -**Note:** The response returns base64-encoded images in the `images` array. Decode the base64 string to save or display the image. - -**Popular Image Models:** -- `qwen-image` - Highest quality image generation -- `venice-sd35` - Default choice, works with all features -- `hidream` - Fast generation for production use - - - See all available image models with pricing and capabilities - - -For more advanced parameter options like `cfg_scale`, `negative_prompt`, `style_preset`, `seed`, `variants`, and more, check out the [Images API Reference](/api-reference/endpoint/image/generate). - -### Image Editing - -Modify existing images with AI-powered inpainting using the Qwen-Image model: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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)); - ``` - - ```bash cURL - 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..." - }' - ``` - - -**Note:** The image editor uses the Qwen-Image model and is an experimental endpoint. Send the input image as a base64-encoded string, and the API returns the edited image as binary data. - -See the [Image Edit API](/api-reference/endpoint/image/edit) for all parameters. - -### Image Upscaling - -Enhance and upscale images to higher resolutions: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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)); - ``` - - ```bash cURL - 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 - }' - ``` - - -**Note:** Send the input image as a base64-encoded string, and the API returns the upscaled image as binary data. - -See the [Image Upscale API](/api-reference/endpoint/image/upscale) for all parameters. - -### Text-to-Speech - -Convert text to audio with 50+ multilingual voices: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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)); - ``` - - ```bash cURL - 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 - ``` - - -The `tts-kokoro` model supports 50+ multilingual voices including `af_sky`, `af_nova`, `am_liam`, `bf_emma`, `zf_xiaobei`, and `jm_kumo`. - -See the [TTS API](/api-reference/endpoint/audio/speech) for all voice options. - -### Speech-to-Text - -Transcribe audio files to text: - - - ```python Python - 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()) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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 - ``` - - -Supported formats: WAV, FLAC, MP3, M4A, AAC, MP4. Enable `timestamps=true` to get word-level timing data. - -See the [Transcriptions API](/api-reference/endpoint/audio/transcriptions) for all options. - -### Embeddings - -Generate vector embeddings for semantic search, RAG, and recommendations: - - - ```python Python - 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()) - ``` - - ```javascript Node.js - 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); - } - ``` - - ```bash cURL - 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" - }' - ``` - - -See the [Embeddings API](/api-reference/endpoint/embeddings/generate) for batch processing and advanced options. - -### Vision (Multimodal) - -Analyze images alongside text using vision-capable models like `qwen3-vl-235b-a22b`: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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 - -Define functions that models can call to interact with external tools and APIs: - - - ```python Python - 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) - ``` - - ```javascript Node.js - 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); - ``` - - ```bash cURL - 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"] - } - } - } - ] - }' - ``` - - ---- - -## Next Steps - -Now that you've made your first requests, explore more of what Venice API has to offer: - - - - Compare all available models with their capabilities, pricing, and context limits - - - Explore detailed API documentation with all endpoints and parameters - - - Learn how to get JSON responses with guaranteed schemas - - - Build with agent apps, coding agents, MCP tools, skills, and crypto workflows - - - -### Additional Resources - - - - Understand rate limits and best practices for production usage - - - Reference for handling API errors and troubleshooting issues - - - Import our complete Postman collection for easy testing - - - Learn about Venice's privacy-first architecture and data handling - - - ---- - -## Need Help? - -- **Discord Community**: Join our [Discord server](https://discord.gg/askvenice) for support and discussions -- **Documentation**: Browse our [complete API reference](/api-reference/api-spec) -- **Status Page**: Check service status at [veniceai-status.com](https://veniceai-status.com) -- **Twitter**: Follow [@AskVenice](https://x.com/AskVenice) for updates - - \ No newline at end of file diff --git a/overview/pricing.mdx b/overview/pricing.mdx index 6a6588c5..af9488e6 100644 --- a/overview/pricing.mdx +++ b/overview/pricing.mdx @@ -162,6 +162,7 @@ Prices per 1M tokens unless noted. All prices in USD. 1 Diem = $1/day of compute | Ideogram V4 | `ideogram-v4` | Per Image: $0.06 | Anonymized | | ImagineArt 1.5 Pro | `imagineart-1.5-pro` | Per Image: $0.06 | Anonymized | | Nano Banana 2 Lite | `nano-banana-2-lite` | Per Image: $0.06 | Anonymized | +| Seedream V5 Pro | `seedream-v5-pro` | 1K: $0.06, 2K: $0.11 | Anonymized | | Luma Uni-1 | `luma-uni-1` | Per Image: $0.05 | Anonymized | | Qwen Image 2 | `qwen-image-2` | Per Image: $0.05 | Anonymized | | Recraft V4 | `recraft-v4` | Per Image: $0.05 | Anonymized | @@ -210,6 +211,7 @@ Prices per 1M tokens unless noted. All prices in USD. 1 Diem = $1/day of compute | Qwen Image 2 Pro | `qwen-image-2-pro-edit` | $0.10 | | Seedream V4.5 | `seedream-v4-edit` | $0.05 | | Seedream V5 Lite | `seedream-v5-lite-edit` | $0.05 | +| Seedream V5 Pro | `seedream-v5-pro-edit` | $0.11 | | Wan 2.7 Pro Edit | `wan-2-7-pro-edit` | $0.09 | | Qwen Image | `qwen-image` | $0.04 | diff --git a/pt-BR/guides/features/embeddings.mdx b/pt-BR/guides/features/embeddings.mdx new file mode 100644 index 00000000..6775f3a1 --- /dev/null +++ b/pt-BR/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "Embeddings" +description: "Gere embeddings vetoriais com a Venice para busca semântica, recuperação em RAG, clusterização e recomendações usando o endpoint /embeddings." +'og:title': "Embeddings | Documentação da API Venice" +'og:description': "Aprenda a gerar embeddings vetoriais com a API Venice." +--- + +Embeddings convertem texto em vetores que capturam significado semântico. Use-os para busca, geração aumentada por recuperação (RAG), clusterização, recomendações, deduplicação e pontuação de similaridade. + +O endpoint de embeddings da Venice é compatível com OpenAI. Envie uma string ou um array de strings para `/embeddings` e armazene os vetores retornados no seu banco de dados ou índice vetorial. + +## Uso Básico + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## Entradas em Lote + +Passe um array de strings para gerar embeddings de vários textos em uma única requisição: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +A resposta preserva a ordem de entrada. Armazene cada vetor com o ID do texto de origem, os metadados e o ID do modelo de embedding. + +## Fluxo de Trabalho Comum + +1. Divida os documentos de origem em pedaços (chunks). +2. Gere embeddings para cada pedaço. +3. Armazene os vetores e metadados em um banco de dados vetorial. +4. Gere o embedding da consulta do usuário. +5. Recupere os pedaços mais próximos. +6. Envie o contexto recuperado para um modelo de chat. + +Para uma implementação completa, veja [Construindo um Bot RAG Privado](/guides/projects/private-rag-bot). + +## Seleção de Modelo + +Use a página [Modelos de Embedding](/models/embeddings) para comparar os modelos de embedding atuais, dimensões e preços. + + +Use o mesmo modelo de embedding para indexação e consulta. Misturar modelos pode tornar as pontuações de similaridade não confiáveis, pois os espaços vetoriais não são intercambiáveis. + + +## Recursos Relacionados + +- [API de Embeddings](/api-reference/endpoint/embeddings/generate) +- [Modelos de Embedding](/models/embeddings) +- [Guia do Bot RAG Privado](/guides/projects/private-rag-bot) diff --git a/pt-BR/guides/features/function-calling.mdx b/pt-BR/guides/features/function-calling.mdx new file mode 100644 index 00000000..fcd9fdbc --- /dev/null +++ b/pt-BR/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "Function Calling" +description: "Permita que os modelos de chat da Venice chamem as ferramentas da sua aplicação com function calling compatível com OpenAI e a API de chat completions." +'og:title': "Function Calling | Documentação da API Venice" +'og:description': "Aprenda a usar function calling com os modelos de chat da Venice." +--- + +Function calling permite que um modelo escolha chamadas de ferramentas estruturadas que sua aplicação pode executar. O próprio modelo não executa a função. Ele retorna o nome da função e os argumentos, seu código executa a função e você envia o resultado de volta ao modelo. + +Use function calling quando o modelo precisar de dados em tempo real, ações da aplicação, consultas a bancos de dados ou cálculos determinísticos. + +## Definição Básica de Ferramenta + +Defina ferramentas com o array `tools` compatível com OpenAI: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## Executar a Ferramenta + +Quando o modelo escolhe uma ferramenta, inspecione `message.tool_calls`, faça o parse dos argumentos, execute a função da sua aplicação e envie o resultado de volta como uma mensagem `tool`. + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## Escolha um Modelo + +O suporte a function calling é específico de cada modelo. Use a página [Modelos de Texto](/models/text) ou a [API de Modelos](/api-reference/endpoint/models/list) para encontrar modelos com `supportsFunctionCalling`. + + +Trate os argumentos das ferramentas como entrada não confiável. Valide os argumentos antes de usá-los em consultas a bancos de dados, comandos shell, pagamentos ou outras operações com efeitos colaterais. + + +## Dicas de Design + +- Mantenha nomes e descrições de ferramentas curtos e literais. +- Use JSON Schema para facilitar a produção de argumentos válidos pelo modelo. +- Prefira ferramentas específicas com entradas claras a uma única ferramenta ampla com muitos comportamentos opcionais. +- Retorne resultados concisos das ferramentas para que a resposta final tenha contexto suficiente sem desperdiçar tokens. + +## Recursos Relacionados + +- [API de Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelos de Texto](/models/text) +- [Guia de Respostas Estruturadas](/guides/features/structured-responses) +- [Integração com LangChain](/guides/integrations/langchain#function-calling-with-agents) diff --git a/pt-BR/guides/features/vision.mdx b/pt-BR/guides/features/vision.mdx new file mode 100644 index 00000000..26b46d57 --- /dev/null +++ b/pt-BR/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "Visão" +description: "Analise imagens com os modelos de chat com capacidade de visão da Venice usando conteúdo multimodal de mensagens na API de chat completions compatível com OpenAI." +'og:title': "Visão | Documentação da API Venice" +'og:description': "Aprenda a enviar imagens para os modelos de visão da Venice." +--- + +Os modelos de visão podem analisar imagens junto com prompts de texto. Use-os para compreensão de imagens, extração, classificação, resposta a perguntas visuais e raciocínio multimodal. + +A Venice oferece suporte a mensagens de chat multimodais compatíveis com OpenAI. Coloque blocos de texto e imagem na mesma mensagem do usuário e envie a requisição para um modelo com capacidade de visão. + +## Uso Básico + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## Usar Imagens em Base64 + +Você também pode passar um data URL em base64 quando a imagem for local ou privada: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## Escolha um Modelo de Visão + +Use a página [Modelos de Texto](/models/text) ou a [API de Modelos](/api-reference/endpoint/models/list) para encontrar modelos que suportam visão. O suporte à visão é listado nas capacidades do modelo. + + +Para entradas semelhantes a documentos, use [Entradas de Arquivo](/guides/features/file-inputs) quando desejar que a Venice extraia texto de um arquivo. Use visão quando o layout visual ou o conteúdo da imagem em si importar. + + +## Dicas de Prompt + +- Diga ao modelo em que focar: objetos, texto, layout, segurança, defeitos ou diferenças. +- Solicite saída estruturada quando sua aplicação precisar de campos que você possa fazer parse. +- Mantenha as URLs das imagens acessíveis à API ou use data URLs em base64 para imagens privadas. +- Use um modelo com contexto suficiente se combinar imagens com instruções longas. + +## Recursos Relacionados + +- [API de Chat Completions](/api-reference/endpoint/chat/completions) +- [Modelos de Texto](/models/text) +- [Guia de Entradas de Arquivo](/guides/features/file-inputs) +- [Guia de Respostas Estruturadas](/guides/features/structured-responses) diff --git a/pt-BR/guides/media/image-upscaling.mdx b/pt-BR/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..6886ccdb --- /dev/null +++ b/pt-BR/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "Upscaling de Imagens" +description: "Aprimore e faça upscaling de imagens com a API síncrona de upscaling de imagens da Venice usando entrada em base64 e saída binária de imagem." +'og:title': "Upscaling de Imagens | Documentação da API Venice" +'og:description': "Aprenda a aprimorar e fazer upscaling de imagens com a API Venice." +--- + +O upscaling de imagens melhora a resolução e a qualidade visual de uma imagem existente. Envie uma imagem codificada em base64 para `/image/upscale`, escolha um fator de escala e a Venice retornará a imagem aprimorada como dados binários. + +Use o upscaling de imagens quando você já tem uma imagem e deseja uma saída em resolução mais alta. Use [geração de imagens](/guides/media/image-generation) quando precisar criar uma imagem a partir de um prompt e [edição de imagens](/guides/media/image-editing) quando precisar alterar o conteúdo da imagem. + +## Uso Básico + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## Parâmetros + +| Parâmetro | Tipo | Obrigatório | Descrição | +|-----------|------|-------------|-----------| +| `image` | string | Sim | Imagem de origem codificada em base64. | +| `scale` | number | Não | Fator de upscaling. Use os valores suportados listados na referência da API e no catálogo de modelos. | + + +A resposta são dados binários da imagem, não JSON. Grave o corpo da resposta diretamente em um arquivo ou faça streaming para o armazenamento. + + +## Dicas de Entrada + +- Comece com a imagem de origem mais limpa que você tiver. O upscaling melhora os detalhes, mas não pode recuperar totalmente informações que não estão presentes. +- Use fatores de escala moderados para fluxos de trabalho em produção. Saídas muito grandes podem aumentar a latência e o tamanho do arquivo. +- Mantenha a imagem original por perto se precisar comparar a qualidade ou tentar novamente com configurações diferentes. + +## Recursos Relacionados + +- [API de Upscaling de Imagens](/api-reference/endpoint/image/upscale) +- [Modelos de Imagem](/models/image) +- [Guia de Edição de Imagens](/guides/media/image-editing) diff --git a/pt-BR/guides/media/speech-to-text.mdx b/pt-BR/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..cb6f1d67 --- /dev/null +++ b/pt-BR/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "Fala para Texto" +description: "Transcreva arquivos de áudio com os modelos de fala para texto da Venice usando o endpoint /audio/transcriptions compatível com OpenAI." +'og:title': "Fala para Texto | Documentação da API Venice" +'og:description': "Aprenda a transcrever arquivos de áudio com a API Venice." +--- + +A conversão de fala para texto transcreve áudio falado em texto escrito. Envie um arquivo de áudio para `/audio/transcriptions`, escolha um modelo de transcrição e selecione o formato de resposta desejado. + +## Uso Básico + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## Entradas Suportadas + +Formatos de áudio comuns incluem `mp3`, `mp4`, `mpeg`, `mpga`, `m4a`, `wav`, `webm`, `flac` e `ogg`. Consulte a página [Modelos de Fala para Texto](/models/speech-to-text) para saber quais modelos são suportados atualmente e seus preços. + +## Formatos de Resposta + +| Formato | Use quando | +|---------|------------| +| `json` | Você quiser uma resposta simples no formato `{ "text": "..." }`. | +| `text` | Você quiser texto puro sem precisar fazer parse de JSON. | +| `srt` | Você precisar de legendas SubRip. | +| `vtt` | Você precisar de legendas WebVTT. | +| `verbose_json` | Você precisar de metadados mais ricos de timestamps e segmentos. | + + +Use formatos de legenda quando a transcrição for combinada com a reprodução da mídia. Use `json` ou `text` quando a transcrição alimentar sumarização, busca ou prompts de chat subsequentes. + + +## Dicas de Produção + +- Mantenha o áudio nítido e evite falas sobrepostas quando possível. +- Divida gravações muito longas em pedaços menores se seu fluxo de trabalho precisar de menor latência ou retentativas mais fáceis. +- Armazene o caminho do áudio original, o ID do modelo e o formato de resposta com cada transcrição para fins de auditoria. + +## Recursos Relacionados + +- [API de Transcrição de Áudio](/api-reference/endpoint/audio/transcriptions) +- [Modelos de Fala para Texto](/models/speech-to-text) +- [Guia de Texto para Fala](/guides/media/text-to-speech) diff --git a/pt-BR/guides/media/text-to-speech.mdx b/pt-BR/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..7f26bcbe --- /dev/null +++ b/pt-BR/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "Texto para Fala" +description: "Gere áudio falado a partir de texto com os modelos de texto para fala da Venice, vozes específicas por modelo e o endpoint /audio/speech." +'og:title': "Texto para Fala | Documentação da API Venice" +'og:description': "Aprenda a converter texto em fala com a API Venice." +--- + +A conversão de texto para fala transforma texto escrito em áudio falado. Escolha um modelo TTS, selecione uma voz suportada por esse modelo, envie o texto para `/audio/speech` e salve a resposta binária de áudio. + +Use este guia para geração padrão de voz. Se você quiser criar fala a partir de uma voz de referência personalizada, veja [Clonagem de Voz](/guides/media/voice-cloning). + +## Uso Básico + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## Escolha um Modelo e uma Voz + +As vozes são específicas por modelo. O valor de `voice` deve ser válido para o `model` que você escolher. + +Use a página [Modelos de Texto para Fala](/models/text-to-speech) para navegar pelos modelos e vozes disponíveis. O seletor de vozes lista os IDs exatos de voz para passar na sua requisição. + + +Os IDs de voz diferenciam maiúsculas de minúsculas. Se você trocar de modelo TTS, atualize o valor de `voice` ao mesmo tempo. + + +## Formato da Requisição + +| Parâmetro | Tipo | Obrigatório | Descrição | +|-----------|------|-------------|-----------| +| `model` | string | Sim | ID do modelo de texto para fala. | +| `voice` | string | Sim | ID da voz suportada pelo modelo selecionado. | +| `input` | string | Sim | Texto a ser sintetizado. | + +## Dicas de Produção + +- Faça cache do áudio gerado quando o texto de origem e a voz forem reutilizados. +- Normalize e revise o texto antes da síntese. A pontuação afeta o ritmo e a entonação. +- Salve a saída com a extensão de arquivo correta para o formato de resposta do modelo. + +## Recursos Relacionados + +- [API de Áudio Speech](/api-reference/endpoint/audio/speech) +- [Modelos de Texto para Fala](/models/text-to-speech) +- [Guia de Clonagem de Voz](/guides/media/voice-cloning) diff --git a/pt-BR/guides/overview.mdx b/pt-BR/guides/overview.mdx index 7b72a119..2325f1dd 100644 --- a/pt-BR/guides/overview.mdx +++ b/pt-BR/guides/overview.mdx @@ -1,53 +1,62 @@ --- title: Guias -description: "Guias práticos da Venice API para chaves, migração do OpenAI, respostas estruturadas, file inputs, prompt caching, mídia e integração com agentes." +description: Guias práticos da API Venice para chaves de API, migração do OpenAI, capacidades de chat, embeddings, mídia e integrações com agentes. --- -Use estes guias para gerar chaves de API, migrar aplicações OpenAI existentes, habilitar recursos específicos da Venice e conectar a Venice a frameworks de agentes, ferramentas de codificação e fluxos de mídia. +Use estes guias para gerar chaves de API, migrar aplicações OpenAI existentes, habilitar capacidades específicas da Venice e conectar a Venice a frameworks de agentes, ferramentas de programação e fluxos de trabalho de mídia. - - Crie e gerencie chaves de API a partir do dashboard da Venice. + + Crie e gerencie chaves de API pelo painel da Venice. - Troque aplicações compatíveis com OpenAI para a Venice alterando a URL base. + Migre aplicações compatíveis com OpenAI para a Venice alterando a URL base. - + Solicite respostas que correspondam a um schema JSON. - - Envie documentos e arquivos de código-fonte a modelos de chat. + + Permita que os modelos chamem as ferramentas da sua aplicação com argumentos estruturados. - + + Analise imagens com modelos de chat multimodais. + + + Gere vetores para busca semântica, RAG e recomendações. + + + Envie documentos e arquivos-fonte para modelos de chat. + + Reduza a latência e o custo para conteúdo de prompt repetido. - + Construa um agente de pesquisa em Python que coleta fontes e escreve relatórios com citações. -## Explore por tópico +## Explore por Tópico - + Chaves de API, migração, criação autônoma de chaves e Postman. - - Saídas estruturadas, modelos de raciocínio, file inputs, prompt caching e modelos com privacidade aprimorada. + + Saídas estruturadas, modelos de raciocínio, function calling, visão, embeddings, entradas de arquivo, cache de prompt e modelos com privacidade aprimorada. - - Geração de imagens, edição de imagens, geração de vídeo, referências e upscaling. + + Geração de imagens, edição de imagens, upscaling, geração de vídeo, texto para fala, fala para texto e clonagem de voz. - - Apps de agentes, ferramentas de assistentes, crypto RPC, autenticação por carteira e integrações da comunidade. + + Aplicações de agentes, ferramentas de assistente, RPC de cripto, autenticação de carteira e integrações da comunidade. - - Use modelos Venice com Claude Code, Cursor, OpenCode e Codex CLI. + + Use os modelos da Venice com Claude Code, Cursor, OpenCode e Codex CLI. - + Construa com LangChain, Vercel AI SDK e CrewAI. - Construa seus próprios projetos usando um dos nossos passos a passo. + Construa seus próprios projetos usando um de nossos tutoriais. diff --git a/pt-BR/guides/projects/overview.mdx b/pt-BR/guides/projects/overview.mdx new file mode 100644 index 00000000..1b9c9332 --- /dev/null +++ b/pt-BR/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "Demos e projetos" +sidebarTitle: "Visão geral" +description: "Projetos de demonstração completos construídos sobre a API da Venice, com código funcional que você pode executar, ler e adaptar para os seus próprios aplicativos." +"og:title": "Demos | Venice API Docs" +--- + +
+
+
+ + Python +
+

Bot RAG privado

+

Respostas fundamentadas e citáveis a partir dos seus próprios documentos, com recuperação reordenada.

+
+ Qdrant + FastEmbed + Reordenação +
+ +
Joshua Mo · Apr 2026
+
+ +
+
+ + Python +
+

Agente de pesquisa privado

+

Planeja buscas, lê fontes da web e escreve relatórios em Markdown com citações.

+
+ Scrape API + Planejador + Relatórios citados +
+ +
Joshua Mo · May 2026
+
+ +
+
+ + Python +
+

Revisor de segurança de código

+

Encontra vulnerabilidades atômicas e as encadeia em caminhos de exploração.

+
+ Mapa AST do repo + Pydantic + Dois agentes +
+ +
Joshua Mo · Jun 2026
+
+ +
+
+ + Rust +
+

Gateway LLM em Rust

+

Um gateway compatível com OpenAI com autenticação, limites de taxa, streaming e telemetria.

+
+ Axum + Postgres + SQLx + OpenTelemetry +
+ +
Joshua Mo · Jul 2026
+
+
diff --git a/pt-BR/models/overview.mdx b/pt-BR/models/overview.mdx index b5354d2b..66104313 100644 --- a/pt-BR/models/overview.mdx +++ b/pt-BR/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "Modelos" +title: "Todos os modelos" +sidebarTitle: "Todos os modelos" description: "Catálogo de todos os modelos disponíveis na Venice API em texto, imagem, vídeo, áudio, embeddings e fala, com capacidades, preços e IDs de modelo." "og:title": "Modelos | Documentação da API Venice" mode: "wide" diff --git a/style.css b/style.css index 8c5cfe33..25cc549c 100644 --- a/style.css +++ b/style.css @@ -575,7 +575,31 @@ flex: 1; } -.vmb-toolbar-right { +/* Controls row: model count on the left; sort | divider | filters on the right. */ +.vmb-controls { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; + margin-bottom: 28px; +} + +/* Right-hand cluster: sort dropdown | divider | filter dropdowns. */ +.vmb-controls-group { + display: flex; + align-items: center; + gap: 8px; + flex-wrap: wrap; + margin-left: auto; +} + +.vmb-controls-divider { + align-self: stretch; + width: 1px; + min-height: 22px; + margin: 0 2px; + background: rgba(128,128,128,0.25); flex-shrink: 0; } @@ -601,61 +625,37 @@ color: rgba(128,128,128,0.6); } -/* Sort toggle button */ -.vmb-sort-toggle { - display: flex; - align-items: center; - justify-content: center; - width: 36px; - height: 36px; - border: none; - border-radius: 8px; - background: transparent; - color: inherit; - cursor: pointer; - opacity: 0.5; - transition: all 0.15s ease; -} - -.vmb-sort-toggle:hover { - opacity: 1; - background: rgba(128,128,128,0.1); +/* Sort dropdown: reuses the shared .vmb-dd popover component, with a leading + sort glyph in the trigger and a right-aligned panel (it sits at the far right + of the toolbar). */ +.vmb-sort-dd .vmb-dd-sort-icon { + flex-shrink: 0; + opacity: 0.7; } -.vmb-sort-toggle.active { +.vmb-sort-dd.vmb-dd-active .vmb-dd-sort-icon { opacity: 1; - color: #125DA3; } -.vmb-sort-icon { - width: 18px; - height: 18px; - transition: transform 0.2s ease; -} - -.vmb-sort-toggle.asc .vmb-sort-icon { - transform: scaleY(-1); +/* Right-align the popover for dropdowns anchored to the right edge. */ +.vmb-dd-right .vmb-dd-panel { + left: auto; + right: 0; } -/* Filter pills */ +/* Filter toolbar (nested in .vmb-controls, which owns the bottom margin). */ .vmb-filters { display: flex; - gap: 6px; + gap: 8px; flex-wrap: wrap; - margin-bottom: 16px; align-items: center; } -/* Results bar */ -.vmb-results-bar { - display: flex; - align-items: center; - margin-bottom: 12px; -} - +/* Model count (left side of the controls row). */ .vmb-count { font-size: 13px; opacity: 0.6; + white-space: nowrap; } .vmb-search-highlight { @@ -665,49 +665,174 @@ color: inherit; } -.vmb-category-filters, -.vmb-capability-filters, -.vmb-video-filters, -.vmb-image-filters, -.vmb-privacy-filters { - display: contents; +/* ===== Filter dropdowns ===== */ +.vmb-dd { + position: relative; } -.vmb-filter { - padding: 6px 14px; - border-radius: 20px; - border: 1px solid rgba(128,128,128,0.2); +.vmb-dd-trigger { + display: inline-flex; + align-items: center; + gap: 8px; + padding: 7px 12px; + border-radius: 10px; + border: 1px solid rgba(128,128,128,0.25); background: transparent; - cursor: pointer; - font-size: 13px; color: inherit; - opacity: 0.65; - transition: all 0.15s ease; + font-size: 13px; + font-weight: 500; + line-height: 1.2; + cursor: pointer; + white-space: nowrap; + opacity: 0.85; + transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease, color 0.15s ease; } -.vmb-filter:hover { - background: rgba(128,128,128,0.1); - border-color: rgba(128,128,128,0.3); +.vmb-dd-trigger:hover { + background: rgba(128,128,128,0.08); + border-color: rgba(128,128,128,0.4); opacity: 1; } -.vmb-filter.active { +.vmb-dd-chevron { + opacity: 0.6; + transition: transform 0.15s ease; +} + +.vmb-dd.open .vmb-dd-chevron { + transform: rotate(180deg); +} + +/* Active (non-default) filter uses the Venice action color. */ +.vmb-dd-active .vmb-dd-trigger { background: rgba(18,93,163,0.12); border-color: rgba(18,93,163,0.4); color: #125DA3; - font-weight: 500; opacity: 1; } -.vmb-filter:disabled { +.dark .vmb-dd-active .vmb-dd-trigger, +[data-theme="dark"] .vmb-dd-active .vmb-dd-trigger { + background: rgba(96,165,250,0.16); + border-color: rgba(96,165,250,0.4); + color: #6ba7e0; +} + +/* Disabled dropdown (e.g. Capability while viewing non-text types). */ +.vmb-dd-disabled { + opacity: 0.4; +} + +.vmb-dd-disabled .vmb-dd-trigger { cursor: not-allowed; - opacity: 0.35; } -.vmb-filter:disabled:hover { +.vmb-dd-disabled .vmb-dd-trigger:hover { background: transparent; - border-color: rgba(128,128,128,0.2); - opacity: 0.35; + border-color: rgba(128,128,128,0.25); +} + +/* Popover panel -- matches Mintlify's native menu component (theme/language + dropdowns): 16px radius, 4px padding, subtle shadow in light / none in dark. */ +.vmb-dd-panel { + position: absolute; + top: calc(100% + 6px); + left: 0; + z-index: 50; + min-width: 190px; + padding: 4px; + display: flex; + flex-direction: column; + gap: 2px; + border-radius: 16px; + border: 1px solid rgba(0,0,0,0.1); + background: #ffffff; + box-shadow: 0 10px 30px rgba(100,116,139,0.12), 0 2px 8px rgba(100,116,139,0.06); +} + +.dark .vmb-dd-panel, +[data-theme="dark"] .vmb-dd-panel { + background: rgb(10, 13, 15); + border-color: rgba(255,255,255,0.1); + box-shadow: none; +} + +.vmb-dd-panel[hidden] { + display: none; +} + +.vmb-dd-option { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + width: 100%; + min-height: 36px; + padding: 8px; + border: none; + border-radius: 12px; + background: transparent; + color: inherit; + font-size: 14px; + text-align: left; + cursor: pointer; + transition: background 0.12s ease; +} + +.vmb-dd-option:hover { + background: rgba(0,0,0,0.05); +} + +.dark .vmb-dd-option:hover, +[data-theme="dark"] .vmb-dd-option:hover { + background: rgba(255,255,255,0.05); +} + +.vmb-dd-option .vmb-dd-check { + opacity: 0; + color: #125DA3; + flex-shrink: 0; +} + +.dark .vmb-dd-option .vmb-dd-check, +[data-theme="dark"] .vmb-dd-option .vmb-dd-check { + color: #6ba7e0; +} + +.vmb-dd-option.selected { + color: #125DA3; + font-weight: 500; +} + +.dark .vmb-dd-option.selected, +[data-theme="dark"] .vmb-dd-option.selected { + color: #6ba7e0; +} + +.vmb-dd-option.selected .vmb-dd-check { + opacity: 1; +} + +/* Clear-all affordance */ +.vmb-dd-clear { + padding: 7px 10px; + border: none; + background: transparent; + color: inherit; + font-size: 13px; + font-weight: 500; + cursor: pointer; + opacity: 0.6; + transition: opacity 0.15s ease, color 0.15s ease; +} + +.vmb-dd-clear:hover { + opacity: 1; + color: #125DA3; +} + +.vmb-dd-clear[hidden] { + display: none; } .vmb-models { @@ -1972,23 +2097,23 @@ border-radius: 6px; } - /* Filters: scroll horizontally */ - .vmb-filters { - flex-wrap: nowrap; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - scrollbar-width: none; - -ms-overflow-style: none; - padding-bottom: 8px; + /* Filters wrap on mobile. (Must not use overflow-x:auto here -- it would clip + the absolutely-positioned dropdown panels.) */ + .vmb-controls { margin-bottom: 12px; } - - .vmb-filters::-webkit-scrollbar { + + /* The vertical divider reads oddly once controls wrap onto multiple rows. */ + .vmb-controls-divider { display: none; } - - .vmb-filter { - flex-shrink: 0; + + .vmb-dd { + flex: 1 1 auto; + } + + .vmb-dd-panel { + min-width: 100%; } /* Model cards */ @@ -2526,3 +2651,407 @@ } } + +/* Wider left-hand navigation sidebar. + Mintlify defaults the sidebar to w-56 (14rem) and offsets the content with lg:pl-56. + Both must be bumped together so the widened nav doesn't overlap the page content. */ +@media (min-width: 1024px) { + nav#sidebar-content { + width: 18rem !important; + } + + #body-content { + padding-left: 18rem !important; + } + + /* Widen the central content column (Mintlify defaults it to max-w-[696px]) + and center it in the viewport. + + Mintlify centers content with margin-left:max(0px,calc(50vw-348px-14rem)), + where 348px is half its default 696px content width and 14rem is its + default sidebar width. Since we widened both the sidebar (18rem) and the + content (820px -> half = 410px), we recompute the formula with our own + constants. It's purely viewport-based (50vw) and pairs with the inherited + margin-right:auto, so the column sits in the same place whether or not the + right-hand "On this page" table of contents is present -- no layout shift. */ + #content-area { + max-width: 820px !important; + margin-left: max(0px, calc(50vw - 410px - 18rem)) !important; + margin-right: auto !important; + } + + /* Taller top navigation bar. + Mintlify sets the navbar content row to h-12 (48px) with items-center, and + paints the bottom border on an absolute h-full background layer. Growing the + row height increases the header height while items-center keeps the logo, + tabs, and actions vertically centered. */ + header .items-center.h-12 { + height: 5rem !important; + } + + /* Remove the navbar bottom border (lives on the absolute background layer). */ + header .w-full.h-full.border-b { + border-bottom: 0 !important; + } + + /* Frosted-glass navbar: drop the fill to 60% opacity and blur what scrolls + under it. The fill is the absolute inset-0 layer painted with the + background-light/dark tokens; color-mix keeps it tokenized while applying + the 60% alpha. */ + header .absolute.inset-0.bg-background-light { + background-color: color-mix(in srgb, var(--color-background-light) 60%, transparent) !important; + -webkit-backdrop-filter: blur(20px); + backdrop-filter: blur(20px); + } + + .dark header .absolute.inset-0.bg-background-light, + [data-theme="dark"] header .absolute.inset-0.bg-background-light { + background-color: color-mix(in srgb, var(--color-background-dark) 60%, transparent) !important; + } + + /* The fixed sidebar and sticky "On this page" TOC are offset from the top by + the header height (Mintlify's default 48px). Since the header is now 80px, + bump both offsets to match so the taller header doesn't overlap them. */ + nav#sidebar-content { + top: 5rem !important; + } + + #content-side-layout { + top: 5rem !important; + } + + /* Add breathing room at the bottom of the scrollable sidebar so the last + nav item isn't clipped against the viewport edge (Mintlify defaults the + scroll container to pb-4 / 16px). */ + #navigation-items { + padding-bottom: 5rem !important; + } + + /* Hide the "Try Venice" CTA in the top navbar. We hide the wrapping
    , not + just the
  • : an empty-but-present
      stays a flex item and injects a + phantom gap between the Ask AI and theme buttons, making the icon spacing + look uneven. */ + header ul:has(#topbar-cta-button) { + display: none !important; + } + + /* Even out the header icon-button spacing. Mintlify puts search + Ask AI in a + gap-2.5 (0.625rem) group while the theme toggle is a gap-2 (0.5rem) sibling, + so the gaps differ. Normalize the group's gap to 0.5rem so all three + circles are evenly spaced. */ + header div:has(> #search-bar-entry) { + column-gap: 0.5rem !important; + } + + /* Double the header logo size (Mintlify defaults it to h-6 / 24px). The + taller 5rem navbar has room for it. */ + header .nav-logo { + height: 3rem !important; + } + + /* Force the search + Ask AI entries to always be compact icon-circle buttons. + Mintlify keeps both collapsed (w-9, centered, no padding) below a 1500px + navbar container and only expands them (label + ⌘K / ⌘I) via + @[1500px]/navbar utilities. Those overrides are !important and live in the + `utilities` cascade layer, so an unlayered !important rule can't beat them + (unlayered !important is the lowest-priority important tier). We join the + same `utilities` layer and rely on the higher specificity of an id selector + to win, pinning the collapsed state. */ + @layer utilities { + header #search-bar-entry, + header #assistant-entry { + width: 2.25rem !important; + padding: 0 !important; + justify-content: center !important; + } + + /* Hide the search "Search... ⌘K" and assistant "Ask Assistant ⌘I" labels + so only the icons remain. */ + header #search-bar-entry .truncate.min-w-0, + header #search-bar-entry > span, + header #assistant-entry > span { + display: none !important; + } + } + + /* The language selector natively renders in the left group (next to the logo). + We relocate it via JS (see model-search.js) into the right actions cluster, + just left of the search / Ask AI / theme icon group, so it lays out in + natural flex flow -- resilient to Mintlify adding or removing header buttons + (e.g. the AI assistant) instead of colliding with a hardcoded offset. This + just adds a small gap between the selector and the icon group. */ + header div:has(> #localization-select-trigger) { + margin-right: 0.5rem; + } + + /* Demos landing page: hide the left sidebar and let the content column center + in the full viewport. The Luna theme doesn't support `mode: "center"`, and + `mode: "custom"` strips the page title/container, so we scope the change to + this route via the `data-current-path` attribute Mintlify sets on . + This keeps the native title, prose container, and footer -- just without + the redundant sidebar (the landing page's cards handle navigation). */ + html[data-current-path="/guides/projects/overview"] nav#sidebar-content { + display: none !important; + } + + html[data-current-path="/guides/projects/overview"] #body-content { + padding-left: 0 !important; + } + + html[data-current-path="/guides/projects/overview"] #content-area { + margin-left: auto !important; + margin-right: auto !important; + } + + /* Also hide the (empty) right-hand "On this page" column on the landing page. + It otherwise keeps reserving ~18rem, so the content column centers within + the leftover space and reads as shifted left rather than viewport-centered. */ + html[data-current-path="/guides/projects/overview"] #content-side-layout { + display: none !important; + } + + /* Hide the "Demos" eyebrow above the page title -- redundant on the landing + page since the title now reads "Demos & Projects". Add padding above the + header to reclaim the vertical space the eyebrow (h-5 + 0.625rem gap) left + behind, so the title sits at roughly the same offset as other pages. */ + html[data-current-path="/guides/projects/overview"] #header .eyebrow { + display: none !important; + } + + html[data-current-path="/guides/projects/overview"] #header { + padding-top: 1.875rem; + } +} + +/* Hide the prev/next pagination footer on the Demos landing page -- it's an + index/grid, not a linear reading page, so "Next: " is misleading. */ +html[data-current-path="/guides/projects/overview"] #pagination { + display: none !important; +} + +/* Hide the assistant's floating "Ask a question" bar pinned to the bottom of the + page. Mintlify has no toggle to remove just this bar -- disabling the + assistant would also remove the header Ask AI button we want to keep -- so we + hide only the floating bar here and rely on the header button as the entry + point. Targets the bar itself (its sticky wrapper is pointer-events-none). */ +.chat-assistant-floating-input { + display: none !important; +} + +/* Add space above the footer's top divider so the pagination ("Next") box isn't + touching the divider line. margin-top pushes the footer + its border-t down + (padding-top would only add space below the divider, not above it). */ +#footer { + margin-top: 2.5rem !important; +} + +/* ===== Demos landing page: rich project cards ===== */ +.venice-demo-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 16px; + margin: 24px 0; +} + +.venice-demo-card { + position: relative; + display: flex; + flex-direction: column; + padding: 20px; + border-radius: 16px; + border: 1px solid rgba(128,128,128,0.2); + background: rgba(128,128,128,0.03); + cursor: pointer; + transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease; +} + +.venice-demo-card:hover { + border-color: rgba(18,93,163,0.4); + background: rgba(18,93,163,0.04); + transform: translateY(-2px); + box-shadow: 0 10px 30px rgba(0,0,0,0.08); +} + +.dark .venice-demo-card:hover, +[data-theme="dark"] .venice-demo-card:hover { + border-color: rgba(96,165,250,0.4); + background: rgba(96,165,250,0.06); + box-shadow: 0 10px 30px rgba(0,0,0,0.35); +} + +.venice-demo-card-head { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 14px; +} + +.venice-demo-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 38px; + height: 38px; + border-radius: 10px; + color: #125DA3; + background: rgba(18,93,163,0.1); +} + +.dark .venice-demo-icon, +[data-theme="dark"] .venice-demo-icon { + color: #6ba7e0; + background: rgba(96,165,250,0.14); +} + +.venice-demo-lang { + font-size: 11px; + font-weight: 600; + letter-spacing: 0.02em; + text-transform: uppercase; + padding: 4px 9px; + border-radius: 999px; + border: 1px solid rgba(128,128,128,0.25); + opacity: 0.75; +} + +.venice-demo-title { + margin: 0 0 6px !important; + font-size: 16px !important; + font-weight: 600 !important; + line-height: 1.3 !important; +} + +.venice-demo-desc { + margin: 0 0 14px !important; + font-size: 13.5px; + line-height: 1.5; + opacity: 0.7; +} + +.venice-demo-tags { + display: flex; + flex-wrap: wrap; + gap: 6px; + margin-bottom: 16px; +} + +.venice-demo-tag { + font-size: 12px; + padding: 3px 9px; + border-radius: 7px; + background: rgba(128,128,128,0.1); + opacity: 0.85; + white-space: nowrap; +} + +.venice-demo-actions { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-top: auto; + padding-top: 14px; + border-top: 1px solid rgba(128,128,128,0.15); +} + +.venice-demo-link { + font-size: 13.5px; + font-weight: 600; + color: #125DA3 !important; + text-decoration: none !important; + /* Mintlify's prose a:hover grows border-bottom 1px -> 2px, which shifts the + card content on hover. Pin it off so the tile stays stable. */ + border-bottom: 0 !important; +} + +.dark .venice-demo-link, +[data-theme="dark"] .venice-demo-link { + color: #6ba7e0 !important; +} + +/* Nudge the arrow right on card hover as a "the whole card is a link" signifier. */ +.venice-demo-arrow { + display: inline-block; + transition: transform 0.15s ease; +} + +.venice-demo-card:hover .venice-demo-arrow { + transform: translateX(4px); +} + +/* Stretched-link: the primary "Read the guide" link covers the whole card, so + the entire tile is clickable while keeping a single semantic primary link. */ +.venice-demo-link::after { + content: ""; + position: absolute; + inset: 0; + border-radius: inherit; +} + +.venice-demo-repo { + position: relative; + z-index: 1; + display: inline-flex; + align-items: center; + gap: 5px; + font-size: 13px; + color: inherit !important; + text-decoration: none !important; + border-bottom: 0 !important; + opacity: 0.6; + transition: opacity 0.15s ease; +} + +.venice-demo-repo:hover { + opacity: 1; +} + +.venice-demo-byline { + margin-top: 12px; + font-size: 12px; + opacity: 0.45; +} + +@media (max-width: 768px) { + .venice-demo-grid { + grid-template-columns: 1fr; + } +} + +/* Code block surface color. + Mintlify's `dark:bg-codeblock` utility hardcodes #0B0C0E (rgb 11 12 14), + which is a hair lighter than the site's dark surface token + `--color-background-dark` (rgb 9 11 14 / #090B0E). That arbitrary ~2-level + mismatch reads as an "off" grey. Repoint the code block background at the + system token so the block stays in sync with the theme surface. + + The utility is an !important rule inside the `utilities` cascade layer, and + an unlayered !important loses to a layered one. So we join the same layer and + win on specificity. The class is repeated in the selector to bump specificity + above the base utility without relying on incidental extra classes -- this + covers every `dark:bg-codeblock` surface (code blocks, Accordions, etc.). */ +@layer utilities { + .dark .dark\:bg-codeblock.dark\:bg-codeblock, + [data-theme="dark"] .dark\:bg-codeblock.dark\:bg-codeblock { + background-color: var(--color-background-dark) !important; + } +} + +/* Active header tab uses the Venice action color. + Mintlify marks the selected tab with `bg-gray-950/[0.03]` (a 3% black overlay) + plus near-black text -- barely distinguishable from the unselected tabs in + light mode. Repoint the active pill to a brand-tinted background with brand + text so the current section is obvious. The `bg-gray-950/[0.03]` class is + present on the active tab in both themes, so we use it as the active hook. */ +@layer utilities { + header a.link.bg-gray-950\/\[0\.03\] { + background-color: rgba(18, 93, 163, 0.12) !important; + color: #125DA3 !important; + } + + .dark header a.link.bg-gray-950\/\[0\.03\], + [data-theme="dark"] header a.link.bg-gray-950\/\[0\.03\] { + background-color: rgba(96, 165, 250, 0.16) !important; + color: #6ba7e0 !important; + } +} diff --git a/zh/guides/features/embeddings.mdx b/zh/guides/features/embeddings.mdx new file mode 100644 index 00000000..aca2fe33 --- /dev/null +++ b/zh/guides/features/embeddings.mdx @@ -0,0 +1,102 @@ +--- +title: "嵌入向量" +description: "使用 Venice 的 /embeddings 端点生成向量嵌入,用于语义搜索、RAG 检索、聚类和推荐。" +'og:title': "嵌入向量 | Venice API 文档" +'og:description': "了解如何使用 Venice API 生成向量嵌入。" +--- + +嵌入向量将文本转换为能够捕获语义信息的向量。可将其用于搜索、检索增强生成(RAG)、聚类、推荐、去重以及相似度评分。 + +Venice 的嵌入端点与 OpenAI 兼容。向 `/embeddings` 发送一个字符串或字符串数组,然后将返回的向量存入你的数据库或向量索引中。 + +## 基本用法 + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["VENICE_API_KEY"], + base_url="https://api.venice.ai/api/v1", +) + +response = client.embeddings.create( + model="text-embedding-bge-m3", + input="Privacy-first AI infrastructure for semantic search", +) + +vector = response.data[0].embedding +print(len(vector), vector[:5]) +``` + +```javascript Node.js +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.embeddings.create({ + model: "text-embedding-bge-m3", + input: "Privacy-first AI infrastructure for semantic search", +}); + +const vector = response.data[0].embedding; +console.log(vector.length, vector.slice(0, 5)); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/embeddings \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "text-embedding-bge-m3", + "input": "Privacy-first AI infrastructure for semantic search", + "encoding_format": "float" + }' +``` + + +## 批量输入 + +传入字符串数组即可在一次请求中嵌入多段文本: + +```json +{ + "model": "text-embedding-bge-m3", + "input": [ + "Venice supports private chat completions.", + "Embeddings help retrieve relevant documents.", + "Vector search powers RAG applications." + ] +} +``` + +响应会保留输入的顺序。请将每个向量连同源文本 ID、元数据以及嵌入模型 ID 一起存储。 + +## 常见工作流 + +1. 将源文档切分为若干块。 +2. 为每个块生成嵌入向量。 +3. 将向量和元数据存入向量数据库。 +4. 嵌入用户的查询。 +5. 检索相邻的文本块。 +6. 将检索到的上下文发送给聊天模型。 + +完整实现请参阅 [构建私有 RAG 机器人](/guides/projects/private-rag-bot)。 + +## 模型选择 + +请使用 [嵌入模型](/models/embeddings) 页面比较当前可用的嵌入模型、维度和价格。 + + +索引和查询时请使用相同的嵌入模型。混用模型会导致相似度得分不可靠,因为不同模型的向量空间并不通用。 + + +## 相关资源 + +- [Embeddings API](/api-reference/endpoint/embeddings/generate) +- [嵌入模型](/models/embeddings) +- [私有 RAG 机器人指南](/guides/projects/private-rag-bot) diff --git a/zh/guides/features/function-calling.mdx b/zh/guides/features/function-calling.mdx new file mode 100644 index 00000000..1634207f --- /dev/null +++ b/zh/guides/features/function-calling.mdx @@ -0,0 +1,174 @@ +--- +title: "函数调用" +description: "通过与 OpenAI 兼容的函数调用能力和聊天补全 API,让 Venice 聊天模型调用你应用中的工具。" +'og:title': "函数调用 | Venice API 文档" +'og:description': "了解如何在 Venice 聊天模型中使用函数调用。" +--- + +函数调用允许模型选择结构化的工具调用,由你的应用来执行。模型本身并不会运行函数,它会返回函数名和参数,由你的代码运行该函数,然后再把结果返回给模型。 + +当模型需要实时数据、执行应用操作、查询数据库或进行确定性计算时,可以使用函数调用。 + +## 基本工具定义 + +使用与 OpenAI 兼容的 `tools` 数组来定义工具: + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "City and state, such as San Francisco, CA", + } + }, + "required": ["location"], + }, + }, + } +] + +response = client.chat.completions.create( + model="zai-org-glm-5", + messages=[{"role": "user", "content": "What is the weather in San Francisco?"}], + tools=tools, +) + +print(response.choices[0].message.tool_calls) +``` + +```javascript Node.js +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: "City and state, such as San Francisco, CA", + }, + }, + required: ["location"], + }, + }, + }, +]; + +const response = await client.chat.completions.create({ + model: "zai-org-glm-5", + messages: [{ role: "user", content: "What is the weather in San Francisco?" }], + tools, +}); + +console.log(response.choices[0].message.tool_calls); +``` + +```bash cURL +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 is 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": "City and state, such as San Francisco, CA" + } + }, + "required": ["location"] + } + } + } + ] + }' +``` + + +## 执行工具 + +当模型选择了一个工具时,检查 `message.tool_calls`,解析其参数,执行你的应用函数,然后把结果作为 `tool` 消息发回。 + +```python Python +import json + +message = response.choices[0].message +tool_call = message.tool_calls[0] +arguments = json.loads(tool_call.function.arguments) + +weather = get_weather(arguments["location"]) + +follow_up = client.chat.completions.create( + model="zai-org-glm-5", + messages=[ + {"role": "user", "content": "What is the weather in San Francisco?"}, + message.model_dump(), + { + "role": "tool", + "tool_call_id": tool_call.id, + "content": json.dumps(weather), + }, + ], + tools=tools, +) + +print(follow_up.choices[0].message.content) +``` + +## 选择模型 + +函数调用的支持因模型而异。可在 [文本模型](/models/text) 页面或通过 [Models API](/api-reference/endpoint/models/list) 查找具备 `supportsFunctionCalling` 能力的模型。 + + +请将工具参数视为不可信输入。在将其用于数据库查询、shell 命令、支付等有副作用的操作之前,务必先进行校验。 + + +## 设计建议 + +- 让工具名和描述简短、直接。 +- 使用 JSON Schema,让模型更容易生成合法的参数。 +- 优先使用输入清晰、职责单一的小工具,而不是包含大量可选行为的一个大工具。 +- 返回简洁的工具结果,让最终回答有足够的上下文但不会浪费 token。 + +## 相关资源 + +- [Chat Completions API](/api-reference/endpoint/chat/completions) +- [文本模型](/models/text) +- [结构化响应指南](/guides/features/structured-responses) +- [LangChain 集成](/guides/integrations/langchain#function-calling-with-agents) diff --git a/zh/guides/features/vision.mdx b/zh/guides/features/vision.mdx new file mode 100644 index 00000000..c5738121 --- /dev/null +++ b/zh/guides/features/vision.mdx @@ -0,0 +1,131 @@ +--- +title: "视觉" +description: "通过与 OpenAI 兼容的聊天补全 API,使用多模态消息内容和 Venice 具备视觉能力的聊天模型分析图片。" +'og:title': "视觉 | Venice API 文档" +'og:description': "了解如何向 Venice 视觉模型发送图片。" +--- + +视觉模型可以在处理文本提示的同时分析图片。可用于图像理解、信息提取、分类、视觉问答以及多模态推理。 + +Venice 支持与 OpenAI 兼容的多模态聊天消息。将文本块和图片块放入同一条用户消息中,然后把请求发送给具备视觉能力的模型即可。 + +## 基本用法 + + +```python Python +import os +from openai import OpenAI + +client = OpenAI( + api_key=os.environ["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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + }, + }, + ], + } + ], +) + +print(response.choices[0].message.content) +``` + +```javascript Node.js +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: "Describe this image in three bullets." }, + { + type: "image_url", + image_url: { + url: "https://www.gstatic.com/webp/gallery/1.jpg", + }, + }, + ], + }, + ], +}); + +console.log(response.choices[0].message.content); +``` + +```bash cURL +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": "Describe this image in three bullets."}, + { + "type": "image_url", + "image_url": { + "url": "https://www.gstatic.com/webp/gallery/1.jpg" + } + } + ] + } + ] + }' +``` + + +## 使用 Base64 图片 + +当图片位于本地或属于私有内容时,你也可以传入 base64 数据 URL: + +```json +{ + "type": "image_url", + "image_url": { + "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." + } +} +``` + +## 选择视觉模型 + +可在 [文本模型](/models/text) 页面或通过 [Models API](/api-reference/endpoint/models/list) 查找支持视觉的模型。模型能力列表中会标明其是否支持视觉。 + + +对于类文档类的输入,如果希望 Venice 从文件中提取文本,请使用 [文件输入](/guides/features/file-inputs)。当视觉版式或图像内容本身很重要时,才使用视觉能力。 + + +## 提示词建议 + +- 明确告诉模型关注的重点:物体、文字、版式、安全性、缺陷或差异等。 +- 如果你的应用需要可解析的字段,请要求模型给出结构化输出。 +- 保证图片 URL 对 API 可访问,或对私有图片使用 base64 数据 URL。 +- 若图片会与较长指令一起使用,请选择具有足够上下文长度的模型。 + +## 相关资源 + +- [Chat Completions API](/api-reference/endpoint/chat/completions) +- [文本模型](/models/text) +- [文件输入指南](/guides/features/file-inputs) +- [结构化响应指南](/guides/features/structured-responses) diff --git a/zh/guides/media/image-upscaling.mdx b/zh/guides/media/image-upscaling.mdx new file mode 100644 index 00000000..1bf0fdc3 --- /dev/null +++ b/zh/guides/media/image-upscaling.mdx @@ -0,0 +1,100 @@ +--- +title: "图片超分" +description: "使用 Venice 的同步图片超分 API,通过 base64 输入和二进制图片输出增强并放大图像。" +'og:title': "图片超分 | Venice API 文档" +'og:description': "了解如何使用 Venice API 增强和放大图片。" +--- + +图片超分能提升现有图像的分辨率与视觉质量。向 `/image/upscale` 发送一张 base64 编码的图片,选择缩放倍数,Venice 就会以二进制形式返回增强后的图片。 + +当你已经拥有一张图片,只需要更高分辨率的输出时,可使用图片超分。如果你需要根据提示词生成图片,请使用 [图片生成](/guides/media/image-generation);如果需要修改图片内容,请使用 [图片编辑](/guides/media/image-editing)。 + +## 基本用法 + + +```python Python +import base64 +import os +from pathlib import Path + +import requests + +image_base64 = base64.b64encode(Path("input.jpg").read_bytes()).decode("utf-8") + +response = requests.post( + "https://api.venice.ai/api/v1/image/upscale", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "image": image_base64, + "scale": 2, + }, +) + +response.raise_for_status() +Path("upscaled.png").write_bytes(response.content) +``` + +```javascript Node.js +import { readFile, writeFile } from "node:fs/promises"; + +const image = await readFile("input.jpg"); + +const response = await fetch("https://api.venice.ai/api/v1/image/upscale", { + method: "POST", + headers: { + Authorization: `Bearer ${process.env.VENICE_API_KEY}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + image: image.toString("base64"), + scale: 2, + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const output = Buffer.from(await response.arrayBuffer()); +await writeFile("upscaled.png", output); +``` + +```bash cURL +IMAGE_BASE64=$(base64 < input.jpg | tr -d '\n') + +curl https://api.venice.ai/api/v1/image/upscale \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d "{ + \"image\": \"$IMAGE_BASE64\", + \"scale\": 2 + }" \ + --output upscaled.png +``` + + +## 参数 + +| 参数 | 类型 | 是否必填 | 说明 | +|-----------|------|----------|-------------| +| `image` | string | 是 | Base64 编码的源图片。 | +| `scale` | number | 否 | 放大倍数。请使用 API 参考文档和模型目录中列出的受支持值。 | + + +响应是二进制图片数据,不是 JSON。请将响应体直接写入文件,或将其流式写入存储。 + + +## 输入建议 + +- 使用你所能获得的最清晰的源图片。超分能提升细节,但无法完全恢复原图中不存在的信息。 +- 在生产工作流中使用适中的放大倍数。过大的输出会增加延迟和文件体积。 +- 保留原始图片,以便对比质量或使用不同参数重试。 + +## 相关资源 + +- [Image Upscale API](/api-reference/endpoint/image/upscale) +- [图片模型](/models/image) +- [图片编辑指南](/guides/media/image-editing) diff --git a/zh/guides/media/speech-to-text.mdx b/zh/guides/media/speech-to-text.mdx new file mode 100644 index 00000000..f999c41a --- /dev/null +++ b/zh/guides/media/speech-to-text.mdx @@ -0,0 +1,96 @@ +--- +title: "语音转文本" +description: "使用与 OpenAI 兼容的 /audio/transcriptions 端点,通过 Venice 的语音转文本模型转录音频文件。" +'og:title': "语音转文本 | Venice API 文档" +'og:description': "了解如何使用 Venice API 转录音频文件。" +--- + +语音转文本可将口语音频转录为文字。向 `/audio/transcriptions` 发送一个音频文件,选择转录模型,并指定所需的响应格式。 + +## 基本用法 + + +```python Python +import os + +import requests + +with open("meeting.mp3", "rb") as audio: + response = requests.post( + "https://api.venice.ai/api/v1/audio/transcriptions", + headers={"Authorization": f"Bearer {os.environ['VENICE_API_KEY']}"}, + files={"file": audio}, + data={ + "model": "nvidia/parakeet-tdt-0.6b-v3", + "response_format": "json", + }, + ) + +response.raise_for_status() +print(response.json()["text"]) +``` + +```javascript Node.js +import { createReadStream } from "node:fs"; +import FormData from "form-data"; + +const form = new FormData(); +form.append("file", createReadStream("meeting.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, +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +const transcript = await response.json(); +console.log(transcript.text); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/transcriptions \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + --form file=@meeting.mp3 \ + --form model=nvidia/parakeet-tdt-0.6b-v3 \ + --form response_format=json +``` + + +## 支持的输入 + +常见音频格式包括 `mp3`、`mp4`、`mpeg`、`mpga`、`m4a`、`wav`、`webm`、`flac` 和 `ogg`。请查阅 [语音转文本模型](/models/speech-to-text) 页面了解当前模型支持情况和价格。 + +## 响应格式 + +| 格式 | 适用场景 | +|--------|----------| +| `json` | 需要简单的 `{ "text": "..." }` 响应时。 | +| `text` | 需要纯文本、无需解析 JSON 时。 | +| `srt` | 需要 SubRip 字幕时。 | +| `vtt` | 需要 WebVTT 字幕时。 | +| `verbose_json` | 需要更丰富的时间戳和分段元数据时。 | + + +当转录内容将与媒体播放配合使用时,请选择字幕格式。当转录用于摘要生成、搜索或下游聊天提示时,请使用 `json` 或 `text`。 + + +## 生产环境建议 + +- 尽量保证音频清晰,避免多人同时说话。 +- 如果工作流需要更低延迟或更方便重试,可将过长的录音切分为较小的片段。 +- 为每份转录保存原始音频路径、模型 ID 和响应格式,便于审计。 + +## 相关资源 + +- [Audio Transcriptions API](/api-reference/endpoint/audio/transcriptions) +- [语音转文本模型](/models/speech-to-text) +- [文本转语音指南](/guides/media/text-to-speech) diff --git a/zh/guides/media/text-to-speech.mdx b/zh/guides/media/text-to-speech.mdx new file mode 100644 index 00000000..4471b2c9 --- /dev/null +++ b/zh/guides/media/text-to-speech.mdx @@ -0,0 +1,102 @@ +--- +title: "文本转语音" +description: "使用 Venice 的文本转语音模型、模型特定的音色以及 /audio/speech 端点,将文本合成为语音。" +'og:title': "文本转语音 | Venice API 文档" +'og:description': "了解如何使用 Venice API 将文本转换为语音。" +--- + +文本转语音可将书面文本合成为语音。选择一个 TTS 模型和该模型支持的音色,将文本发送到 `/audio/speech`,然后保存二进制的音频响应。 + +本指南适用于标准的语音生成。如果你希望通过自定义参考音频生成语音,请参阅 [语音克隆](/guides/media/voice-cloning)。 + +## 基本用法 + + +```python Python +import os +from pathlib import Path + +import requests + +response = requests.post( + "https://api.venice.ai/api/v1/audio/speech", + headers={ + "Authorization": f"Bearer {os.environ['VENICE_API_KEY']}", + "Content-Type": "application/json", + }, + json={ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice.", + }, +) + +response.raise_for_status() +Path("speech.mp3").write_bytes(response.content) +``` + +```javascript Node.js +import { writeFile } from "node:fs/promises"; + +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({ + model: "tts-kokoro", + voice: "af_sky", + input: "Hello, welcome to Venice Voice.", + }), +}); + +if (!response.ok) { + throw new Error(await response.text()); +} + +await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer())); +``` + +```bash cURL +curl https://api.venice.ai/api/v1/audio/speech \ + -H "Authorization: Bearer $VENICE_API_KEY" \ + -H "Content-Type: application/json" \ + -d '{ + "model": "tts-kokoro", + "voice": "af_sky", + "input": "Hello, welcome to Venice Voice." + }' \ + --output speech.mp3 +``` + + +## 选择模型和音色 + +音色是模型专属的。`voice` 的值必须与所选的 `model` 匹配。 + +请在 [文本转语音模型](/models/text-to-speech) 页面浏览可用的模型和音色。音色选择器中列出了你在请求中需要传入的确切音色 ID。 + + +音色 ID 区分大小写。切换 TTS 模型时,请同时更新 `voice` 的值。 + + +## 请求结构 + +| 参数 | 类型 | 是否必填 | 说明 | +|-----------|------|----------|-------------| +| `model` | string | 是 | 文本转语音模型 ID。 | +| `voice` | string | 是 | 所选模型支持的音色 ID。 | +| `input` | string | 是 | 需要合成的文本。 | + +## 生产环境建议 + +- 当源文本和音色会被重复使用时,缓存生成的音频。 +- 合成前对文本进行规范化和校对。标点符号会影响节奏和语调。 +- 输出文件请使用与模型响应格式相符的文件扩展名。 + +## 相关资源 + +- [Audio Speech API](/api-reference/endpoint/audio/speech) +- [文本转语音模型](/models/text-to-speech) +- [语音克隆指南](/guides/media/voice-cloning) diff --git a/zh/guides/overview.mdx b/zh/guides/overview.mdx index fc0493ef..f3a514d2 100644 --- a/zh/guides/overview.mdx +++ b/zh/guides/overview.mdx @@ -1,53 +1,62 @@ --- title: 指南 -description: "实用的 Venice API 指南,涵盖 API 密钥、OpenAI 迁移、结构化响应、文件输入、prompt 缓存、媒体以及 agent 集成。" +description: 覆盖 API 密钥、OpenAI 迁移、聊天能力、嵌入向量、媒体处理以及 Agent 集成的 Venice API 实用指南。 --- -使用这些指南可生成 API 密钥、迁移现有的 OpenAI 应用、启用 Venice 特定功能,并将 Venice 接入代理框架、编码工具和媒体工作流。 +使用这些指南来生成 API 密钥、迁移现有的 OpenAI 应用、启用 Venice 特有的能力,并将 Venice 接入 Agent 框架、编码工具和媒体工作流。 - 在 Venice 仪表板中创建和管理 API 密钥。 + 在 Venice 控制台创建并管理 API 密钥。 - 通过更改 base URL,将兼容 OpenAI 的应用切换到 Venice。 + 只需修改 base URL,即可将兼容 OpenAI 的应用切换到 Venice。 - 请求匹配 JSON schema 的响应。 + 让响应符合 JSON schema。 + + + 让模型使用结构化参数调用你应用中的工具。 + + + 使用多模态聊天模型分析图片。 + + + 为语义搜索、RAG 和推荐生成向量。 向聊天模型发送文档和源文件。 - - 减少重复 prompt 内容的延迟和成本。 + + 降低重复提示词内容的延迟与成本。 - 构建一个收集来源并撰写带引用报告的 Python 研究 agent。 + 构建一个 Python 研究 Agent,收集资料来源并撰写带引用的报告。 ## 按主题浏览 - - API 密钥、迁移、自主密钥创建以及 Postman。 + + API 密钥、迁移、自主创建密钥以及 Postman。 - 结构化输出、推理模型、文件输入、prompt 缓存以及隐私增强模型。 + 结构化输出、推理模型、函数调用、视觉、嵌入向量、文件输入、提示词缓存以及隐私增强模型。 - - 图像生成、图像编辑、视频生成、参考图以及放大。 + + 图片生成、图片编辑、超分、视频生成、文本转语音、语音转文本以及语音克隆。 - - Agent 应用、助手工具、crypto RPC、钱包身份验证以及社区集成。 + + Agent 应用、助手工具、加密 RPC、钱包鉴权以及社区集成。 在 Claude Code、Cursor、OpenCode 和 Codex CLI 中使用 Venice 模型。 - 使用 LangChain、Vercel AI SDK 和 CrewAI 进行构建。 + 使用 LangChain、Vercel AI SDK 和 CrewAI 进行开发。 - 根据我们的项目演练构建您自己的项目。 + 参照我们的项目实战教程,构建你自己的项目。 diff --git a/zh/guides/projects/overview.mdx b/zh/guides/projects/overview.mdx new file mode 100644 index 00000000..9fbcec61 --- /dev/null +++ b/zh/guides/projects/overview.mdx @@ -0,0 +1,85 @@ +--- +title: "演示与项目" +sidebarTitle: "概览" +description: "基于 Venice API 构建的端到端演示项目,附带可运行、可阅读并可改造用于你自己应用的代码。" +"og:title": "Demos | Venice API Docs" +--- + +
      +
      +
      + + Python +
      +

      私有 RAG 机器人

      +

      通过重排序检索,从你自己的文档中获得有依据、可引用的答案。

      +
      + Qdrant + FastEmbed + 重排序 +
      + +
      Joshua Mo · Apr 2026
      +
      + +
      +
      + + Python +
      +

      私有研究智能体

      +

      规划搜索、阅读网络来源,并撰写带引用的 Markdown 简报。

      +
      + Scrape API + 规划器 + 带引用报告 +
      + +
      Joshua Mo · May 2026
      +
      + +
      +
      + + Python +
      +

      代码库安全审查器

      +

      发现原子级漏洞并将其串联成利用链。

      +
      + AST 仓库图 + Pydantic + 双智能体 +
      + +
      Joshua Mo · Jun 2026
      +
      + +
      +
      + + Rust +
      +

      Rust LLM 网关

      +

      一个兼容 OpenAI 的网关,具备鉴权、速率限制、流式传输和遥测。

      +
      + Axum + Postgres + SQLx + OpenTelemetry +
      + +
      Joshua Mo · Jul 2026
      +
      +
      diff --git a/zh/models/overview.mdx b/zh/models/overview.mdx index 8deb5fc1..34f24e10 100644 --- a/zh/models/overview.mdx +++ b/zh/models/overview.mdx @@ -1,5 +1,6 @@ --- -title: "模型" +title: "全部模型" +sidebarTitle: "全部模型" description: "Venice API 上所有可用模型的目录,涵盖文本、图像、视频、音频、embedding 和语音,附带能力、价格和模型 ID。" "og:title": "Models | Venice API Docs" mode: "wide"