Mairaの評価
概要
Mairaは、会話の正確さに基づいて評価を行い、スコアを付けることができます。
会話の評価を実行する方法は2つあります。
- 各会話の後に自動的に評価を実行する
- 指定された会話に対して手動で評価を実行する
会話とは?
POST /v1/gpt/ask
にクエリとともにリクエストを送信し、応答を受け取ると、それが1つの 会話 と見なされます。各会話には conversation_id
、query
、response
がその他の多くの情報とともにあります。
conversation_idを見つける方法
conversation_id
を取得する方法は2つあります。:
- エンドポイント
POST/ v1/gpt/ask
またはPOST/ v1/gpt/ask/vision
にアクセスすると、レスポンスボディ内にその会話のconversation_id
を見つけることができます。 - エンドポイント
/v1/gpt/conversations
にアクセスすると、指定された時間範囲とフィルターに基づくすべての会話のリストとその詳細が返され、その中にconversation_id
も含まれます。このチュートリアルの下部にある例を参照してください。
評価の仕組み
Maira Integration
のチュートリアルで見たように、会話には2つのタイプがあります:
question
- 与えられたクエリや質問に対して、以前のコンテキストや会話を考慮せずに回答します。chat
- 以前のコンテキストや会話を考慮して、クエリに回答します。
question
タイプの会話を評価する際、評価スコアはクエリと応答生成に使用されたドキュメントとの関連性に基づいて提供されます。
chat
タイプの会話を評価する際、評価スコアはクエリと応答生成に使用されたドキュメントとの関連性に加え、以前のコンテキストや会話との関連性にも基づいて提供されます。
したがって、回答生成のために参照された各ドキュメントに対してスコアが提供されます(下部の例を参照)。
自動評価
各会話の評価を自動的に実行するには、プロフィール設定で "is_auto_evaluation": true
と設定する必要があります(「プロフィール」チュートリアルを参照)。その後、そのプロフィールの profile_id
を使用して POST/v1/gpt/ask
にリクエストを送ると(Maira 統合チュートリアルを参照)、会話が自動的にトレーニングされます。
マニュアル評価
会話の評価をマニュアルで実行するには、エンドポイントPOST/v1/gpt/conversations/evaluations
を使用します。
このエンドポイントのリクエストボディ例は以下の通りです。
{
"conversation_id": "string",
"start_date": "2032-01-01",
"end_date": "2032-12-31"
}
注意
- 単一の会話を評価するには:
conversation_id
を提供します。 - 日付範囲内で複数の会話を評価するには:
start_date
とend_date
の両方を提供します。 conversation_id
またはstart_date
とend_date
の両方のいずれかを提供します。- 両方の提供があった場合、日付範囲のフィルタリングが優先されます。
「会話」と「評価スコア」の例
以下は、GET /v1/gpt/conversations/{conversation_id}
エンドポイントのレスポンス例です。
request_body
セクションの下に、POST /v1/gpt/ask
またはPOST /v1/gpt/ask/vision
を通じてMairaに送信された完全な"プロンプト"が表示されており、"クエリ"と"プロフィールの詳細"が含まれています。
次に、レスポンスが表示され、どの"セクション"がこのレスポンスを生成するための参照として使用されたかが示されています。
次に、references
セクションでは、この応答生成のために参照された各ドキュメントとその詳細が表示されます。ここには similarity_score
というパラメータがあり、これは "評価"の結果です。このスコアは、どの程度の類似性あるかを示しています。
{
"detail": {
"response": {
"process_time": 16.089167355006794,
"request_body": {
"user_id": "008da05175a82d8686e7a04fe2db7393",
"member_id": "232",
"query": "これはサンプルクエリです。",
"conversation_type": "question",
"gpt_profile_id": "19473b2d-8d96-488d-9d37-6480d4fe5b81",
"context_preference": {
"preferred": {
"project_id": "12345",
"client_id": "22"
}
},
"conversation_metadata": {
"project_id": "12345",
"client_id": "22"
},
"result_includes": [],
"top_k": 20,
"keyword_ngram": 3,
"is_keyword_enabled": true,
"name": "社内情報",
"intro": "提供されたコンテキストを基に、同じ言語で、できるだけ正確に答えてください。不正確な回答をするくらいなら、短い回答や無回答の方が良いです。",
"system": "あなたは会社ABCとその製品の専門家です。",
"model": "gpt-40",
"temperature": 0,
"top_p": 1,
"frequency_penalty": 0,
"presence_penalty": 0,
"stop": [
"AI:",
"Human:"
],
"response_format": null,
"search_max_token": 5000,
"completion_token": 2500,
"vision_settings": {
"resolution": "low",
"is_image_context_enabled": true
},
"chat_history_length": 3,
"is_personalizer_only": false,
"dataset_tags": null,
"is_auto_evaluation": false,
"intro_token": 44,
"system_token": 34
},
"request_url": "/v1/gpt/ask",
"response_status": 200,
"response": "これはサンプル質問に対するサンプルレスポンスです。",
"sections": [
"sample_idx_1",
"sample_idx_12",
"sample_idx_17",
"sample_idx_55"
],
"references": [
{
"section_id": "sample_idx_1",
"index": "idx",
"content": "会社に関する多くの情報を含むサンプルデータ",
"payload": {},
"similarity_score": "85.09",
"dataset_id": "91bf8ad4-e3c2-4988-8985-51499672557a"
},
{
"section_id": "sample_idx_12",
"index": "idx",
"content": "パーソナライザーの技術仕様書",
"payload": {},
"similarity_score": "80.45",
"dataset_id": "d9f8cabc-3b3d-4ef8-bd88-abcde34f7298"
},
{
"section_id": "sample_idx_17",
"index": "idx",
"content": "一般的な問題に対する詳細なトラブルシューティングガイド",
"payload": {},
"similarity_score": "75.67",
"dataset_id": "67cd90df-dcba-4bb6-9f12-a71b9cfa8291"
},
{
"section_id": "sample_idx_55",
"index": "idx",
"content": "お客様の声",
"payload": {},
"similarity_score": "72.35",
"dataset_id": "fc74efab-2171-4e67-b8e1-3b6d8e67f5f1"
}
],
"tokens": 5588,
"usage": {
"completion_tokens": 460,
"prompt_tokens": 5128,
"total_tokens": 5588,
"completion_tokens_details": {
"reasoning_tokens": 0
},
"query_tokens": 168
},
"conversation_id": "fdc20c1a-0761-425b-a2a0-b0621786e8a2",
"gpt_profile_id": "19473b2d-8d96-488d-9d37-6480d4fe5b81",
"conversation_context": [],
"created_at": "2024-09-22T13:16:36.274173+09:00"
}
}
}