지식 기반 개발자
이미지, 오디오 및 Embeddings
앱에서 생성기와 검색을위한 빌딩 블록 : 사진, 비디오, 음성, 번역 및 삽입, 각각 균형에서 사용 당 청구.
이 페이지는 편의를 위해 기계 번역되었습니다. 영문 원본이 적용되는 버전입니다.
이미지 생성
1 ~ 4 개의 사진을 프롬프트에서 생성하고 그들이 완료되면 그들을 반환합니다. ?image App 에서
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 sats) 사진. 모든 다른 생성기는 자신의 가격에 프로 크레딧을 지출, 일반적인 수수료와 마진, 앱. n 사진 비용
n 생성기에서 가져오지 않는 필드는 거부되는 대신 떨어집니다; 표준 생성기는 인스턴스를 사용합니다.A field a generator does not take is dropped rather than rejected; the standard generator uses the prompt only.
| 필드 | 타입 | 필요성 | 설명서 |
|---|---|---|---|
model | String | 예 | 생성자 ID, such as nano-banana. |
prompt | String | 예 | 그림을 그리는 것은 무엇입니까?만 처음 2,000개의 문자가 사용됩니다. |
n | 통합 | 아니오 | 1 to 4.Default 1. Also accepted as num_images. |
size | String | 아니오 | 이와 같은 측면적 비율은 "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 | 아니오 | 동일한 as size둘 다 보내면 승리한다. |
quality | String | 아니오 | 특정 발전기와 같은 "low", "medium" 또는 "high". |
negative_prompt | String | 아니오 | 무엇을 떠나야 하는가. |
output_format | String | 아니오 | "png", "jpeg" 또는 "webp". |
response_format | String | 아니오 | "url" (Default) 또는 "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 호스트에 업로드되고 당신은 그 링크를 얻을 수 있습니다 (어떤 생성기만 자신의 링크를 반환, 이는 전달됩니다). API는 무엇을 볼 수 있는가· 와
b64_json 사진은 응답에서 반환되며 업로드되지 않습니다. data: URL 내부 image_url 그것은 같은 방식으로 검사됩니다.
에디 그리고 생성기가 그것을 가져올 수 있도록 먼저 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 | 이 이름의 모델이 없음 (No model by that name)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);
이미지 편집
다음으로 업로드한 이미지를 변경합니다.This is OpenAI's edit endpoint, so the OpenAI SDKs' images.edit 작동하는 방식입니다.Pro 발전기와 함께만 edit 모델 리스트에서 그것을 받아 들일 수 있습니다.
POST https://nymbot.ai/api/v1/images/edits API 키가 필요하거나, 요청에 따라 Lightning 지불이 몸은 multipart/form-data최대 32MB
| 필드 | 타입 | 필요성 | 설명서 |
|---|---|---|---|
image | 파일 | 예 | 편집할 이미지: PNG, JPEG, WebP 또는 GIF, 최대 20 MB. image[]첫 번째는 사용됩니다. |
prompt | String | 예 | 무엇을 바꿀 것인가. |
model | String | 예 | Generator와 함께 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 | 아니오 | Generator의 하나는 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 시작하기 as in_progress또는 completed 비디오는 이미 in data 즉시 제네이터를 돌려보냈다.
비디오에서 확인하기
GET https://nymbot.ai/api/v1/videos/{id} - 그것을 제출한 nym에 속하는 열쇠가 필요합니다.A key that has reached its cap can still check.
그것은 대답 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 0 0 0 0 0 0 0 0 0 0 (invalid_value); 발전기가 제공하지 않는 해상도 (unsupported_resolution); 하나를 필요로하는 발전기를위한 사진이 없습니다 (image_required1) 비디오 캡처가 아닌 비디오 캡처(invalid_model). |
402 | Pro 균형은 비디오를 덮을 수 없습니다. |
404 | 이 장치가 없음(model_not_found, 또는 당신의 nym에 대한 그 ID에 의해 작업이 없거나 24 시간 이상 오래되었습니다 (video_not_found). |
429 | 당신의 nym 이미 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);
Text to Speech 연설
텍스트를 큰 소리로 읽고 링크가 아닌 오디오 파일 자체를 반환합니다.It is OpenAI's speech endpoint, so audio.speech.create OpenAI SDK가 작동합니다.
POST https://nymbot.ai/api/v1/audio/speech API 키가 필요하거나, 요청에 따라 Lightning 지불.
| 필드 | 타입 | 필요성 | 설명서 |
|---|---|---|---|
model | String | 아니오 | A speech model from 오디오 모델 리스트기본 : 표준 목소리, @cf/myshell-ai/melotts. aura-2 Deepgram Aura 2에 대한 리뷰 보기 |
input | String | 예 | 읽어야 할 텍스트 : 표준 음성의 경우 최대 800 문자, Aura 2의 경우 2,000 문자. |
voice | String | 아니오 | Voice ID from 목소리 목록: Aura speaker 같은 luna (또는 aura-2-luna-en멜로토스 언어 (MeloTTS language)en, es, fr, zhOpenAI 음성 이름 (OpenAI voice names) 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입니다.The response body is the audio, with a matching
Content-Type· 비용은 그 안에 X-Nymbot-Cost-Sats 헤더: 연설 모델이 실패하면 아무것도 부과되지 않습니다.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낯선 목소리 (Unknown voice)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 영어 사용자와 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· 번역 모델은 별자리를 제공합니다.The transcription model gives its aliases, 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 및 기타 형식 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는 8 kbps, 30 분은 1.8 MB이며 그러한 형식의 더 큰 파일은 거부됩니다. 413
audio_too_long 무엇이든 실행되기 전에 WAV, WebM, MP4 또는 Ogg와 같은 더 긴 녹음을 보냅니다. Whisper가 30 분 이상 보고하면 어쨌든 요청이 거부됩니다.
413 audio_too_long그리고 Whisper가 실행되었기 때문에 30 분이 충전됩니다.
당신은 오디오의 길이에 대해 지불, 두 번째로 둥근 : 파일에서 읽은 길이의 가장 긴, Whisper 보고서의 길이, 그리고 파일의 크기가 허용하는 최소, Whisper의 평소 수수료와 마진으로 분당 가격으로, 그리고 적어도 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 subtitles를 반환하고,
verbose_json 언어, 기간 및 타이밍 세그먼트를 추가합니다.JSON이 아닌 세 가지 세그먼트의 경우 비용은 헤더에 있습니다.
| 상태 | 언제 |
|---|---|
400 | 파일이 없음, 사용가능한 오디오가 없는 파일(invalid_audio, 알 수없는 형식, 또는 모델이 번역 모델이 아닙니다 (invalid_model). |
402 | 균형은 그것을 덮을 수 없습니다. |
413 | 파일이 25MB 이상(file_too_large녹음시간이 30분 이상인 경우, 녹음시간이 1분 이상인 경우, 녹음시간이 1분 이상인 경우, 녹음시간이 1분 이상인 경우 (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, 제한 및 가격,하지만 텍스트는 언어가 무엇이든 영어로 돌아옵니다.The OpenAI SDKs call it with 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);
삽입
텍스트를 검색, 클러스터링 및 deduplication을 위한 벡터로 변환합니다.The models run on Cloudflare and spend the standard balance.
POST https://nymbot.ai/api/v1/embeddings API 키가 필요하거나, 요청에 따라 Lightning 지불.
| 필드 | 타입 | 필요성 | 설명서 |
|---|---|---|---|
model | String | 예 | 삽입 모델 from GET /api/v1/models?type=embedding. |
input | string 또는 array of strings에 대한 정보 | 예 | 텍스트 삽입, 최대 100 개의 비 빈 문자열. 토큰 배열이 거부됩니다 (token_input_unsupported각 입력은 모델에 맞춰야 합니다.Each input must fit the model's context_length약 4바이트의 토큰으로 계산되었습니다. |
encoding_format | String | 아니오 | float (Default) 또는 base64 (Little-endian 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 토큰 |
모델 목록은 사용할 수있는 것과 비용이 무엇인지에 대한 진실의 원천입니다; 요청에 따라 짧은 벡터가있는 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_unsupported1) 100개 이상의 인스턴스(too_many_inputs); 삽입이 모델보다 더 오래 걸립니다 (input_too_long모델이 제공할 수 없는 크기 (a size the model cannot give)unsupported_dimensions). |
402 | 표준 균형은 너무 낮습니다.Inbeddings는 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);