ã¯ããã«
ãã®èšäºã¯ Google ADK ã«ãããã«ããšãŒãžã§ã³ã瀟å ITãã«ããã¹ã¯æ§ç¯ ãããŒãã«ããå š4åã·ãªãŒãºã®ç¬¬4åã§ãã
| å | ããŒã |
|---|---|
| 第1å | Gemini CLI ã§ãšãŒãžã§ã³ããåãããŠã¿ã |
| 第2å | ADK ã§ãã«ããšãŒãžã§ã³ããæ§ç¯ã Google Cloud ã«ãããã€ãã |
| 第3å | ADK ãã«ããšãŒãžã§ã³ãã BigQuery ãšé£æºããã |
| 第4åïŒæ¬èšäºïŒ | Gen AI evaluation service ã§ ADK ãã«ããšãŒãžã§ã³ãã®å¿çåè³ªãæž¬ã |
第3åãŸã§ã§ãã«ãŒã¿ãŒã»FAQæ€çŽ¢ã»ãšã¹ã«ã¬ãŒã·ã§ã³ã®3ã€ã®ãšãŒãžã§ã³ãã BigQuery ãšé£æºããŠåããinquiry_log ã«åãåããå±¥æŽãæ®ãç¶æ
ã宿ããŸããã
æå
ã§åããéããã ãããããŸããã£ãŠãããããã«ã¯èŠããŸãã
ãããããã®ç¶æ
ã§ã¯ã©ã®çšåºŠããŸããã£ãŠããã®ããã©ãããæ¹åãã¹ããªã®ãã説æã§ããŸããã
æ¬èšäºã§ã¯ Gen AI Evaluation Service ã䜿ãããã«ããšãŒãžã§ã³ãã®å¿çå質ã3ã€ã®è»žã§å®éè©äŸ¡ããŸãã
æçµçã«ãè€æ°ã®ææšã§å®æž¬å€ãæã€ â æ¹åã®åªå
é äœãã€ãããããç¶æ
ã«æã£ãŠãããŸãã
äœãè©äŸ¡ãããïŒ3軞ïŒ
瀟å
ITãã«ããã¹ã¯ã®ãã«ããšãŒãžã§ã³ãã§ãå質ããšèšã£ããšããå®ã¯1ã€ã®æ°åã«ã¯åãŸããŸããã
æäœéãæ¬¡ã®3ã€ã®è»žã§å¥ã
ã«æž¬ãå¿
èŠããããŸãã
| 軞 | 枬ãããããš | è©äŸ¡æ¹æ³ |
|---|---|---|
| â ã«ãŒãã£ã³ã°ç²ŸåºŠ | ã«ãŒã¿ãŒãæ£ãããšãŒãžã§ã³ãã«æ¯ãåããã | Exact MatchïŒæåŸ å€ vs 宿ž¬å€ïŒ |
| â¡ åçå質 | FAQæ€çŽ¢ãšãŒãžã§ã³ãã®åçã質åã«å¯ŸããŠé©åã | Gen AI Evaluation ã® coherenceïŒéŠå°Ÿäžè²«æ§ãæšæºã¡ããªã¯ã¹ïŒ+ faq_groundednessïŒFAQ ã«åºã¥ãããã«ã¹ã¿ã ã¡ããªã¯ã¹ïŒ+ expected_faq_id ã® Exact MatchïŒèªåãã§ãã¯ïŒ |
| ⢠ãã©ãŒã«ããã¯å€å® | 解決äžèœãªè³ªåãæ£ãããšã¹ã«ã¬ãŒã·ã§ã³ã§ããã | Exact MatchïŒexpected_resolved vs 宿ž¬å€ïŒ |
3軞ã«åããã®ã¯ãããããã¹ã³ã¢ãèœã¡ãæã®æ¹åãã€ã³ããéã ããã§ãã
ã«ãŒãã£ã³ã°ç²ŸåºŠãäœããã° instruction ãã«ãŒã¿ãŒåŽã®å€æããžãã¯ãçŽããåçå質ãäœããã° FAQ ã®äžèº«ã instruction ãçŽãã
ãã©ãŒã«ããã¯å€å®ãçããã°ãè¿·ã£ãããšã¹ã«ã¬ãã®ãã㪠instruction ã匷åãããäžã€ã®ç·åã¹ã³ã¢ã«ãŸãšããŠããŸããšãã©ããçŽãã°ããããèŠããªããªããŸãã
è©äŸ¡ããŒã¿ã»ããã®èšèš
12 ã±ãŒã¹ã®å èš³
ãªããä»åã®12ã±ãŒã¹ã¯è©äŸ¡èšèšã説æããããã®å°èŠæš¡ãªæ€èšŒããŒã¿ã»ããã§ãã
ãã®ãããããã§ã®ç²ŸåºŠã¯æ¬çªå
šäœã®å質ãçµ±èšçã«ä¿èšŒãããã®ã§ã¯ãªããæ¹åãã€ã³ããçºèŠããããã®ããŒã¹ã©ã€ã³ãšããŠæ±ããŸãã
| çš®å¥ | ã±ãŒã¹æ° | åè |
|---|---|---|
第3åã® inquiry_log ãšåãã±ãŒã¹ |
4 | ã·ãªãŒãºéã®é£ç¶æ§ |
| ãšããžã±ãŒã¹ïŒèª€å€å®èªçºã»åé·/極ç質åã»æ°ã«ããŽãªçïŒ | 8 | ãšãŒãžã§ã³ããåãããŒããããã±ãŒã¹ãçãåºã |
ãªãããã以éç»å Žãã NW-001 AC-001 ãªã©ã® FAQ ID ã¯ã第3åã§äœã£ã faq_master ããŒãã«ã®äž»ããŒã§ããã«ããŽãªç¥å·ïŒNWïŒãããã¯ãŒã¯ïŒACïŒã¢ã«ãŠã³ãïŒHWïŒããŒããŠã§ã¢ïŒSWïŒãœãããŠã§ã¢ïŒïŒ é£çªã®åœ¢åŒã§ãäŸãã° AC-001 ã¯ããã¹ã¯ãŒããå¿ããïŒã¢ã«ãŠã³ããããã¯ãããããšãã FAQ ãæããŸãã
ãšããžã±ãŒã¹ã¯æå³çã«ããšãŒãžã§ã³ããåãããŒããããªåãåããããæ··ããŠããŸããäŸãã°ïŒ
- C05: ãæ°ããã¢ã«ãŠã³ããäœæããŠã»ããã â ãã¢ã«ãŠã³ãããšããããŒã¯ãŒãã«åŒã£ããã£ãŠ AC-001ïŒãã¹ã¯ãŒãå¿ãïŒã«èª€ãããããªãã
- C07: ãããªã³ã¿ãŒã®ãããŒãåããã®ã§æ³šæãããã â ãããªã³ã¿ãŒãããŒã¯ãŒãã§ HW-001ïŒå°å·ã§ããªãïŒã«èª€ãããããªããïŒå®æ ã¯èª¿éç³»ïŒ
- C08: ã瀟å Wi-Fi ãçªç¶å šå¡ç¹ãããªããªã£ãã â Wi-Fi ããŒã¯ãŒãã§ NW-002 ã«è¡ããããããšããå šå¡ããšãã圱é¿ç¯å²ã§å šç€Ÿé害æ±ãããã
- C10: åé·ãªå眮ãã§è³ªåããã±ãŒã¹ â é·æã®äžããæå³ãæŸããã
- C11: ãTeams ã®ãã£ã³ãã«äœææš©éãã»ããã â Teams ããŒã¯ãŒãã§ SW-002 ã«è¡ããããããšãæš©é管çãšããŠå¥æ¡ä»¶æ±ãããã
eval_dataset.jsonl ã®ã¹ããŒã
åã±ãŒã¹ã« ground truthïŒæåŸ å€ïŒ ãš contextïŒFAQ 解決æã®åç §ããã¹ãïŒ ãæãããŸãã
{
"case_id": "C01",
"question": "VPN ã«æ¥ç¶ããããšãããšèªèšŒãšã©ãŒãåºãŠæ¥ç¶ã§ããŸãã",
"expected_category": "ãããã¯ãŒã¯ç³»",
"expected_resolved": true,
"expected_faq_id": "NW-001",
"expected_routed_to": "faq_searcher_agent",
"context": "以äžã®æé ã詊ããŠãã ããã\n1. Caps Lock ããªãã«ãªã£ãŠããã確èªãã\n..."
}
context ã¯å¯Ÿå¿ãã FAQ ã® answer ãå
¥ããŸããåŸè¿°ããã«ã¹ã¿ã è©äŸ¡ã¡ããªã¯ã¹ïŒfaq_groundednessïŒããå¿çããã® context ã«åºã¥ããŠãããããå€å®ããããã® reference ã«ãªããŸãããšã¹ã«ã¬ãŒã·ã§ã³æåŸ
ã±ãŒã¹ïŒexpected_resolved=falseïŒã§ã¯ context ã¯ç©ºã«ããŠãããŸãã
è©äŸ¡ã¡ããªã¯ã¹ã®éžã³æ¹
æšæºã¡ããªã¯ã¹ã詊ããã groundedness ãå šä»¶ 0 ã ã£ã
æå㯠Gen AI Evaluation ã®æšæºã¡ããªã¯ã¹ã ãã§æžãŸããããšèããŸããã
from vertexai.evaluation import EvalTask, MetricPromptTemplateExamples metrics = [ MetricPromptTemplateExamples.Pointwise.COHERENCE, MetricPromptTemplateExamples.Pointwise.GROUNDEDNESS, ]
ãšãããå®è¡ããŠã¿ããš groundedness ãå
šä»¶ 0.0ãstd ã 0.0 ãšããäžèªç¶ãªçµæã«ãåå ã調ã¹ããšãæšæº GROUNDEDNESS ã®ããã³ããã«ã¯æ¬¡ã®ããã«æžãããŠããŸããã
groundedness, which measures the ability to provide or reference information included only in the user prompt.
æ¬èšäºå·çæç¹ã§ç¢ºèªããæšæº GROUNDEDNESS ã®ãã³ãã¬ãŒãã§ã¯ãuser prompt ã«å«ãŸããæ å ±ãåç §ã§ããŠããããè©äŸ¡ããèšèšã«ãªã£ãŠããŸããã
ãã®ãããä»åã®ããã« FAQ ã® answer ã context ãšããŠå¥éæãããæ§æã§ã¯ãæåŸ ããè©äŸ¡ã«ãªããŸããã§ããã
ãŠãŒã¶ãŒã®è³ªåã¯çãïŒãVPN ã«æ¥ç¶ã§ããŸãããïŒãå¿çã¯é·ãïŒFAQ ã®æé ïŒãªã®ã§ãæšæºã¡ããªã¯ã¹ã§ã¯ 0 ã«ãªã£ããšèããããŸãã
ã«ã¹ã¿ã pointwise ã¡ããªã¯ã¹ãæžã
ããã§ PointwiseMetric ã§ã«ã¹ã¿ã ã¡ããªã¯ã¹ãå®çŸ©ããŸããã
from vertexai.evaluation import PointwiseMetric, PointwiseMetricPromptTemplate
faq_groundedness = PointwiseMetric(
metric="faq_groundedness",
metric_prompt_template=PointwiseMetricPromptTemplate(
criteria={
"groundedness": (
"The response should be based only on the FAQ context provided. "
"It must not introduce facts, URLs, system names, or contact "
"information that are absent from the FAQ context."
),
},
rating_rubric={
"5": "Fully grounded in the FAQ context. No extra information.",
"3": "Mostly grounded but introduces minor reformulations or extras.",
"1": "Largely diverges from the FAQ context or fabricates information.",
},
input_variables=["question", "context", "response"],
),
)
input_variables ã§ question / context / response ã® 3 ã€ãæå®ãããšãè©äŸ¡ããŒã¿ã»ããåŽã«ååã®åãçšæããã ãã§ãèªåçã«ããã³ããã«å·®ã蟌ãŸããŸãã
æçµçã«äœ¿ãã¡ããªã¯ã¹ã¯ coherenceïŒæšæºïŒ+ faq_groundednessïŒã«ã¹ã¿ã ïŒ+ expected_faq_id ã® Exact Match ã® 3 çš®é¡ã«ãªããŸããã
è©äŸ¡å®è£ ã®ãã¢
è©äŸ¡å¯Ÿè±¡ã®ãšãŒãžã§ã³ãã¯ãåãããã€ã®æéãšã³ã¹ããç¯çŽãããããADK ã® Runner ã䜿ã£ãŠæå
ã®ããã»ã¹ããå®è¡ããŸããRunner 㯠ADK ã®å®è¡ã«ãŒããæ
ãã³ã³ããŒãã³ãã§ãrun_async() ã«ãããšãŒãžã§ã³ãå®è¡äžã®ã€ãã³ãã鿬¡ååŸã§ããŸãã
ä»åã¯ãã®ã€ãã³ããããæçµå¿çã ãã§ãªã function_call / function_response ã®æ
å ±ãæŸããŸãã
è©äŸ¡ã«å¿ èŠãªã¡ã¿ããŒã¿ã ADK ã€ãã³ãããåãåºã
ãšãŒãžã§ã³ãã®å¿çããã¹ãã ãã§ã¯ãã«ãŒãã£ã³ã°å ã»ã«ããŽãªã»FAQ ID ãšãã£ãã¡ã¿ããŒã¿ãåããŸãããããã㯠ADK ã®ã€ãã³ãããçŽæ¥æŸããŸãã
async for event in runner.run_async(...): for part in event.content.parts: # 1. log_inquiry ã®åŒæ°ããã«ããŽãªã»routed_toã»resolved ãååŸ if part.function_call and part.function_call.name == "log_inquiry": log_args = dict(part.function_call.args) # 2. search_faq ã®æ»ãå€ãã FAQ ID ãæœåº if part.function_response and part.function_response.name == "search_faq": m = re.search(r"FAQ ID:\s*([A-Z]+-\d+)", str(part.function_response.response)) if m: faq_id = m.group(1) # 3. å¿çããã¹ãã¯éè€æé€ãã€ã€èç© if part.text and part.text not in seen_texts: response_text_parts.append(part.text) seen_texts.add(part.text)
æåŸã®éè€æé€ããã€ã³ãã§ããADK ã®èŠªãšãŒãžã§ã³ããšåãšãŒãžã§ã³ãã¯åã text ãæµãããšããããããçŽ çŽã«èç©ãããšå¿çã2åç¹°ãè¿ããããŸãŸè©äŸ¡ã«æµããŠããŸããŸãã
Gen AI Evaluation ã®åŒã³åºã
eval_df = pd.DataFrame([
{
"prompt": r["question"], # COHERENCE çš
"question": r["question"], # ã«ã¹ã¿ã faq_groundedness çš
"response": r["actual_response"],
"context": r["context"],
}
for r in faq_results
])
eval_task = EvalTask(
dataset=eval_df,
metrics=[
MetricPromptTemplateExamples.Pointwise.COHERENCE,
faq_groundedness,
],
)
result = eval_task.evaluate()
è¿ã£ãŠãã result.summary_metrics ã«éçŽã¹ã³ã¢ãresult.metrics_table ã«åã±ãŒã¹ã®ã¹ã³ã¢ãå
¥ããŸãã12ã±ãŒã¹åã®è©äŸ¡ã¯çŽ 20 ç§ã§å®äºããŸããã
å®è¡çµæ
æ°åãµããª
========== è©äŸ¡çµæãµã㪠========== ç·ã±ãŒã¹æ°: 12 â ã«ãŒãã£ã³ã°ç²ŸåºŠ: 83.3%ïŒ10/12ïŒ â¡ FAQ ID äžèŽç: 80.0%ïŒFAQ解決ãæåŸ ããã5ã±ãŒã¹äž 4ä»¶äžèŽïŒ ⢠ãã©ãŒã«ããã¯å€å®ç²ŸåºŠ: 83.3%ïŒ10/12ïŒ ãåçå質ã coherence/mean: 4.0 coherence/std: 1.41 faq_groundedness/mean: 2.6 faq_groundedness/std: 0.89
coherenceïŒéŠå°Ÿäžè²«æ§ïŒã¯ 4.0 ãšé«ãã§ããäžæ¹ãfaq_groundedness 㯠5段éè©äŸ¡ã®äžã§ã¯äœãã§ããã
å¿çãèªã¿ãããæŽããããšã¯ LLM ã®åŸæåéã§ãããFAQ ãžã®å¿ å®ãã«ã¯æ¹åäœå°ãããããšãåãããŸãã
誀å€å®ããã±ãŒã¹ã®åæ
ã«ãŒãã£ã³ã°ãšãã©ãŒã«ããã¯ã§èª€å€å®ãåºãã®ã¯2ä»¶ãã©ã¡ãããšããžã±ãŒã¹ã§ããã
C08: ã瀟å Wi-Fi ãçªç¶å šå¡ç¹ãããªããªããŸããã
| æåŸ | 宿ž¬ | |
|---|---|---|
| ã«ãŒãã£ã³ã° | ãšã¹ã«ã¬ãŒã·ã§ã³ïŒå šç€Ÿéå®³ïŒ | FAQæ€çŽ¢ïŒNW-002 ã§åçïŒ |
LLM ã¯ãWi-FiããšããããŒã¯ãŒãã«åå¿ã㊠NW-002 ããããããããã®ãŸãŸåçããŠããŸããŸããããå
šå¡ç¹ãããªãïŒåœ±é¿ç¯å²ã倧ããïŒãšã¹ã«ã¬ãã¹ãããšããæè倿ããããŒã¯ãŒããããã«è² ãã圢ã§ãã
第3åã§è€åèªããŒã¯ãŒããæ¡çšããŠãããã³ã°ç²ŸåºŠã¯äžããã®ã§ããã圱é¿ç¯å²ã®ãããªæ¥åæèã¯å¥è»žã§èŠãå¿
èŠããããŸãã
C10: ããã€ããäžè©±ã«ãªã£ãŠãããŸããå®ã¯å é±ããâŠãã¹ã¯ãŒããå¿ããŠâŠã©ãããã°ãªã»ããã§ããã®ã§ããããã
| æåŸ | 宿ž¬ | |
|---|---|---|
| ã«ãŒãã£ã³ã° | FAQæ€çŽ¢ïŒAC-001ïŒ | ãšã¹ã«ã¬ãŒã·ã§ã³ |
åé·ãªå眮ãã§è³ªåããã±ãŒã¹ãæ¬æ¥ã¯ AC-001ïŒãã¹ã¯ãŒããªã»ããïŒã§ããããã¹ããšãããããšã¹ã«ã¬ã«æµããŸããããæ¥åãæ»ã£ãŠããŸã£ãŠããŸããã®ãããªå眮ãããšã¹ã«ã¬ãèªçºããå¯èœæ§ããããŸãã
äžèŠèª€å€å®ã ãå®ã¯è³¢ãåäœïŒC07ã»C11ïŒ
éã«è峿·±ãã£ãã®ã C07ïŒããªã³ã¿ãŒãããŒæ³šæïŒãš C11ïŒTeams ã®ãã£ã³ãã«äœææš©éïŒã§ããã©ã¡ãã search_faq ãããŒã¯ãŒãã§äžæŠ FAQ ããããããããã®ã®ããšãŒãžã§ã³ããå
容ãèŠãŠãããã¯å°å·ã§ããªãåé¡ã§ã¯ãªã泚æã®è©±ããããã¯æš©é管çã§å¥æ¡ä»¶ããšå€æãããšã¹ã«ã¬ã«æ¯ãçŽããŸããã
æ€çŽ¢ã匱ãããã«ãªã£ãŠããæçµå¿çã§ LLM ãæ£ããæ¯ãåããæåã確èªã§ããè¯ãäŸã§ãã
coherence 4.0 / faq_groundedness 2.6 ã®å·®ã¯äœã
coherence ã¯æã®è«ççãªæµããèŠãã®ã§åœ±é¿ãåãã«ããäžæ¹ãfaq_groundedness ã¯ãFAQ context ã«ãªã衚çŸãæ··ãã£ããããå³ããèŠãŸãã
å¿çã«ã以äžã®æé ãã詊ããã ããïŒãã®ãããªäžå¯§èªãžã®èšãæããå
¥ãããFAQ ID: NW-001ã ã®ãã㪠ID 衚èšãå¿çã®æ¬æäžã«æ··å
¥ããããšãã£ãèŠå ã§æžç¹ãããæ§é ã§ãã
2.6 ãšããã¹ã³ã¢ã¯å®å
šãªéžè±ïŒãã«ã·ããŒã·ã§ã³ïŒã§ã¯ãªããèªç¶ãªå¿ççæã®çµæãšããŠäžå®ã®èšãæããå
¥ã£ãç¶æ
ãšèªããŸãã
ãFAQ ãäžåäžå¥ã³ããããããã®ãç®çãªã instruction ã峿 Œåããèªã¿ããããåªå
ããŠèšãæãã蚱容ããããªãçŸç¶ç¶æããšæ¹éå€æã®ææã«ãªããŸãã
çµæã®è§£éãšæ¹åã®æ¹åæ§
ããã§ã®æ°å€ã¯ãåè¿°ã®12ã±ãŒã¹ã«å¯ŸããããŒã¹ã©ã€ã³ãšããŠè§£éããŸãã
| ææš | 宿ž¬å€ | è§£é |
|---|---|---|
| ã«ãŒãã£ã³ã°ç²ŸåºŠ 83.3% | åçŽãªèª€ãããïŒC08ïŒãšåçœ®ãæ··å ¥ïŒC10ïŒãåå | instruction ã§ã圱é¿ç¯å²ã»å眮ãã»æ¬é¡ã®åãåããã匷åããäœå° |
| FAQ ID äžèŽç 80% | FAQ解決æåŸ ã±ãŒã¹ã®ãã¡ C10 ã誀ã«ãŒãã£ã³ã° | ã«ãŒãã£ã³ã°ç²ŸåºŠã®æ¹åãšã»ãŒé£å |
| ãã©ãŒã«ããã¯å€å® 83.3% | C08 ã§ãWi-Fi å šå¡ããèŠéãã | 圱é¿ç¯å²ïŒå šå¡/å šç€ŸïŒãå€å®ããã«ãŒã«ã instruction ã«è¿œå ããäœå° |
| coherence 4.0 | å¿çã¯èªã¿ããã | ç¶æ |
| faq_groundedness 2.6 | å¿çã« FAQ context å€ã®æ å ±ãæ··å ¥ïŒFAQ ID 衚èšã»è£è¶³è¡šçŸãªã©ïŒ | search_faq ã®æ»ãå€ãã FAQ ID 衚èšãé€ãããŸãã¯å¿çæŽåœ¢ã«ãŒã«ã instruction ã§å³æ Œå |
ç¹ã«ã圱é¿ç¯å²ïŒå šå¡/å šç€ŸïŒã¯ããŒã¯ãŒããããã§ã¯æããããªãããšããæ°ä»ãããè©äŸ¡ãéããŠæ°åä»ãã§èšããããã«ãªããŸããã
ãŸãšããšã·ãªãŒãºå šäœã«ã€ããŠ
第4åã§éæããã®ã¯ããã«ããšãŒãžã§ã³ãã®åè³ªãæ°åã§ç¶ç¶çã«ç¢ºèªããããã®åå°ãäœã£ãããš ã§ãã
- ã«ãŒãã£ã³ã°ã»åçã»ãã©ãŒã«ããã¯ã®3軞ã§å¥ã ã«æž¬ãããšã§ãæ¹åã®åªå é äœãã€ããããããã«ãªã£ã
- Gen AI Evaluation ã®æšæºã¡ããªã¯ã¹ïŒ
coherenceïŒãšã«ã¹ã¿ã ã¡ããªã¯ã¹ïŒfaq_groundednessïŒãçµã¿åãããã°ãæ¥åèŠä»¶ã«ãŽã£ããå¯ããè©äŸ¡ãã§ãã - è©äŸ¡çµæãèŠãããšã§ã第3åãŸã§ã¯èŠããŠããªãã£ã匱ç¹ïŒåœ±é¿ç¯å²ã®å€å®ã»åé·ãªå眮ãïŒãçãåºããã
ã·ãªãŒãºå šäœã®ç·æ¬
å
š4åãéããŠã瀟å
ITãã«ããã¹ã¯ã®ãã«ããšãŒãžã§ã³ããæ®µéçã«äœã£ãŠããŸããã
æåã¯ãã¡ã€ã«1æããå§ããæ¬¡ã«ã³ãŒãããŒã¹ã®ãã«ããšãŒãžã§ã³ããžåºãããã®åŸ BigQuery ãšé£æºããŠããŒã¿é§åã®æ§æã«ããæåŸã«è©äŸ¡ã§åè³ªãæ°å€åãããšããæµãã§ãã
| å | ã§ããããã«ãªã£ãããš |
|---|---|
| 第1å | Gemini CLI ã« GEMINI.md 1ææž¡ãã°ãšãŒãžã§ã³ããåã |
| 第2å | ADK ã§ã«ãŒã¿ãŒã»FAQæ€çŽ¢ã»ãšã¹ã«ã¬ã®3ãšãŒãžã§ã³ãæ§æãäœã£ãŠ Google Cloud ã«ããã〠|
| 第3å | FAQ ãããŒãã«åããåãåããå±¥æŽã inquiry_log ã«è²¯ããããŒã¿åºç€ãæŽå |
| 第4å | è©äŸ¡ããŒã¿ã»ãããš Gen AI Evaluation ã§å質ã3è»žã§æ°å€å |
ãããŸã§æ¥ããšãå®éçšã«ä¹ããããã®æºåãäžéãæã£ãç¶æ
ã§ãã
次ã®ã¹ãããã¯ãè©äŸ¡çµæã«åºã¥ã instruction ã®æ¹åã»FAQ ã®æ¡å
ã»å®ãŠãŒã¶ãŒããã®æºè¶³åºŠãã£ãŒãããã¯ïŒsatisfaction_score ã«ã©ã ïŒã®åéãåãæ¹åãµã€ã¯ã«ã«ãªããŸãã
LLM ããŒã¹ã®ãšãŒãžã§ã³ãã¯ãåããããŸã§ã¯æ¯èŒçããè¡ããŸããããå質ãæ
ä¿ãç¶ããããã§ãŒãºã«å
¥ã£ãç¬éã«è©äŸ¡ããŒã¿ã»ãããšè©äŸ¡ææšãå¿
é ã«ãªããŸãã
ãŸããä»åã¯12ã±ãŒã¹ã®å°èŠæš¡ãªè©äŸ¡ã§ããããå®éçšã«è¿ã¥ããã«ã¯ãå®éã®inquiry_logãã倱æäŸã»ææ§ãªåãåããã»é »åºã«ããŽãªã宿çã«æœåºããè©äŸ¡ããŒã¿ã»ãããžè¿œå ããŠããå¿
èŠããããŸãã
è©äŸ¡ããŒã¿ã»ããèªäœãè²ãŠãããšã§ãinstruction æ¹åã FAQ æ¡å
ã®å¹æãç¶ç¶çã«æ¯èŒã§ããŸãã
æ¬ã·ãªãŒãºããã®ã¹ã¿ãŒãå°ç¹ãšããŠåèã«ãªãã°å¹žãã§ãã