1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

別の記事で、さくらのAI Engineを使った行政文書検索の窓口AIを作りました。この記事はその前段——「そもそも使える状態になるまで」の道のりを、実際の画面を貼りながら歩き直したものです。

なぜわざわざ記事にするかというと、私自身がこの道のりで一度迷子になったからです。具体的には「ログインしているはずなのにログイン画面が出る」という現象で数分固まりました。原因は後述しますが、先に知っていれば迷わなかったはずのことばかりだったので、これから触る人向けに整理しておきます。

対象読者: さくらのAI Engineをこれから初めて触る人。OpenAI互換APIを触ったことがあれば、この記事の内容は30分あれば追いつけます。

参考文献

道のりの全体マップ

最初のAPIコールまでのステップは4つです。

  1. さくらインターネットの会員登録(既存の会員IDがあればスキップ)
  2. さくらのクラウドのコントロールパネルでAI Engineを開き、アカウントトークンを発行
  3. Playgroundでモデルの動作を体感(任意だがおすすめ)
  4. curlで最初のAPIコール

順に歩いていきます。

Step0 サービスページを眺める

まずは公式のサービスページです。チャット・埋め込み・音声などのAPIが国内データセンターで動く推論基盤で、無償プランと従量課金が用意されています(料金・無料枠の値は変わりうるので公式ページで最新を確認してください)。

sakura-journey_service_top.png

ページ内に入口が2つあることを覚えておいてください。「無料でPlaygroundを試す」と「さくらのクラウドのプロジェクトを作成/ログインする」です。実はこの2つ、行き先の認証システムが違います。ここが今回いちばんのハマりどころなので、次で説明します。

ハマりどころ 認証が2系統ある

私はここで「ログインしているのにログイン画面が出る」現象に遭遇しました。整理すると、さくらのAI Engineまわりには認証が2系統あります。

系統 使う場所 アカウント
さくらインターネット会員ID さくらのクラウドのコントロールパネル(トークン発行・音声モデルの規約同意) 会員登録で発行される nnn12345 形式のID
さくらID(またはGitHub認証) Playground 会員IDとは別のアカウント

Playgroundにさくらのアカウントでログインした状態でも、コントロールパネル(secure.sakura.ad.jp)は別の会員IDセッションを要求します。逆も同じです。「さっきログインしたのに」と思ったら、開いているのがどちらの系統かをURLで確認してください。

sakura-journey_login.png

会員IDをまだ持っていない場合は、ログイン画面の「新規会員登録」から作成します。

Step1 コントロールパネルでトークンを発行する

さくらのクラウドのコントロールパネルにログインしたら、トークン発行の前にいくつか準備があります。順番は、プロジェクトの作成 → AI Engineの利用開始手続き(利用規約への同意とプランの選択。アカウント状況によっては本人確認などの手続きも挟まります)→ アカウントトークンの発行、です。細かい画面遷移は公式の利用手順が正確なので、迷ったらそちらを正としてください。

APIを叩くのに必要なのは最後に発行する「アカウントトークン」で、形式は UUID:シークレット です。

image.png

発行したトークンの扱いは最初に決めておくのがおすすめです。私は .env ファイルに保存して環境変数として読み込む方式にしました。

.env はエディタで作成します(echoコマンドで作るとトークンがシェル履歴に残るので避けます)。中身は1行だけです。

.env(値は自分のトークンに置き換える)
SAKURA_AI_ENGINE_TOKEN=<UUID>:<シークレット>

作成したら権限を絞り、シェルに読み込みます。この後のcurlは、この読み込みを済ませた前提です。

権限設定と読み込み
chmod 600 .env
source .env

トークンをソースコードに直書きしてGitにコミットする事故は本当によく起きます。.env は必ず .gitignore に入れてください。もしチャットやスクショで露出したら、その場で再発行を。

Step2 Playgroundで動作を体感する

APIを書く前に、ブラウザだけで試せるPlaygroundを触っておくとモデルの雰囲気がつかめます。入口はサービスページの「無料でPlaygroundを試す」で、こちらはさくらIDまたはGitHub認証です(会員IDではない点に注意)。

image.png

モデルを切り替えながら数往復してみると、応答速度がかなり速いことに気づくはずです。スピーカーボタンから音声合成も試せます。

Step3 curlで最初のAPIコール

いよいよAPIです。エンドポイントはOpenAI互換で、ベースURLは https://api.ai.sakura.ad.jp/v1 、認証は Authorization: Bearer <トークン> ヘッダです。

まずは利用できるモデルの一覧から。

モデル一覧の取得
curl -sS https://api.ai.sakura.ad.jp/v1/models \
  -H "Authorization: Bearer $SAKURA_AI_ENGINE_TOKEN"

私の環境では、gpt-oss-120b、llm-jp-3.1-8x13b-instruct4、preview/Kimi-K2.6、preview/Qwen3.6-35B-A3B、preview/gemma-4-31B-it などのチャットモデルに加えて、埋め込みの multilingual-e5-large、文字起こしの whisper-large-v3-turbo が返ってきました(提供モデルは時期により入れ替わります)。

続いて、最初のチャットリクエストです。

最初のチャット補完
curl -sS https://api.ai.sakura.ad.jp/v1/chat/completions \
  -H "Authorization: Bearer $SAKURA_AI_ENGINE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-oss-120b",
    "messages": [{"role": "user", "content": "APIの疎通確認です。「ようこそ、さくらのAI Engineへ」とだけ返してください。"}],
    "max_tokens": 500
  }'
実際のレスポンス(一部フィールドを省略)
{
  "id": "chatcmpl-96b0de4926da75b6",
  "object": "chat.completion",
  "model": "gpt-oss-120b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "ようこそ、さくらのAI Engineへ",
        "reasoning": "The user requests: ... Please respond only with 'ようこそ、さくらのAI Engineへ'. So we just output that exact phrase."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 90, "completion_tokens": 85, "total_tokens": 175 }
}

返ってきました。OpenAIのレスポンスと同じく回答は choices[0].message.content に入っています。面白いのは reasoning フィールドで、gpt-oss-120bが内部でどう考えたかが覗けます。ここまで来れば、OpenAI互換のライブラリやツールに対して、ベースURL・トークン・モデル名を差し替えれば手持ちのコードを動かせます(モデルごとに対応パラメータは異なるので、使っている機能の互換性だけは確認を)。Anthropic互換の /v1/messages エンドポイントも用意されていて、手元で試した範囲では preview/Kimi-K2.6 と gpt-oss-120b のどちらでも応答が返りました。

まとめ

登録からAPIコールまで、迷子ポイントさえ知っていれば30分かからない道のりでした。OpenAI互換なので2歩目以降の学習コストがほぼゼロなのも、最初の一歩として勧めやすいところです。

このあと私は埋め込みAPIで検索を組み、行政文書に答える窓口AIまで作りました。その顛末は別記事にまとめているので、最初の一歩の次が気になる方はそちらもどうぞ。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?