オープン AI互換性

Prev Next

Classic/VPC環境で利用できます。

CLOVA Studioサービスは、Chat Completionsとエンベディングをはじめとする主な APIに対してオープンAI APIとの互換性を提供します。

互換 API

CLOVA Studioサービスでオープン AI APIとの互換性を持つ APIリストは次の通りです。

API メソッド URI
Chat Completions, Chat Completions v3 POST /chat/completions
エンベディング、エンベディング v2 POST /embeddings
モデルを照会 GET /models

使用方法

オープン AI互換 APIのリクエスト形式とレスポンス形式を説明します。

リクエスト

CLOVA Studio APIのリクエスト項目を一部調整して、OpenAI公式ライブラリ(SDK)と REST APIで利用できます。

APIキー

CLOVA Studioサービスで発行したテストまたはサービス APIキーを利用します。

注意

オープン AI互換 APIは、CLOVA Studioの [APIキー] から発行されたテスト APIキーまたはサービス APIキーを介してのみ使用できます。

API URL

リクエスト API URLは次の通りです。

https://clovastudio.stream.ntruss.com/v1/openai/

モデル

リクエストボディのモデル名は、CLOVA Studioサービスが提供するモデル名を入力してください。

命名規則

リクエストフィールドの命名規則はスネーク表記(snake_case)に準拠しています。

レスポンス

オープン AI APIと同じ構造と形式のレスポンス結果をサポートします。

SDKのユースケース

OpenAI公式ライブラリを活用して CLOVA Studioサービスを利用するユースケースを紹介します。

Python

Pythonで作成したサンプルコードは次の通りです。

from openai import OpenAI

client = OpenAI(
    api_key="CLOVA_STUDIO_API_KEY",  # CLOVA Studio APIキー
    base_url="https://clovastudio.stream.ntruss.com/v1/openai"  # CLOVA Studioオープン AI互換 API URL 
)

# Chat Completions
response = client.chat.completions.create(
    model="HCX-005",  # CLOVA Studioをサポートするモデル名
    messages=[
        {"role": "system", "content": "あなたは優秀な AIアシスタントです。"},
        {"role": "user", "content": "人工知能について説明してください。"}
    ]
)

print(response.choices[0].message.content)

# Embeddings
embedding = client.embeddings.create(
    model="bge-m3", # CLOVA Studioをサポートするモデル名 (エンベディング)
    input="CLOVA Studioをご利用いただき、ありがとうございます。",
    encoding_format="float" # オープン AI Python SDKでエンベディングを利用する場合、必須設定(base64をサポートしない)
    )
注意

OpenAI公式 Pythonライブラリでエンベディングを利用する場合、encoding_format="float"は必須設定です。

TypeScript/JavaScript (Node.js)

TypeScript/JavaScript (Node.js)で作成したサンプルコードは次の通りです。

import OpenAI from "openai";

const openai = new OpenAI({
    baseURL: "https://clovastudio.stream.ntruss.com/v1/openai", // CLOVA Studioオープン AI互換 API URL
    apiKey: "YOUR_API_KEY",
    }); // CLOVA Studio APIキー

// Chat Completions
const completion = await openai.chat.completions.create({
    model: "HCX-005",   // CLOVA Studioをサポートするモデル名
    messages: [
        {"role": "system", "content": "あなたは優秀な AIアシスタントです。"},
        {"role": "user", "content": "人工知能について説明してください。"}
    ]
});

console.log(completion.choices[0].message);

// Embedding
const embedding = await openai.chat.completions.create({
    model: "bge-m3",   // CLOVA Studioをサポートするモデル名 (エンベディング)
    input: "CLOVA Studioをご利用いただき、ありがとうございます。"    
});

console.log(embedding.data[0].embedding);
参考

ほかにも、さまざまな言語の OpenAI公式 SDKと互換 APIで実装されたオープンソースフレームワークを通じて CLOVA Studioを利用することができます。

互換性情報

オープン AI APIとの互換性を持つ API別詳細互換性情報です。サポートフィールドと CLOVA Studio専用フィールドの入力形式と範囲は、APIガイドを確認してください。

Chat Completions/Chat Completions v3

Chat Completions API、Chat Completions v3 APIのオープン AI互換性情報は次の通りです。

サポートフィールド サポートしないフィールド CLOVA Studio専用のフィールド
  • model
  • messages
  • stream
  • tools
  • tool_choice
  • temperature
  • max_tokens (デフォルト: 512)
  • max_completion_tokens (デフォルト: 512)
  • reasoning_effort | reasoning.effort
  • response_format
  • top_p
  • stop
  • seed
  • frequency_penalty
  • presence_penalty
  • store
  • metadata
  • logit_bias
  • logprobs
  • top_logprobs
  • n
  • name
  • modalities
  • prediction
  • audio
  • service_tier
  • stream_options
  • parallel_tool_calls
  • user
  • top_k
  • repeat_penalty
  • repetition_penalty

エンベディング/エンベディング v2

エンベディング API、エンベディング v2 APIのオープン AI互換性情報は次の通りです。

サポートフィールド サポートしないフィールド CLOVA Studio専用のフィールド
  • input
  • model
  • dimensions
  • encoding_format
  • user
-