知識ベース 開発者
画像、オーディオ、embeddings
アプリからのジェネレーターと検索のビルドブロック:写真、ビデオ、スピーチ、トランスクリプション、および埋め込み、それぞれあなたのバランスから使用ごとに請求されます。
このページは便宜上機械翻訳されています。英語原文が該当するバージョンとなります。
画像生成
プロンプトから1〜4枚の画像を作成し、完成したときに返します。 ?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, cost a flat 5 standard credits (50 sats) a picture. Every other generator spends Pro credits at its own price, with the usual fee and margin, as in ♪ app. n 写真コスト
n ジェネレーターが取らないフィールドは、拒否するのではなく落とされます; 標準ジェネレーターは、プロンプトのみを使用します。
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
model | String | はい | ジェネレーターIDは、 nano-banana. |
prompt | String | はい | 何を描くか? 最初の2000文字のみを使用します。 |
n | インテル | ノー | 1 to 4 デフォルト 1. Also accepted as num_images. |
size | String | ノー | Aspect ratio such as "16:9"あるいは、OpenAIサイズのように、 "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 picture to start from: A https:// ユーザー名やパスワードがない4096文字以上のリンク、または data:image/…;base64 URL(PNG、JPEG、WebP、GIF、SVGではありません) edit求める人々は, requires_image_url. |
resolution 使用されていない:各発電機は独自のサイズを作ります。 url, each image is uploaded to a public Blossom host and you get its link (some generators only hand back a link of their own, which is passed on). リンクを持っている誰でも開くことができ、再びダウンロードすることはできません。 火が見えるもの♪With
b64_json 画像は返信時に返信され、一度もアップロードされません。 data: URL入力 image_url 同様の方法で検証されているのは、A
EDIT 最初にBlossomにアップロードし、発電機がそれを取得できるようにして、リクエストが請求されない場合に再度削除されます。
If some of the 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 SDKの images.edit プロジェクターのみで動作します。 edit モデルリストで受け入れます。
POST https://nymbot.ai/api/v1/images/edits API キーが必要、または リクエストによる Lightning 支払い身体は、 multipart/form-data32MBまで。
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
image | ファイル | はい | 編集する画像:PNG、JPEG、WebPまたはGIF、最大20 MB。 image[]最初の1つが使われています。 |
prompt | String | はい | 何を変えるか。 |
model | String | はい | Generator with 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 | 画像は20MB(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.
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
model | String | はい | ビデオ ジェネレーター ID from 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 picture to start from: A https:// リンク A data:image/… URL は、最初に公共の Blossom ホストにアップロードされます。 requires_image_url. |
価格は、発電機から解像度と長さから送信するときに固定されますので、プロのバランスをプロが仕事を受け入れるとすぐに請求されます。
cost, estimated_cost そして nymbot. プロバイダーが仕事を拒否した場合、何も請求されません。 再生が後で失敗した場合、または完成したクリップが保存されず、プロバイダーが請求しなかった場合、料金は自動的に一度返還されます。 1 時間後にまだ続いている再生は放棄され、プロバイダーがそれを受け入れたときに再生を請求するため、その料金は保持されます。 返金はクレジットを返しますが、キーの支出数を下げません。
答え(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 スタート As in_progressあるいは completed すでにビデオでは、 data 直ちに発電機が返してくれた。
ビデオでチェック
GET https://nymbot.ai/api/v1/videos/{id} 提出したNIMに属するキーを必要とします。そのカップに達したキーはまだチェックできます。
答えは 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ホスト上にあります。
| ステータス | いつ |
|---|---|
400 | 0 ~ 60 までの長さ 0 ~ 60 (invalid_value); 発電機が提供しない解像度(unsupported_resolution); 1 つ必要とする発電機のための画像はありません (image_required); モデルは、ビデオジェネレーターではありません(invalid_model). |
402 | プロバランスはビデオをカバーできません。 |
404 | (このような発電機はありません)model_not_found)、またはあなたのニムのためのそのIDによる仕事がない、またはそれは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 SDK」の機能
POST https://nymbot.ai/api/v1/audio/speech API キーが必要、または リクエストによる Lightning 支払い.
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
model | String | ノー | スピーチモデル from オーディオモデルのリストデフォルト:標準音声 @cf/myshell-ai/melotts. aura-2 「Deepgram Aura 2」 |
input | String | はい | 読むテキスト:標準音声の最大800文字、Aura 2の最大2000文字。 |
voice | String | ノー | Voice ID from 声のリストオーラスピーカー(Aura Speaker) luna (または aura-2-luna-en)またはMeloTTS言語(en, es, fr, zh) OpenAI voice names such as alloy 受け入れられ、モデルのデフォルトの声を与えます。 |
language | String | ノー | 例えば、言語コードは、 es声がなければ、その言語に1つを選択します。別の言語を話す声が返されます。 422 voice_language_mismatch, and a language the model has no voice for モデルに声がない言語 422 unsupported_language. |
response_format | String | ノー | 標準音声が戻る mp3 Aura 2 復帰 mp3 (デフォルトは、 opus, aac, flac, wav または pcm. |
speed | 番号 | ノー | 受け入れられ、無視される。 |
Aura 2 is Pro, priced by the characters you send. The response body is the audio, with a matching Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send. Aura 2 is Pro, priced by the characters you send.
Content-Typeコストは, in the X-Nymbot-Cost-Sats header. If the speech model fails, nothing is charged. スピーチモデルが失敗した場合、何も請求されません。
応答
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つの公開リスト. There are 41 Aura 2 English speakers and four MeloTTS languages.
GET https://nymbot.ai/api/v1/audio/models 鍵は必要ありません。
GET https://nymbot.ai/api/v1/audio/voices?language=en 鍵は必要ありません。
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
language | String(クエリー) | ノー | この言語のための声だけです。 |
model | String(クエリー) | ノー | このモデルだけの声です。 |
応答(声)
{
"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, 形式と1分あたりの価格。
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およびその他のフォーマットはWhisperを読み取ります。 |
model | String | ノー | 欠点 whisperWhisper 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は、8kbps、30分は 1.8 MBであり、そのようなフォーマットの大きなファイルは拒否されます。 413
audio_too_long WAV、WebM、MP4、Oggなどの長いレコーディングを送信します. Whisper が 30 分を超えるレポートを送信した場合、その要求は拒否されます。
413 audio_too_long, and since Whisper did run, 30 minutes are charged. 30分が充電されます。
You pay for the length of the audio, rounded up to the second: the longest of the length read from the file, the length Whisper reports, and the least the file's size allows, at Whisper's per-minute price with the usual fee and margin, and at least 0.05 credit a request. It is paid from the standard balance when that can cover the hold, and from Pro otherwise. あなたは、オーディオの長さのために支払うことができます。 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でない3つのセグメントの場合、コストはヘッダーに含まれます。
| ステータス | いつ |
|---|---|
400 | ファイルなし、使用可能なオーディオがないファイル(invalid_audio)、未知のフォーマット、またはモデルがトランスクリプションモデルではない(invalid_model). |
402 | バランスを覆うこともできない。 |
413 | ファイルサイズは25MB(file_too_large平成30年度 平成30年度 平成30年度 平成30年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度 平成18年度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
テキストをベクトルに変換して検索、クラスタリング、およびデドプリクションを実行します。 モデルはCloudflareで実行され、標準バランスを消費します。
POST https://nymbot.ai/api/v1/embeddings API キーが必要、または リクエストによる Lightning 支払い.
| フィールド | タイプ | 必要 | 描写 |
|---|---|---|---|
model | String | はい | A embedding model from GET /api/v1/models?type=embedding. |
input | string or array of strings シングル | はい | トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ > トップ >token_input_unsupported) 各入力は、モデルの入力に適合する必要があります。 context_length約4バイトを1トークンとして数えました。 |
encoding_format | String | ノー | float (デフォルト)または base64 (リトルエンディアン32ビットフロート) |
dimensions | インテル | ノー | モデル自体のサイズ、またはモデルと supported_dimensions 次に、ベクターは短縮され、正常化され、その他のすべては拒否されます。 |
| モデル | 次元 | 文脈 |
|---|---|---|
@cf/baai/bge-m3 | 1024 多くの言語 | 8192 トークン |
@cf/qwen/qwen3-embedding-0.6b | 1024 多くの言語 | 8192 トークン |
@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 トークン |
モデルリストは、入力トークンあたりの真実の源であり、それらのコストは何ですか? リクエストに応じてより短いベクトルを持つ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 | 入力なしまたは空の1;トークンアーレイ(token_input_unsupported); 100個以上の入力(too_many_inputs); input longer than the model takes (モデルが取るよりも入力時間が長い)input_too_long); モデルが与えることができないサイズ(unsupported_dimensions). |
402 | 標準バランスが低すぎる Embeddings は 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);