בסיס ידע מפתחים
תמונות, אודיו ו- Embeddings
הגנרטורים מהאפליקציה, והבניינים לחיפוש: תמונות, וידאו, דיבור, transkriptions ו- embeddings, כל אחד מחויב לשימוש שלך.
דף זה תורגם במכונה לנוחיותך. המקור האנגלי הוא הגרסה החלה.
יצירת תמונות
יוצר אחד עד ארבעה תמונות מתוך דחיפה ומחזיר אותם כאשר הם נעשו. ?image בתוך האפליקציה
POST https://nymbot.ai/api/v1/images/generations זקוק למפתח API, או תשלום Lightning על פי בקשה.
איידס מגיעים מ GET /api/v1/models?type=imageהגנרטור הסטנדרטי
@cf/black-forest-labs/flux-1-schnellכל גנרטור אחר מוציא פרו קרדיטים במחיר משלו, עם התשלום הרגיל ומגבלה, כמו האפ. n תמונה עלות
n שדה שאינו נלקח על ידי גנרטור נופל במקום נדחה; הגנרטור הסטנדרטי משתמש רק במדריך.
| שדה | סוג | דרושה | תיאור |
|---|---|---|---|
model | String | כֵּן | גנרטור מזהה, כגון nano-banana. |
prompt | String | כֵּן | מה לצייר: רק 2000 הדמויות הראשונות משמשות. |
n | אינטגר | לא | 1 עד 4.Default 1 גם מקובל כ num_images. |
size | String | לא | היחס בין היבטים כמו "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_ratio | String | לא | אותו דבר כמו sizeזוכה אם שניהם נשלחים. |
quality | String | לא | גנרטורים ספציפיים, כגון "low", "medium" או "high". |
negative_prompt | String | לא | מה להשאיר בחוץ. |
output_format | String | לא | "png", "jpeg" או "webp". |
response_format | String | לא | "url" (הפסקת התשלום) או "b64_json". |
image_url | String | לא | תמונה אחת להתחיל מ: A https:// קישור של עד 4,096 תווים ללא שם משתמש או סיסמה בו, או 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 MB. image[]הראשון הוא בשימוש. |
prompt | String | כֵּן | מה לשנות |
model | String | כֵּן | גנרטור עם edit. |
n | אינטגר | לא | 1 עד 4. |
sizeaspect_ratioqualitynegative_promptoutput_format | String | לא | לגבי הדור |
response_format | String | לא | "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"));
וידאו
וידאו לוקח כמה דקות, אז זה פועל ברקע. אתה שולח אותו, לקבל מזהה מיד, ושואל על זה עד שזה נגמר.
POST https://nymbot.ai/api/v1/videos זקוק למפתח API, או תשלום Lightning על פי בקשה• חזרה 202.
| שדה | סוג | דרושה | תיאור |
|---|---|---|---|
model | String | כֵּן | גנרטור וידאו ID GET /api/v1/models?type=video, כגון veo. |
prompt | String | כֵּן | מה צריך לקרות. |
duration | מספר או string | לא | אורך בשניות, יותר מ 0 ועד 60. משמש רק על ידי גנרטורים המאפשרים לך לבחור את האורך; האחרים לעשות את האורך הרגיל שלהם, וזה מה seconds התשובה והמחיר עוקבים אחריה. |
aspect_ratio | String | לא | כמו "16:9" או "9:16"גודל כזה כמו "1280x720" זה הופך להיות היחס הקרוב ביותר. |
resolutionquality | String | לא | אחד מהגנרטורים resolutions ברשימה המלאה, כמו "720p" או "1080p"זה קובע את המחיר.כל דבר אחר מסרב עם unsupported_resolution. |
image_url | String | לא | תמונה אחת להתחיל מ: 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} - זקוק למפתח שייך ל-nym ששלח אותו. - מפתח שהגיע לקו יכול עדיין לבדוק.
הוא עונה 202 בזמן שהסרטון נעשה ו 200 כאשר זה נגמר או כישלון. לשאול כל 5 עד 10 שניות. כל בדיקה שואלת את הספק פעם אחת ותשובות בבת אחת; זה אף פעם לא מחכה לווידאו.
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 ציבורי, כמו תמונות שנוצרו.
| סטטוס | מתי |
|---|---|
400 | תוצאות חיפוש: 0 עד 60 ש"ח (invalid_value); רזולוציה שהגנרטור אינו מציע (unsupported_resolution); אין תמונה עבור גנרטור הדורש אחד (image_required); מודל שאינו גנרטור וידאו (invalid_model). |
402 | האיזון Pro אינו יכול לכסות את הווידאו. |
404 | אין גנרטור כזה (model_not_found, או אין עבודה על ידי זה id עבור nym שלך, או שזה יותר מ 24 שעות (video_not_found). |
429 | תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות (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 על פי בקשה.
| שדה | סוג | דרושה | תיאור |
|---|---|---|---|
model | String | לא | דוגמא לדבריו של רשימת דגמי האודיותגית: הקול הסטנדרטי @cf/myshell-ai/melotts. aura-2 תגית: Deepgram Aura 2 |
input | String | כֵּן | טקסט לקרוא: עד 800 תווים עבור הקול הרגיל, 2,000 עבור Aura 2. |
voice | String | לא | ה- Voice ID של רשימת הקולות• דובר אוור כמו: luna (או aura-2-luna-enתרגום שפה (MeloTTS)en, es, fr, zhOpenAI שמות קולות כגון alloy הם מתקבלים ומספקים את הקול הסטנדרטי של המודל. |
language | String | לא | קוד שפה כמו: esללא קול, הוא בוחר אחד לשפה זו. קול שמדבר בשפה אחרת חוזר 422 voice_language_mismatchשפה שאין לה קול 422 unsupported_language. |
response_format | String | לא | הקול הסטנדרטי חוזר mp3 Aura 2 חוזר mp3 (ההתנצלות היא opus, aac, flac, wav או pcm. |
speed | מספר | לא | נתפס ונעלם |
הקול הסטנדרטי עולה 3 אשראי סטנדרטי (30 sats) בקשה, כמו באפליקציה. 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()));
מודלים ואודיו קולות
שני רשימות ציבוריות לבחירת מודל דיבור וקול, או מודל תרגום.יש 41 דוברי Aura 2 אנגלית וארבעה שפות 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, so
audio.transcriptions.create עובדים
POST https://nymbot.ai/api/v1/audio/transcriptions זקוק למפתח API, או תשלום Lightning על פי בקשההגוף הוא multipart/form-data.
| שדה | סוג | דרושה | תיאור |
|---|---|---|---|
file | קובץ | כֵּן | ההקלטה, מ 256 בייט ל 25 MB ועד 30 דקות: WAV, WebM, MP4 או M4A, Ogg או Opus, MP3 ופורמטים אחרים שועה קורא. |
model | String | לא | חוסר whisperתגית: Whisper Large v3 Turbo whisper-1, whisper-large-v3-turbo ו @cf/openai/whisper-large-v3-turbo פירושו אותו דבר. |
language | String | לא | השפה המדוברת, כמו enהתגלה אם נעלם. |
prompt | String | לא | מילים או כתיבה לצפות, כגון שמות, רק 1000 התווים הראשונים משמשים. |
response_format | String | לא | 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(למשל, לא ניתן להדפיס את הקובץ בפורמט של יותר מ-180 מ"ג או בפורמט של פחות מ-180 מ"ג).audio_too_long). |
502 | שומע לא יכול לעבד את האודיו. |
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);
Embeddings
הפך טקסט לחומרים עבור חיפוש, קבוצה ו deduplication.The מודלים פועלים על Cloudflare ולבלות את האיזון הסטנדרטי.
POST https://nymbot.ai/api/v1/embeddings זקוק למפתח API, או תשלום Lightning על פי בקשה.
| שדה | סוג | דרושה | תיאור |
|---|---|---|---|
model | String | כֵּן | מודל משולב מ GET /api/v1/models?type=embedding. |
input | String או Array של Strings | כֵּן | תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורות תגיות קשורותtoken_input_unsupportedכל כניסה חייבת להתאים למודל context_length, נחשב כארבעה בייטים של טוקן. |
encoding_format | String | לא | float (הפסקת התשלום) או base64 (הופנה מהדף 32 סיביות) |
dimensions | אינטגר | לא | הגודל של המודל עצמו, או עבור מודל עם supported_dimensions אחד מהם; החומר מאוחר יותר מקצר ונורמליזציה.כל דבר אחר נדחה. |
| מודל | מימדים | הקשר |
|---|---|---|
@cf/baai/bge-m3 | 1024 שפות רבות | 8,192 טוקינים |
@cf/qwen/qwen3-embedding-0.6b | 1024 שפות רבות | 8,192 טוקינים |
@cf/baai/bge-large-en-v1.5 | 1024 אנגלית | 512 ש"ח |
@cf/baai/bge-base-en-v1.5 | 768, אנגלית | 512 ש"ח |
@cf/baai/bge-small-en-v1.5 | 384 אנגלית | 512 ש"ח |
רשימת המודלים היא מקור האמת עבור מי הם זמינים ומה הם עולה; EmbeddingGemma של Google, עם וקטורים קצרים יותר על פי בקשה, מופיע שם גם כאשר הקטלוג יש מחיר עבור זה.
תשובות
{
"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); גודל המודל לא יכול לתת (unsupported_dimensions). |
402 | האיזון הסטנדרטי הוא נמוך מדי.השבטים לעולם לא משתמשים באיזון Pro. |
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);