跳转到正文
Bambuk / 开发文档

SDK 与多语言接入

使用 Python、Java、JavaScript、Go 或 cURL 接入 Bambuk 四类模型能力。

选择接入方式

所有语言共用同一套 HTTP API 和开发者主密钥。服务端设置 BAMBUK_BASE_URL(包含 /api/v1)和 BAMBUK_APP_KEY,不要把密钥放进浏览器、移动端或代码仓库。

方式适合场景依赖
Python SDK后端脚本、数据处理和快速验证requests
Java SDK 示例Spring Boot、企业后端JDK 11+
JavaScript / Node.jsNode 服务、任务队列Node.js 18+
Go SDK 示例高并发服务和微服务Go 1.20+
cURL命令行调试、CI/CDcURL

SDK 下载

下载列表来自当前部署的文档服务。SDK 包只包含请求封装,不包含平台密钥。

正在加载 SDK…

统一调用约定

能力路径请求格式关键字段
多语言翻译/ai/bambuk/nmtJSONtext、source_lang、target_lang
语音识别/ai/bambuk/asrmultipartfile、lang
图文识别/ai/bambuk/ocrmultipartimage、lang
语音合成/ai/bambuk/ttsJSONtarget_text、language、voice

所有请求使用 AppKey。响应统一从 data.result 读取;TTS 返回音频二进制。

Python

python -m pip install requests
import os
import requests

base = os.environ["BAMBUK_BASE_URL"].rstrip("/")
headers = {"AppKey": os.environ["BAMBUK_APP_KEY"]}
response = requests.post(
    f"{base}/ai/bambuk/nmt",
    headers={**headers, "Content-Type": "application/json"},
    json={"text": ["你好"], "source_lang": "zh", "target_lang": "ug"},
    timeout=300,
)
response.raise_for_status()
print(response.json()["data"]["result"]["translations"])

上传 ASR/OCR 使用 files={"file": (...)} 或 files={"image": (...)}。TTS 的响应内容可直接写入 .wav 文件。

Java

以下示例使用 JDK 11 自带的 HttpClient,无需额外 SDK 依赖:

import java.net.URI;
import java.net.http.*;

var request = HttpRequest.newBuilder()
    .uri(URI.create(System.getenv("BAMBUK_BASE_URL") + "/ai/bambuk/nmt"))
    .header("Content-Type", "application/json")
    .header("AppKey", System.getenv("BAMBUK_APP_KEY"))
    .POST(HttpRequest.BodyPublishers.ofString(
        "{\"text\":[\"你好\"],\"source_lang\":\"zh\",\"target_lang\":\"bo\"}"))
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() / 100 != 2) throw new RuntimeException(response.body());
System.out.println(response.body());

JavaScript / Node.js

Node.js 18+ 可直接使用内置 fetch 或引用 Bambuk Node.js SDK:

const base = process.env.BAMBUK_BASE_URL.replace(/\/$/, '');
const response = await fetch(`${base}/ai/bambuk/nmt`, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'AppKey': process.env.BAMBUK_APP_KEY,
  },
  body: JSON.stringify({ text: ['你好'], source_lang: 'zh', target_lang: 'mn' }),
  signal: AbortSignal.timeout(300_000),
});
if (!response.ok) throw new Error(`Bambuk HTTP ${response.status}`);
console.log((await response.json()).data.result.translations);

Go

使用 Go 官方客户端或标准库直接调用:

package main

import (
	"bytes"
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	body := bytes.NewBufferString(`{"text":["你好"],"source_lang":"zh","target_lang":"ug"}`)
	req, _ := http.NewRequest("POST", os.Getenv("BAMBUK_BASE_URL")+"/ai/bambuk/nmt", body)
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("AppKey", os.Getenv("BAMBUK_APP_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	if res.StatusCode/100 != 2 {
		panic(res.Status)
	}
	output, _ := io.ReadAll(res.Body)
	fmt.Println(string(output))
}

cURL

curl --fail-with-body --max-time 300 "$BAMBUK_BASE_URL/ai/bambuk/nmt" \
  -H "AppKey: $BAMBUK_APP_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"text":["你好"],"source_lang":"zh","target_lang":"kk"}'

ASR 和 OCR 的文件上传示例:

curl --fail-with-body "$BAMBUK_BASE_URL/ai/bambuk/asr" \
  -H "AppKey: $BAMBUK_APP_KEY" \
  -F 'file=@sample.wav' \
  -F 'lang=ug'

curl --fail-with-body "$BAMBUK_BASE_URL/ai/bambuk/ocr" \
  -H "AppKey: $BAMBUK_APP_KEY" \
  -F 'image=@sample.png' \
  -F 'lang=chi_sim'

错误与额度

收到 401 检查主密钥,403 检查套餐和接口授权,429 降低并发。调用会按所购套餐的规则扣减次数、token 或时长;超时后先查看调用记录,不要盲目重复提交。详见鉴权、计费与配额和错误处理。