正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Duo Chat補完API

このAPIは、GitLab Duo Chatの応答を生成するために使用されます:

  • GitLab.comでは、このAPIは内部使用のみです。
  • GitLab Self-Managedでは、access_rest_chatという名前の機能フラグでこのAPIを有効にできます。

前提条件:

チャットの応答を生成する

GitLab Duo Chatの質問に対する応答を生成します。

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

POST /chat/completions

このエンドポイントへのリクエストは、AIゲートウェイにプロキシされます。

サポートされている属性は以下のとおりです:

属性必須説明
content文字列はいチャットに送信された質問。
resource_type文字列いいえチャットの質問とともに送信されるリソースのタイプ。
resource_id文字列、整数いいえリソースのID。リソースID(整数)またはコミットハッシュ(文字列)にできます。
referer_url文字列いいえリファラーURL。
client_subscription_id文字列いいえクライアントサブスクリプションID。
with_clean_historyブール値いいえリクエストの前後で履歴をリセットするかどうかを示します。
project_id整数いいえプロジェクトID。resource_typeがコミットの場合に必須です。
additional_context配列いいえこのチャットリクエスト用の追加コンテキスト項目の配列。この属性が受け入れるパラメータのリストについては、コンテキスト属性を参照してください。

コンテキスト属性

context属性は、以下の属性を持つ要素のリストを受け入れます:

  • category - コンテキスト要素のカテゴリ。有効な値はfilemerge_requestissue、またはsnippetです。
  • id - コンテキスト要素のID。
  • content - コンテキスト要素のコンテンツ。値はコンテキスト要素のカテゴリによって異なります。
  • metadata - このコンテキスト要素のオプションの追加メタデータ。値はコンテキスト要素のカテゴリによって異なります。

リクエスト例:

curl --request POST \
  --header "Authorization: Bearer <YOUR_ACCESS_TOKEN>" \
  --header "Content-Type: application/json" \
  --data '{
      "content": "how to define class in ruby",
      "additional_context": [
        {
          "category": "file",
          "id": "main.rb",
          "content": "class Foo\nend"
        }
      ]
    }' \
  --url "https://gitlab.example.com/api/v4/chat/completions"

レスポンス例:

"To define class in ruby..."