OCI会話API

OCI Conversations APIを使用して、セッション・メモリーを管理します。会話APIでは、まず会話を作成し、次にレスポンスAPIリクエストに会話IDを含めます。これにより、ターンをまたいで再利用できる専用の会話オブジェクトが作成されます。

ノート

OCI Conversations APIでは、OCI OpenAI互換エンドポイントを含むOpenAI Conversations APIと同じ形式が使用されます。構文およびリクエストの詳細は、OpenAI Conversations APIドキュメントを参照してください。サポートされていないプロパティについては、このページの各操作のOCIの制限事項の項を参照してください。

サポートされているAPIエンドポイント

ベースURL エンドポイント・パス 認証
https://inference.generativeai.${region}.oci.oraclecloud.com/openai/v1 /conversations APIキーまたはIAMセッション

${region}を、us-chicago-1などのサポートされているOCIリージョンに置き換えます。

リクエスト形式はOpenAIと互換性がありますが、認証ではOCI資格証明が使用され、リクエストはOCI生成AI推論エンドポイントを介してルーティングされ、リソースと実行はOCIに残ります。

ヒント

このAPIを使用する前の設定ステップについては、QuickStartを参照してください。

認証

OCI OpenAI互換エンドポイントには、次の2つの方法でアクセスできます。

テストおよび早期開発にAPIキーを使用します。本番ワークロードおよびOCI管理環境には、IAMベースの認証を使用します。

会話の作成

POST /conversations

参照

会話の作成

Pythonの例:

# create a conversation
conversation = client.conversations.create(
   ...
)
print(conversation.id)
OCIの制限事項
なし

会話の取得

GET /conversations/{conversation_id}

参照

会話の取得

Pythonの例:

# retrieve a conversation
conversation = client.conversations.retrieve(
    "conversation_id",
)
print(conversation.id)
OCIの制限事項
なし

会話の更新

POST /conversations/{conversation_id}

参照

会話の更新

Pythonの例:

# update a conversation
updated_conversation = client.conversations.update(
   ...
)
print(updated_conversation)
OCIの制限事項
なし

会話の削除

DELETE /conversations/{conversation_id}

参照

会話の削除

Pythonの例:

# delete a conversation
client.conversations.delete(
    "conversation_id"
)
OCIの制限事項
なし

最初の会話の作成

次の例では、OCI OpenAI互換エンドポイント、OCI Generative AI APIキーおよびプロジェクトOCIDとともにOpenAI SDKを使用します。

from openai import OpenAI

client = OpenAI(
    base_url="https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/openai/v1",
    api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    project="ocid1.generativeaiproject.oc1.us-chicago-1.xxxxxxxx",
)

# create a conversation
conversation = client.conversations.create(
    metadata={"topic": "offsite"}
)
print("Conversation ID:", conversation.id)

# first question
response1 = client.responses.create(
    model="openai.gpt-oss-120b",
    input="Give me three ideas for a team offsite.",
    conversation=conversation.id,
)
print("Response 1:", response1.output_text)

# second question
response2 = client.responses.create(
    model="openai.gpt-oss-120b",
    input="Make the second idea more budget friendly.",
    conversation=conversation.id,
)
print("Response 2:", response2.output_text)

この例では、以下のようになります。

  • base_urlは、OCI OpenAI互換エンドポイントを指します。
  • client.responses.create(...)は、OCIレスポンスAPIをコールします。
  • projectは、リクエスト用にすでに作成されているOCI生成AIプロジェクトを識別します。