GitLab Duo ChatのAPI
このAPIは、GitLab Duo Chatの応答を生成するために使用されます:
- GitLab.comでは、このAPIは内部使用のみを目的としています。
- GitLabセルフマネージドでは、
access_rest_chatという名前の機能フラグでこのAPIを有効にできます。
前提要件:
- GitLabチームメンバーである必要があります。
チャット応答を生成
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
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..."