انتقل إلى المحتوى
العودة إلى Nymbot

قاعدة المعرفة المطورين

الصور والفيديو والملصقات

المطورين من التطبيق، والخلفيات البناءة للبحث: الصور، الفيديو، الكلمة، الترجمة، والتدخلات، كلها محددة لكل استخدام من حسابك.

إنتاج الصور

يجعل من أربعة إلى أربعة صور من إرسال وإرسالها عند الانتهاء. ?image في التطبيق

POST https://nymbot.ai/api/v1/images/generations - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلب.

Ids تأتي من GET /api/v1/models?type=imageوالجنرال القياسي ، @cf/black-forest-labs/flux-1-schnell، تكلفة 5 اعتبارات معيّنة (50 تريليون دولار) لكل صورة. كل منتج آخر يكلف بطاقات Pro على سعرها الخاص، مع التكاليف المعتادة والميزانية، كما في التطبيق. n صور تكلفة n يتم إلغاء المجال الذي لا يستخدمه الجيل القادم بدلاً من إلغاءه؛ يستخدم الجيل القادم فقط الإشارة.

الفضاءنوعالمطلوبوصف
modelStringنعمإدخال هاتف ذكي، مثل nano-banana.
promptStringنعمماذا تفعل؟ تستخدم فقط أول 2000 شخصية.
nالنسيجلا1 إلى 4.مفتاح 1 أيضًا معترف به num_images.
sizeStringلامثل هذه النقطة النسبية مثل "16:9"أو على سبيل المثال، على سبيل المثال: "1792x1024", الذي يصبح أقرب من 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9, 5:4 و 4:5. "auto" قم بإرسالها إلى الجيل القادم.
aspect_ratioStringلانفس الشيء كما sizeويحقق الفوز إذا تم إرسال كل منهما.
qualityStringلاالجيل القادم ، مثل "low", "medium" أو "high".
negative_promptStringلاماذا ينبغي أن نتركه
output_formatStringلا"png", "jpeg" أو "webp".
response_formatStringلا"url" (الخطأ) أو "b64_json".
image_urlStringلاصورة للبدء من: A https:// رابط من 4096 علامة دون اسم المستخدم أو كلمة المرور في ذلك، أو data:image/…;base64 URL (PNG، JPEG، WebP أو GIF، وليس SVG). editويجب أن يطلب من أولئك الذين requires_image_url.

resolution لا يتم استخدامها: كل إنتاج يخلق حجمها الخاص. url، يتم تحميل كل صورة إلى مستودع Blossom عام ويحصل عليك على الرابط الخاص بك (ولكن بعض المطورين يقدمون فقط الرابط الخاص بهم ، والتي يتم إرسالها). ماذا يمكن رؤية النارمع b64_json يعود الصورة في الاستجابة ولا يتم تحميلها أبدا. data: URL في image_url يتم التحقق من نفس الطريقة التي EDIT يتم تحميلها إلى Blossom أولاً حتى يمكن للجنرال إرسالها؛ يتم حذفها مرة أخرى إذا لم يتم إلغاء الطلب.

إذا كان بعض من n الصور تسبب فشل ، يمكنك الحصول على تلك التي عملت ، يتم تكلفة فقط لأولئك (مزيد من أي من المورد المدفوع على الرغم من الفشل) ، و nymbot.failed يظهر كم عدد المفقودين.إذا فشلت جميع الطلبات 502.

الإجابة

{
  "created": 1790726400,
  "model": "nano-banana",
  "cost": 0.2126,
  "data": [
    {
      "url": "https://blossom.example/5c0e4b7d3a91f2e8...c4.png",
      "content_type": "image/png"
    }
  ],
  "nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 410.608, "balance_sats": 41060.8 }
}
الوضععندما
400لا بسرعة n من 1 إلى 4 (invalid_value(أمّا الرؤيا الصالحة فهي الرؤيا الصالحة)invalid_size) أو صورة (invalid_image, invalid_image_url)؛ نموذج موجود ولكن ليس إنتاج الصورة (invalid_model)؛ صورة للجنرال الذي لا يستطيع التعديل (edit_unsupported(لا يوجد صورة لأحد يحتاج إلى ذلك)image_required).
402لا يستطيع التوازن تغطية كل الصور المطلوبة.
404لا يوجد نموذج مع هذا الاسم (model_not_found).
502الهواتف الذكية لم تكن متاحة (upstream_errorلا يُقدّم أيّ شيء سوى ما لم يُقدّم على المشتري، ثمّ يُقدّم الخطأ. charged_sats.
503لا يمكن تحميل الصور في الوقت الحالي (media_hosting_unavailable). b64_json لا تزال تعمل

cURL

curl https://nymbot.ai/api/v1/images/generations \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana",
    "prompt": "A lighthouse at dusk, oil painting",
    "size": "16:9"
  }'

Python

import os
import requests

res = requests.post(
    "https://nymbot.ai/api/v1/images/generations",
    headers={"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]},
    json={"model": "nano-banana", "prompt": "A lighthouse at dusk, oil painting", "size": "16:9"},
)
res.raise_for_status()
print(res.json()["data"][0]["url"])

JavaScript

const res = await fetch("https://nymbot.ai/api/v1/images/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ model: "nano-banana", prompt: "A lighthouse at dusk, oil painting", size: "16:9" }),
});
const body = await res.json();
console.log(body.data[0].url);

كتابة الصور

يغير الصورة التي ترسلها ، استناداً إلى سؤال.هذا هو نقطة الانتهاء في تحرير OpenAI ، لذلك OpenAI SDKs images.edit يعمل كما هو الحال. فقط منتجات Pro مع edit في قائمة النماذج اتفق على ذلك.

POST https://nymbot.ai/api/v1/images/edits - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلبإن الجسد هو multipart/form-dataما يصل إلى 32 MB

الفضاءنوعالمطلوبوصف
imageالملفنعمالصورة المعدلة: PNG، JPEG، WebP أو GIF، ما يصل إلى 20 ميجابايت. image[]• يتم استخدامه الأول.
promptStringنعمماذا تتغير
modelStringنعمجيرارد مع edit.
nالنسيجلا1 إلى 4
size
aspect_ratio
quality
negative_prompt
output_format
Stringلاماذا عن الجيل
response_formatStringلا"b64_json" (الخلفية هنا) أو "url".

يتم التحقق من أن الصورة التي يتم تحميلها هي PNG، JPEG، WebP، أو GIF التي تم تشكيلها بشكل جيد، يتم إرسالها كواحدة حقيقية، ويضعها على مستودع Blossom عام، لأنه يتم إرسالها من خلال الرابط.

الإجابة

{
  "created": 1790726460,
  "model": "nano-banana",
  "cost": 0.2126,
  "data": [{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }],
  "nymbot": { "balance": "pro", "charged_credits": 1.817, "charged_sats": 181.7, "balance_credits": 408.791, "balance_sats": 40879.1 }
}
الوضععندما
400لا صورة أو إشارة ، ملف لا صورة (invalid_image) أو إنتاج لا يمكن إعداده (edit_unsupported).
413الصورة أكثر من 20 MB (file_too_large) أو كل طلب أكثر من 32 MB.
503لا يمكن تحميل الصورة في الوقت الحالي (media_hosting_unavailable).

cURL

curl https://nymbot.ai/api/v1/images/edits \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F model=nano-banana \
  -F [email protected] \
  -F prompt="Make it a snowy evening"

Python

import base64, os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("photo.png", "rb") as f:
    result = client.images.edit(model="nano-banana", image=f, prompt="Make it a snowy evening")

with open("edited.png", "wb") as out:
    out.write(base64.b64decode(result.data[0].b64_json))

JavaScript

import fs from "node:fs";
import { writeFile } from "node:fs/promises";
import OpenAI from "openai";

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

const result = await client.images.edit({
  model: "nano-banana",
  image: fs.createReadStream("photo.png"),
  prompt: "Make it a snowy evening",
});
await writeFile("edited.png", Buffer.from(result.data[0].b64_json, "base64"));

فيديو

يستغرق الفيديو دقائق ، لذلك يتم تشغيلها في الخلفية. يمكنك إرسالها ، تحصل على ID على الفور ، وتسأل عن ID حتى يتم الانتهاء.

POST https://nymbot.ai/api/v1/videos - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلبالعودة 202.

الفضاءنوعالمطلوبوصف
modelStringنعمإدخال إدخال الفيديو من GET /api/v1/models?type=videoمثل مثل veo.
promptStringنعمما يجب أن يحدث.
durationالرقم أو الشريطلاطول في ثوانٍ، أكثر من 0 وحتى 60. تستخدم فقط من قبل المطورين التي تسمح لك أن تختار الطول؛ الآخرين جعل طولها المعتاد، وهذا هو ما seconds في الإجابة والسعر تتبع.
aspect_ratioStringلامثل "16:9" أو "9:16"وهكذا حجم مثل "1280x720" يصبح الأقرب إلى العلاقة.
resolution
quality
Stringلاواحدة من الجيل الأول من الجيل resolutions في القائمة، مثل "720p" أو "1080p"يحدد السعر.كل شيء آخر يرفضه unsupported_resolution.
image_urlStringلاصورة للبدء من: A https:// الرابط أو a data:image/… URL ، الذي يتم تحميله أولاً إلى مستودع Blossom عام. requires_image_url.

السعر هو ثابت عند إرسالها، من الناقل، والتصنيف، والطول، لذلك يتم دفعها من توازن Pro الخاص بك بمجرد قبول المورد العمل، وتشير إلى cost, estimated_cost و nymbotإذا رفضت الموردة العمل، فلا تتحمل أي رسوم.إذا فشل الإصدار بعد ذلك، أو لا يمكن تخزين النسخة المكتوبة، ولا يتم إيداعها من قبل المورد، يتم استرداد الرسوم مرة واحدة، تلقائيًا.توقف الإصدار الذي لا يزال موجودًا بعد ساعة، ويحافظ على رسومه، لأن المورد يقوم بإيداع الرسوم مرة واحدة عندما يتم قبولها.تعويض يعود إلى الائتمان ولكن لا يقلل من عدد النفقات في المفتاح.

الإجابة (202)

{
  "id": "vid_3e9a51c07b2f4d86e0a1c4f2",
  "object": "video",
  "model": "veo",
  "status": "in_progress",
  "created": 1790726400,
  "seconds": 8,
  "resolution": "1080p",
  "estimated_cost": 3.18,
  "expires_at": 1790812800,
  "cost": 3.18,
  "nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180, "balance_credits": 378.808, "balance_sats": 37880.8 }
}

status بدءًا من in_progressأو أو completed فيديوهات بالفعل في data عندما يعود الزرع على الفور.

التحقق من فيديو

GET https://nymbot.ai/api/v1/videos/{id} - يحتاج إلى مفتاح يتميّز به نيم الذي قدمه. - مفتاح يصل إلى حدّه لا يزال يمكن التحقق منه.

إنه يجيب 202 عندما يتم إنشاء الفيديو و 200 بعد أن تم الانتهاء أو لم يتحقق. طلب كل 5 إلى 10 ثانية. كل التحقق يطلب من المورد مرة واحدة ويجيب على الفور؛ لا تنتظر حتى الفيديو. يتم الحفاظ على وظيفة لمدة 24 ساعة بعد تقديمها. GET /api/v1/videos يحدد آخر 50 وظيفة من المفتاح {"object": "list", "data": […]}.

ردود الفعل (200)

{
  "id": "vid_3e9a51c07b2f4d86e0a1c4f2",
  "object": "video",
  "model": "veo",
  "status": "completed",
  "created": 1790726400,
  "seconds": 8,
  "resolution": "1080p",
  "estimated_cost": 3.18,
  "expires_at": 1790812800,
  "completed_at": 1790726590,
  "data": { "url": "https://blossom.example/9b41d0c2e7a3f658...1e.mp4", "content_type": "video/mp4" },
  "cost": 3.18,
  "nymbot": { "balance": "pro", "charged_credits": 31.8, "charged_sats": 3180 }
}

status هي in_progress, completed أو failedوظيفة ناجحة تنتجها error ({"code": "generation_failed", "message": …}(وإذا كان كذلك، فليس من حقه أن يعود إليه) . cost 0 و nymbot إضافات refunded_credits و refunded_satsيتم إنشاء الفيديو المكتوب على منصة Blossom عامة ، مثل الصور التي تم إنشاؤها.

الوضععندما
4000 0 0 0 0 0 0 0 0 (invalid_value)؛ لا توفر حلًا للجنرال (unsupported_resolution) ؛ لا يوجد صورة للجنرال الذي يحتاج إلى واحد (image_required) ؛ نموذج ليس إنتاج الفيديو (invalid_model).
402لا يستطيع التوازن Pro تغطية الفيديو.
404لا يوجد مثل هذا النوع من (model_not_found)، أو لا عمل من قبل هذا النوع من الأدلة على نسيجك، أو هو أكثر من 24 ساعة (video_not_found).
429فيديوهات متعلقة بـ 10 أشرطة (video_jobs_limit) تحقق منها وتقديم المزيد مرة واحدة ينتهي.
502يرفض الكرملين العمل، ولا يتم دفع أي شيء إلا إذا كان المورد يتلقى رسوم له.
503فيديوهات لا يمكن تقديمها أو تخزينها في الوقت الحالي (media_hosting_unavailable, service_unavailable).

cURL

curl https://nymbot.ai/api/v1/videos \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"}'

curl https://nymbot.ai/api/v1/videos/vid_3e9a51c07b2f4d86 \
  -H "Authorization: Bearer $NYMBOT_API_KEY"

Python

import os, time
import requests

headers = {"Authorization": "Bearer " + os.environ["NYMBOT_API_KEY"]}

job = requests.post(
    "https://nymbot.ai/api/v1/videos",
    headers=headers,
    json={"model": "veo", "prompt": "Waves rolling onto a beach at sunrise", "duration": 8, "aspect_ratio": "16:9"},
).json()

while True:
    time.sleep(8)
    status = requests.get("https://nymbot.ai/api/v1/videos/" + job["id"], headers=headers).json()
    if status["status"] in ("completed", "failed"):
        break

print(status["data"]["url"] if status["status"] == "completed" else status["error"])

JavaScript

const headers = {
  "Authorization": "Bearer " + process.env.NYMBOT_API_KEY,
  "Content-Type": "application/json",
};

const job = await (await fetch("https://nymbot.ai/api/v1/videos", {
  method: "POST",
  headers,
  body: JSON.stringify({ model: "veo", prompt: "Waves rolling onto a beach at sunrise", duration: 8, aspect_ratio: "16:9" }),
})).json();

let status;
do {
  await new Promise((r) => setTimeout(r, 8000));
  status = await (await fetch("https://nymbot.ai/api/v1/videos/" + job.id, { headers })).json();
} while (status.status !== "completed" && status.status !== "failed");

console.log(status.status === "completed" ? status.data.url : status.error);

رسالة إلى الكلام

يقرأ النص بصوت عالٍ ويعود ملف الصوت نفسه، وليس الرابط. audio.speech.create في OpenAI SDKs يعمل.

POST https://nymbot.ai/api/v1/audio/speech - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلب.

الفضاءنوعالمطلوبوصف
modelStringلانموذج الكلام من قائمة النماذج الصوتيةالفوركس: الصوت المعتاد، @cf/myshell-ai/melotts. aura-2 فيديو Deepgram Aura 2
inputStringنعمالنص المقرر قراءته: ما يصل إلى 800 علامة للصوت المعتاد، 2000 لآرا 2.
voiceStringلاإدعاء صوت من قائمة الصوت: موسيقى أوربا مثل luna (أو aura-2-luna-en) أو لغات MeloTTS (en, es, fr, zh) OpenAI أسماء صوتية مثل alloy يتم قبولها وإعطاء صوت نموذج.
languageStringلاكود لغة مثل esإذا لم يكن هناك صوت، فإنه يختار لغة أخرى. 422 voice_language_mismatchواللغة التي لا يوجد لها صوت 422 unsupported_language.
response_formatStringلاالصوت المعتاد يعود mp3 Aura 2 يعود mp3 (الإيمان باليوم الآخر) opus, aac, flac, wav أو pcm.
speedرقملايتم قبولها وتجاهلها.

الكلمة القياسية تكلفة 3 اعتبارات القياسية (30 سعر) لكل طلب ، كما في التطبيق. Aura 2 هو Pro ، وهو تكلفة بواسطة العناوين التي ترسلها. Content-Type• التكلفة هي في X-Nymbot-Cost-Sats إذا فشل نموذج الكلام، لا يتم دفع أي شيء.

الإجابة

HTTP/1.1 200 OK
Content-Type: audio/mpeg
X-Nymbot-Cost-Sats: 4.2
X-Nymbot-Balance-Sats: 41055.6

(audio bytes)
الوضععندما
400لا يوجد إشارات؛ الإشارات فوق الحد الأدنى من النموذج (input_too_long)؛ فكل نموذج لا يستطيع إنتاج (unsupported_response_format) ؛ صوت غير معروف (invalid_voice(المعنى الذي لا يختلف عن المعنى الذي لا يختلف)invalid_model).
422لا يتكلم الصوت باللغة المذكورة، أو لا يتكلم النموذج.
502النموذج النموذج النموذج النموذج النموذج النموذج النموذج النموذج

cURL

curl https://nymbot.ai/api/v1/audio/speech \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "aura-2", "voice": "luna", "input": "Your invoice has been paid."}' \
  --output speech.mp3

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

audio = client.audio.speech.create(
    model="aura-2",
    voice="luna",
    input="Your invoice has been paid.",
)
audio.write_to_file("speech.mp3")

JavaScript

import { writeFile } from "node:fs/promises";
import OpenAI from "openai";

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

const audio = await client.audio.speech.create({
  model: "aura-2",
  voice: "luna",
  input: "Your invoice has been paid.",
});
await writeFile("speech.mp3", Buffer.from(await audio.arrayBuffer()));

نموذجات الصوت والأصوات

2 قائمة عامة لتحديد نموذج الكلام و صوت، أو نموذج الترجمة. هناك 41 Aura 2 المتحدثين الإنجليزية و 4 لغات MeloTTS.

GET https://nymbot.ai/api/v1/audio/models لا حاجة إلى مفتاح

GET https://nymbot.ai/api/v1/audio/voices?language=en لا حاجة إلى مفتاح

الفضاءنوعالمطلوبوصف
languageأندرويد (Query)لافقط الأصوات لهذا اللغات.
modelأندرويد (Query)لافقط صورا لهذا النموذج.

ردود الفعل (صوت)

{
  "object": "list",
  "data": [
    { "id": "luna", "name": "Luna", "provider": "deepgram", "model_id": "aura-2", "models": ["aura-2"], "language": "en", "description": "Aura 2 English voice", "gender": "female", "preview_url": null },
    { "id": "en", "name": "MeloTTS English", "provider": "myshell", "model_id": "@cf/myshell-ai/melotts", "models": ["@cf/myshell-ai/melotts", "melotts"], "language": "en", "description": "English (MeloTTS)", "gender": null, "preview_url": null }
  ]
}

قائمة النماذج الإجابة {"object": "list", "data": {"tts": […], "stt": […]}}كل نموذج الكلام يعطي التوازن، والضريبة، max_input_chars, response_formats, languages و default_voice• يقدم نموذج الترجمة ألبومها، max_file_bytes, max_secondsالمعدات و الأسعار لكل دقيقة.

cURL

curl https://nymbot.ai/api/v1/audio/models
curl "https://nymbot.ai/api/v1/audio/voices?language=en"

Python

import requests

print(requests.get("https://nymbot.ai/api/v1/audio/models").json())
for voice in requests.get("https://nymbot.ai/api/v1/audio/voices", params={"language": "en"}).json()["data"]:
    print(voice["id"], voice["model_id"])

JavaScript

console.log(await (await fetch("https://nymbot.ai/api/v1/audio/models")).json());
const voices = await (await fetch("https://nymbot.ai/api/v1/audio/voices?language=en")).json();
for (const v of voices.data) console.log(v.id, v.model_id);

الكلام عن النص

تحويل تسجيل إلى النص مع Whisper.This is OpenAI's transcription endpoint. audio.transcriptions.create العملية

POST https://nymbot.ai/api/v1/audio/transcriptions - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلبإن الجسد هو multipart/form-data.

الفضاءنوعالمطلوبوصف
fileالملفنعمتسجيل، من 256 بوصة إلى 25 ميجابايت وحتى 30 دقيقة: WAV، WebM، MP4 أو M4A، Ogg أو Opus، MP3 وغيرها من المكونات يقرأ.
modelStringلاالفساد whisperو هو Whisper Large v3 Turbo. whisper-1, whisper-large-v3-turbo و @cf/openai/whisper-large-v3-turbo يعني نفس الشيء
languageStringلااللغة المكتوبة، مثل enتم اكتشافه إذا تم إغلاقه.
promptStringلاالكلمات أو الأصوات التي تتوقعها، مثل الاسم فقط تستخدم أول 1000 علامة.
response_formatStringلاjson (الإيمان باليوم الآخر) text, srt, vtt أو verbose_json.

بالنسبة إلى الملفات WAV، WebM، MP4 و Ogg، يتم قراءة طول الملف قبل أن يتم تشغيل أي شيء، لذلك يتم رفض تسجيل أكثر من 30 دقيقة في البداية (بفضل 3 ثانية). طول الملفات WAV يأتي من معدل العينات، القنوات والأبعاد العينات. لا يمكن قراءة طول الملفات الأخرى مثل MP3 في البداية، لذلك يتم الحد من حجمها: عند أدنى معدل البيانات Nymbot يفترض أن 8 kbps، 30 دقيقة هو 1.8 MB، و يتم رفض ملف أكبر في مثل هذا النمط. 413 audio_too_long إرسال تسجيلات أطول مثل WAV، WebM، MP4 أو Ogg.إذا تقرأ Whisper أكثر من 30 دقيقة في أي حال، يتم رفض الطلب مع 413 audio_too_longوبمجرد تكرار القذف، يتم شحن 30 دقيقة.

يمكنك دفع طول الصوت، وقطع إلى ثانية: الأطول من طول القراءة من الملف، والطول تقارير الصوت، وأقل حجم الملف يسمح، على سعر الصوت في الدقيقة مع التكاليف المعتادة والحد الأدنى، وأقل من 0.05 رصيد طلب. 402 يقدم ما يحتاجه كل توازن.في التطبيق، قد يكون ترشيد رسالة صوت مجانيًا؛ على API يتم تكلفةها دائمًا.إذا فشل القذف، لا يتم تكلفة أي شيء.

الإجابة

{
  "text": "Your invoice has been paid.",
  "usage": { "type": "duration", "seconds": 3 },
  "nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 120.35, "balance_sats": 1203.5 }
}

text يعود النص المباشر، srt و vtt العودة إلى القصص، و verbose_json يضيف اللغة والتوقيت والقطاعات المحددة.لأولئك الذين ليسوا JSON ، فإن التكلفة في العلامات.

الوضععندما
400لا يوجد ملف ، ملف بدون صوتي قابل للاستخدام (invalid_audio(بما أن هذا النوع من النسخ لا يُعرف باسم النسخ أو النسخ الذي لا يُعرف باسم النسخ)invalid_model).
402لا يمكن أن يغطي التوازن.
413الملف هو أكثر من 25 MB (file_too_large(أو أكثر من 30 دقيقة، أو، في شكل لا يمكن قراءته على المدى القصير، أكثر من 1.8 MB)audio_too_long).
502لا يمكن لـ Whisper معالجة الصوت.

cURL

curl https://nymbot.ai/api/v1/audio/transcriptions \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F [email protected] \
  -F model=whisper \
  -F response_format=json

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("memo.m4a", "rb") as f:
    transcript = client.audio.transcriptions.create(model="whisper", file=f)
print(transcript.text)

JavaScript

import fs from "node:fs";
import OpenAI from "openai";

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

const transcript = await client.audio.transcriptions.create({
  model: "whisper",
  file: fs.createReadStream("memo.m4a"),
});
console.log(transcript.text);

ترجمة الكلام إلى اللغة الإنجليزية

POST https://nymbot.ai/api/v1/audio/translations - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلبإن الجسد هو multipart/form-data.

كما هو الحال مع الترجمة ، مع نفس المجالات بالإضافة إلى languageو الحد الأدنى و السعر ، ولكن النص يعود باللغة الإنجليزية بغض النظر عن اللغات التي كانت تتحدث. audio.translations.create.

cURL

curl https://nymbot.ai/api/v1/audio/translations \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -F [email protected] \
  -F model=whisper

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

with open("nota.m4a", "rb") as f:
    translation = client.audio.translations.create(model="whisper", file=f)
print(translation.text)

JavaScript

import fs from "node:fs";
import OpenAI from "openai";

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

const translation = await client.audio.translations.create({
  model: "whisper",
  file: fs.createReadStream("nota.m4a"),
});
console.log(translation.text);

إبداعات

تحويل النص إلى بطاقات للبحث والتجميع والتناسل، وتشغيل النماذج على Cloudflare وتخزين التوازن القياسي.

POST https://nymbot.ai/api/v1/embeddings - تحتاج إلى مفتاح API، أو تكلفة Lightning على الطلب.

الفضاءنوعالمطلوبوصف
modelStringنعمنموذج إبداعي من GET /api/v1/models?type=embedding.
inputقوائم أو قوائم من القوائمنعمتداول الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية.token_input_unsupportedيجب أن تتوافق كل جزء من النماذج مع النماذج context_lengthويقدر بـ أربعة بطاقات لكل نقطة.
encoding_formatStringلاfloat (الخطأ) أو base64 (الخيارات الثنائية الخيارات الثنائية الخيارات الثنائية).
dimensionsالنسيجلاحجم النماذج الخاصة، أو بالنسبة إلى نموذج مع supported_dimensions واحد من هذين النوعين، ثم يتم تقسيم النوعين إلى أدنى مستوي، ثم يتم رفض أي شيء آخر.
نموذجالأبعادالسياق
@cf/baai/bge-m31024 لغات كثيرة8192 تريليون
@cf/qwen/qwen3-embedding-0.6b1024 لغات كثيرة8192 تريليون
@cf/baai/bge-large-en-v1.51024 اللغة الإنجليزية512 طن
@cf/baai/bge-base-en-v1.5768, الإنجليزية512 طن
@cf/baai/bge-small-en-v1.5384 اللغة الإنجليزية512 طن

قائمة النماذج هي مصدر الحقيقة حول ما هي متوفرة وكما هي تكلفةها؛ Google EmbeddingGemma، مع مركبات أطول على الطلب، يظهر هناك أيضًا عندما يحتوي الكاتالوني على سعرها.

الإجابة

{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0213, -0.0487, 0.0112] }
  ],
  "model": "@cf/baai/bge-m3",
  "usage": { "prompt_tokens": 9, "total_tokens": 9 },
  "nymbot": { "balance": "standard", "charged_credits": 0.05, "charged_sats": 0.5, "balance_credits": 1204.35, "balance_sats": 12043.5 }
}
الوضععندما
400لا يوجد إشارات أو إشارات غامضة؛ تقييمات تقييم (token_input_unsupported(أكثر من 100 إشارة)too_many_inputs)؛ إن الدخول أطول من النموذج يستغرق (input_too_long( 1 ) ؛ حجم النموذج الذي لا يمكن أن يقدم (unsupported_dimensions).
402التكلفة القياسية منخفضة جدًا، ولا تستخدم التكلفة المهنية أبدا.
404لا يوجد نموذج مع هذا الاسم.
502النموذج ناجح.لا يوجد أي رسوم.

cURL

curl https://nymbot.ai/api/v1/embeddings \
  -H "Authorization: Bearer $NYMBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "@cf/baai/bge-m3", "input": ["Lightning invoices expire.", "Invoices on Lightning have a time limit."]}'

Python

import os
from openai import OpenAI

client = OpenAI(base_url="https://nymbot.ai/api/v1", api_key=os.environ["NYMBOT_API_KEY"])

result = client.embeddings.create(
    model="@cf/baai/bge-m3",
    input=["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
)
print(len(result.data), len(result.data[0].embedding))

JavaScript

import OpenAI from "openai";

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

const result = await client.embeddings.create({
  model: "@cf/baai/bge-m3",
  input: ["Lightning invoices expire.", "Invoices on Lightning have a time limit."],
});
console.log(result.data.length, result.data[0].embedding.length);