지식 기반 개발자
이미지, 오디오 및 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). Nothing is charged unless the provider billed for the attempt; then the error has 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 image=@photo.png \
-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 file=@memo.m4a \
-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 file=@nota.m4a \
-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 | No input or an empty one; token arrays (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);