GitLab Duo Chat補完API
このAPIは、GitLab Duo Chatの応答を生成するために使用されます:
- GitLab.comでは、このAPIは内部使用のみです。
- GitLab Self-Managedでは、
access_rest_chatという名前の機能フラグでこのAPIを有効にできます。
前提条件:
- GitLabチームメンバーである必要があります。
チャットの応答を生成する
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- コンテキスト要素のカテゴリ。有効な値はfile、merge_request、issue、または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..."