さくらのAI Engineでgpt-oss-120bをpythonで実行する

初めに

さくらインターネットが新しくOSSのLLM等をGPUホスティングして無料枠を提供しています。

www.sakura.ad.jp

無料枠と料金は以下のようになっています

各種APIドキュメントは以下です

manual.sakura.ad.jp

開発環境

環境構築

以下で環境構築をして、必要なライブラリをインストールします

uv venv -p 3.12
.\.venv\Scripts\activate

必要なライブラリをインストールします。今回は API TOKENを .env ファイルに定義しているので、dotenvも入れています

uv pip install requests dotenv

APIトークンの発行

以下からTOKENを発行します

secure.sakura.ad.jp

.envファイルに以下のようにTOKENを入れておきます

API_TOKEN="TOKEN"

Pythonで実行

以下のスクリプトを作成して実行します

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Simple Sakura AI Engine Chat Test
"""

import os
import requests
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

def main():
    # Get API token
    api_token = os.getenv("API_TOKEN")
    if not api_token:
        print("Error: API_TOKEN not found in .env file")
        return

    # API endpoint and headers
    url = "https://api.ai.sakura.ad.jp/v1/chat/completions"
    headers = {
        "Authorization": f"Bearer {api_token}",
        "Content-Type": "application/json"
    }

    # Request payload
    payload = {
        "model": "gpt-oss-120b",
        "messages": [
            {
                "role": "system",
                "content": "You are a helpful assistant. Please respond in Japanese."
            },
            {
                "role": "user",
                "content": "さくらインターネットについて簡単に教えてください。"
            }
        ],
        "temperature": 0.7,
        "max_tokens": 500,
        "stream": False
    }

    print("Sending request to Sakura AI Engine...")
    print(f"Model: {payload['model']}")
    print(f"Question: {payload['messages'][1]['content']}\n")

    try:
        # Send request
        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()

        # Parse response
        data = response.json()
        content = data.get("choices", [{}])[0].get("message", {}).get("content", "")

        print("Response:")
        print("=" * 50)
        print(content)
        print("=" * 50)

    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")
        if hasattr(e.response, 'text'):
            print(f"Details: {e.response.text}")


if __name__ == "__main__":
    main()

実行結果は以下になります

=== Sakura AI Engine Chat Test ===

Getting available models...
Available models: multilingual-e5-large, Qwen3-Coder-30B-A3B-Instruct, Qwen3-Coder-480B-A35B-Instruct-FP8, whisper-large-v3-turbo, gpt-oss-120b...

Using model: gpt-oss-120b

Sending chat request...

==================================================
**さくらインターネット(Sakura Internet)**は、日本を拠点とする大手ホスティング・クラウドサービスプロバイダーです。主なサービスは以下の通りです。

| サービス名 | 概要 |
|------------|------|
| **さくらのレンタルサーバ** | 共有ホスティング。WordPress などの CMS が簡単にインストールでき、初心者向けのプランが豊富。 |
| **さくらのVPS** | 仮想専用サーバ。CPU・メモリ・ディスク容量を選択でき、Linux/Windows 両方に対応。スケーラビリティが高く、開発・テスト環境に最適。 |
| **さくらの専用サーバ** | 物理サーバを単独で提供。高いパフォーマンスとカスタマイズ性が必要な企業向け。 |
| **さくらのクラウド** | IaaS(Infrastructure as a Service)型クラウド。仮想マシン、ロードバランサ、オブジェクトストレージなどを API で柔軟に構成可能。 |
| **さくらのマネージドサーバ** | OS のパッチ適用やバックアップなどを運用代行。運用負荷を軽減したい中小企業向け。 |
| **ドメイン取得・管理** | .jp、.com など多数のトップレベルドメインを取得でき、DNS も高速・安定。 |
| **SSL証明書** | Let’s Encrypt の無料証明書から有料の EV/OV 証明書まで、HTTPS 化を簡単に実装可能。 |
| **メールホスティング** | 企業向けメールボックス(POP/IMAP)やグループウェア機能を提供。 |
| **バックアップ・ストレージ** | オブジェクトストレージ「さくらのオブジェクトストレージ」
==================================================

✅ Chat completed successfully
Response length: 752 characters

管理画面からどのモデルにどのくらい使ったのかを確認することができます