メインコンテンツまでスキップ

翻訳 API リファレンス

Shisa 翻訳 API は、​単一の​ multipart/form-data リクエストで、​ソース言語と​ターゲット言語の​間で​テキストを​翻訳します。​この​ページでは、​エンドポイント、​その​フォームフィールド、​非ストリーミングレスポンス、​ストリーミング形式に​ついて​説明します。

エンドポイント

POST https://api.shisa.ai/translate/

Authorization ヘッダーで、​標準的な​ベアラートークンを​使って​認証します。

Authorization: Bearer YOUR_API_KEY
警告

翻訳は​標準的な​ベアラートークンで​認証します。​これは​すべての​ Shisa サービスで​共通です。​トークンが​欠落または​不正な​形式の​場合は​ 401 エラーが​返されます。​完全な​規約に​ついては​ 認証 を​参照してください。

リクエストボディは​ multipart/form-data です — 以下の​フィールドは​ JSON ではなく​フォームフィールドとして​送信します。

リクエストフィールド

FieldTypeRequired説明
textstringRequired翻訳する​テキスト。​最大10,000 Unicodeコードポイント。
source_langstringRequiredソース言語コード​(例: ja)。
target_langstringRequiredターゲット言語コード​(例: en)。
streamstringOptional単一の​ JSON レスポンスの​場合は​ "false"(デフォルト)、​Server-Sent Events の​場合は​ "true"
keywordsrepeated stringOptional保持する​用語集。​用語ごとに​フォームフィールドを​繰り返します。​最大20件、​各項目100バイトまで。
contextstringOptional以前の​会話などの​文脈。​最大2,000 Unicodeコードポイント。
modelstringOptional翻訳モデルの​上​書き。​デフォルト: shisa-ai/chotto

非ストリーミングレスポンス

stream=false(デフォルト)の​場合、​API は​ OpenAI スタイルの​ JSON オブジェクトを​返します。​翻訳された​テキストは​ choices[0].message.content に​あります。

{
"id": "trans_20f537a6-da14-4c98-8ee3-063319c45072",
"object": "translation.completion",
"created": 1768299459,
"model": "shisa-v2.1-unphi4-14b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "お腹が空いた。"
},
"finish_reason": "stop"
}
],
"transcription": "I am hungry",
"source_lang": "en",
"target_lang": "ja",
"usage": {
"prompt_tokens": 47,
"completion_tokens": 8,
"total_tokens": 55
}
}
Field説明
id翻訳の​一意の​識別子。trans_ の​プレフィックスが​付きます。
objectオブジェクトタイプ。​非ストリーミングレスポンスの​場合は​ translation.completion です。
created翻訳が​作成された​時刻の​ Unix タイムスタンプ​(秒)。
modelバックエンドが​レスポンスで​報告した​モデル ID。​リクエストで​使用した​ shisa-ai/chotto エイリアスと​異なる​場合が​あります。
choices翻訳の​選択肢の​配列。​各エントリには​ indexrole と​ content を​持つ messagefinish_reason が​あります。
choices[0].message.content翻訳された​テキスト。
transcription翻訳された​元の​ソーステキスト。
source_lang翻訳に​使用された​ソース言語コード。
target_lang翻訳に​使用された​ターゲット言語コード。
usageトークンの​集計: prompt_tokenscompletion_tokenstotal_tokens

ストリーミングレスポンス

リアルタイム配信の​ために​翻訳を​ Server-Sent Events と​して​受け取るには​ stream=true を​設定します。

curl -X POST "https://api.shisa.ai/translate/" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "text=I am hungry" \
-F "source_lang=en" \
-F "target_lang=ja" \
-F "stream=true"

各チャンクはtranslation.completion.chunkオブジェクトを​持つdata:イベントで、​テキスト​(​空文字列の​場合も​あります)はchoices[0].delta.contentに​入ります。​1つの​リクエストの​全チャンクは​同じidを​使用します。​最初の​チャンクにはtranscriptionsource_langtarget_langも​含まれます。​バックエンドが​利用量を​送信した​チャンクにはusageも​含まれ、​その後にdata: [DONE]が​続きます。​ストリーミングチャンクにはfinish_reasonは​含まれません。

data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "transcription": "I am hungry", "source_lang": "en", "target_lang": "ja", "choices": [{"delta": {"content": ""}, "index": 0}]}
data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "お"}, "index": 0}]}
data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "腹が"}, "index": 0}]}
data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "空いた"}, "index": 0}]}
data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": "。"}, "index": 0}]}
data: {"id": "trans_446d7397-...", "object": "translation.completion.chunk", "choices": [{"delta": {"content": ""}, "index": 0}], "usage": {"prompt_tokens": 47, "completion_tokens": 8, "total_tokens": 55}}
data: [DONE]

次の​ステップ

  • クイックスタート で​実際に​動作する​リクエストを​送信します。
  • 共通の​ベアラーヘッダー規約を​ 認証 で​確認します。
  • 利用が​どのように​課金されるかを​ 価格 で​確認します。