ããã«ã¡ã¯ãã¢ãžã£ã€ã«äºæ¥éšã®ã¿ã¡ã®ããã§ããre:Invent 2025 ã«çŸå°åå ããŠããŸãïŒ
ãã®èšäºã¯ re:Invent ãUnified knowledge access: Bridging data with generative AI agents (AIM338)ãã®ã»ãã·ã§ã³ã¬ããŒãã§ãã
AWS ã® Senior Solutions Architect ã§ãã Aneel Murari ãããš Rafia Tapia ããããæ§é åããŒã¿ãšéæ§é åããŒã¿ã AI ãšãŒãžã§ã³ãã§çµ±åçã«ã¢ã¯ã»ã¹ããæ¹æ³ã«ã€ããŠãå®éã«ã³ãŒããæžããªãã玹ä»ããŸããã
æŠèŠ
ãã®ã»ãã·ã§ã³ã§ã¯ãäŒæ¥ã«èç©ãããæ§é åããŒã¿ïŒAurora ãªã©ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ïŒãšéæ§é åããŒã¿ïŒS3 äžã® PDF ãããã¥ã¡ã³ãïŒããåäžã® AI ãšãŒãžã§ã³ãããçµ±åçã«ã¢ã¯ã»ã¹ããæ¹æ³ãèªãããŸããã
ç¹ã«å°è±¡çã ã£ãã®ã¯ãå®éã«ã©ã€ãã³ãŒãã£ã³ã°ã§åãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããšããã¢ãããŒãã§ããã¹ã©ã€ãã ãã§ã¯ãªããå®éã«åãã³ãŒããç®ã®åã§çµã¿ç«ãŠãŠããæ§åãèŠãããã®ã¯ããšãŠãåèã«ãªããŸããã
ãããªæ¹ã«ãããã
- AI ãšãŒãžã§ã³ãã®å®è£ ã«èå³ãããæ¹
- äŒæ¥å ã®æ§ã ãªããŒã¿ãœãŒã¹ãçµ±åçã«æŽ»çšããããšèããŠããæ¹
- Amazon Bedrock ãš Aurora ã䜿ã£ã RAGïŒRetrieval-Augmented GenerationïŒã·ã¹ãã ã®æ§ç¯ãæ€èšããŠããæ¹
- Strands SDK ã䜿ã£ããšãŒãžã§ã³ãéçºã«é¢å¿ãããæ¹
ç»å£è
- Aneel Murari ããïŒSenior Solutions Architect, AWSïŒ
- Rafia Tapia ããïŒSenior Solutions Architect, AWSïŒ

ãªãæ§é åããŒã¿ãšéæ§é åããŒã¿ã®çµ±åãå¿ èŠãªã®ã
ã»ãã·ã§ã³ã¯ãäŒå Žãžã®è³ªåããå§ãŸããŸããããAI ãšãŒãžã§ã³ããæ§ç¯ããŠããããŸãã¯æ¬çªç°å¢ã§åãããŠããæ¹ã¯ããŸããïŒããšããåãããã«ãããªãå€ãã®æãæãããŸããã
ç¶ããŠãã©ããªããŒã¿ã䜿ã£ãŠããŸããïŒããšãã質åã§ã¯ãS3 ã®ãã¡ã€ã«ãªã©éæ§é åããŒã¿ã䜿ã£ãŠããæ¹ãšããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãªã©æ§é åããŒã¿ã䜿ã£ãŠããæ¹ã«åãããŸããã
Aneel ããã¯ãäŒæ¥ã«ã¯éå» 15ã20 幎åã®ç¥èããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«èç©ãããŠããããããäŒæ¥ã«ãããäž»èŠãªããŒã¿ã¹ãã¬ãŒãžã¡ã«ããºã ã ãšèª¬æããŸãããåæã«ãéå» 10ã15 幎ã§ã¯å€§éã®éæ§é åããŒã¿ãçæãããŠãããšè©±ããŸããã
ãã®ã»ãã·ã§ã³ã®ããŒãã¯ããŸãã«ãã®ãç°ãªããµã€ãã«åæ£ããããŒã¿ã AI ãšãŒãžã§ã³ãã§çµ±åçã«ã¢ã¯ã»ã¹ãããããšã§ããå人çã«ã¯ãå€ãã®äŒæ¥ãæ±ããŠãã課é¡ã ãšæããŸãããããŒã¿ã¯å¢ãç¶ããŠããã®ã«ãããããå¥ã ã®ã·ã¹ãã ã«åæ£ããŠããŠãçµ±åçã«æŽ»çšã§ããŠããªãã±ãŒã¹ã¯å€ããšæããŸãã
ä»åæ§ç¯ããã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£
ã»ãã·ã§ã³ã§ã¯ããã£ãªãã£ãŒå£äœåãã®ãã£ããã¢ã·ã¹ã¿ã³ããæ§ç¯ãããã¢ã玹ä»ãããŸããããã®ã¢ããªã±ãŒã·ã§ã³ã¯ã以äžã®ãããªæ§æã«ãªã£ãŠããŸãã
- UI: Streamlit ã§æ§ç¯ãããã·ã³ãã«ãªãã£ããã€ã³ã¿ãŒãã§ãŒã¹
- éæ§é åããŒã¿: Amazon Bedrock Knowledge Bases ã䜿ã£ãŠ S3 äžã®ããã¥ã¡ã³ãïŒãã£ã³ããŒã³æ å ±ãªã©ïŒã«ã¢ã¯ã»ã¹
- æ§é åããŒã¿: Aurora PostgreSQL ã«ä¿åãããäŒå¡æ å ±ãå¯ä»æ å ±ãã€ãã³ãæ å ±ã«ã¢ã¯ã»ã¹
- ãšãŒãžã§ã³ã: Strands SDK ã䜿ã£ãŠæ§ç¯ããããŠãŒã¶ãŒã®è³ªåã«å¿ããŠé©åãªããŒã¿ãœãŒã¹ãéžæããŠåçãçæ
ãŠãŒã¶ãŒã質åãæãããšããšãŒãžã§ã³ããèªåçã«ããã®è³ªåã«ã¯æ§é åããŒã¿ãå¿ èŠããéæ§é åããŒã¿ãå¿ èŠããã倿ããé©åãªããŒã¿ãœãŒã¹ã«ã¢ã¯ã»ã¹ããŠåçãè¿ããšããä»çµã¿ã§ãã
ããã¯çæ³çãªã¢ãŒããã¯ãã£ã ãšæããŸãããŠãŒã¶ãŒã¯ãã©ãã«ããŒã¿ããããããæèããå¿ èŠããªããèªç¶èšèªã§è³ªåããã ãã§çããè¿ã£ãŠãããšããã®ã¯ããŸãã«çæ AI ã®åŒ·ã¿ã掻ãããèšèšã§ããã

Strands SDK ãšã¯
ä»åã®ãã¢ã§ã¯ããšãŒãžã§ã³ãã®æ§ç¯ã« Strands SDK ã䜿ãããŠããŸãããäŒå Žã§ããStrands ã䜿ã£ãããšãããæ¹ã¯ïŒããšãã質åã«äœäººãã®æãæãããŸããã
Rafia ããã®èª¬æã«ãããšãStrands ã¯åäžãšãŒãžã§ã³ãã ãã§ãªããè€æ°ã®ãšãŒãžã§ã³ããäºãã«éä¿¡ãããã«ããšãŒãžã§ã³ãã·ã¹ãã ãæ§ç¯ã§ããŸãããŸããMCPïŒModel Context ProtocolïŒã A2A ãããã³ã«ããµããŒãããŠããŸãã
ä»åã®ã»ãã·ã§ã³ã§ã¯ãã·ã³ãã«ãªåäžãšãŒãžã§ã³ããæ§ç¯ããŸãããŠãŒã¶ãŒããããã³ãããéããããšããšãŒãžã§ã³ãã¯å éšã«æã€ããŒã«ã䜿ã£ãŠé©åãªãµãŒãã¹ãæäŸããããšããåºæ¬çãªã¢ãã«ã§ãã
ã¡ãªã¿ã«ãçŸåš Strands 㯠Python ã®ã¿ããµããŒãããŠããã®ã§ãã»ãã·ã§ã³ã§ã Python ã§ã³ãŒããæžãããŠããŸããã

Bedrock Knowledge Bases ã«ããéæ§é åããŒã¿ãžã®ã¢ã¯ã»ã¹
ãŸããéæ§é åããŒã¿ãžã®ã¢ã¯ã»ã¹æ¹æ³ã«ã€ããŠèª¬æããããŸããã
RAGïŒRetrieval-Augmented GenerationïŒã¢ããªã±ãŒã·ã§ã³ãæžããããšãããæ¹ã¯å€ããšæããŸãããåºæ¬çãªæµãã¯ä»¥äžã®éãã§ãã
- PDF ã Word ãã¡ã€ã«ããã°ãã¡ã€ã«ãªã©ã®éæ§é åããŒã¿ãçšæ
- ããããã¯ãã«ã«å€æïŒLLM ãçè§£ã§ãã圢åŒã«å€æïŒ
- ãã®ãã¯ãã«ããŒã¿ã䜿ã£ãŠãLLM ã«è³ªåå¿çããã
Bedrock Knowledge Bases ã䜿ããšããã® RAG ã€ã³ãã©ã广çãã€ç°¡åã«æ§ç¯ã§ããŸãã
ã»ãã·ã§ã³ã§ã¯ãæéã®éœåäžããã§ã« Knowledge Base ã¯äœææžã¿ã§ãããããèå³ãããæ¹ã¯ã»ãã·ã§ã³åŸã«è©±ããããŠãã ããããšæ¡å ããŠããŸãããå®éãã»ãã·ã§ã³äžã«ããKnowledge Base ã®äœãæ¹ãç¥ãããããšãã声ãããããæ°ã¯ãªãã¯ã§äœããŸãããšããåçããããŸããã
å人çã«ã¯ããã®ãæ°ã¯ãªãã¯ã§ RAG ã€ã³ãã©ãäœããããšããã®ã¯å€§ããªã¡ãªããã ãšæããŸããèªåã§ RAG ãæ§ç¯ããããšãããšããã¯ãã«ããŒã¿ããŒã¹ã®éžå®ããåã蟌ã¿ã¢ãã«ã®éžæããã£ã³ãã³ã°æŠç¥ã®èšèšãªã©ãèæ ®ãã¹ãç¹ãå€ãã§ããããã

å®éã«ã³ãŒããæžããŠæ§ç¯ããŠããéçš
ããããã¯ãå®éã«ã©ã€ãã³ãŒãã£ã³ã°ã§ AI ãšãŒãžã§ã³ããæ§ç¯ããŠããæ§åã玹ä»ãããŸãããéåžžã«å®è·µçãªå 容ã ã£ãã®ã§ããã€ã³ããçµã£ãŠç޹ä»ããŸãã
ã¹ããã 1: UI ã®éªšçµã¿ãäœã
ãŸããAneel ãã㯠VS Code ã®ã¹ããããæ©èœã䜿ã£ãŠãStreamlit ã¢ããªã®åºæ¬çãªéªšçµã¿ãäœã£ãŠãããŸããããçããã®åã§ã¿ã€ãã³ã°ããèŠçãäžããããªãã®ã§ãã¹ããããã䜿ããŸãããšèšã£ãŠãäŒå Žãããç¬ããèµ·ãããŸããã
ãã®æç¹ã§ã¯ããšãŒãžã§ã³ãã®æ©èœã¯ãŸã çµã¿èŸŒãŸããŠãããã質åãæããŠããšã©ãŒãè¿ã£ãŠããã ãã®ç¶æ ã§ãã

ã¹ããã 2: åºæ¬çãªãšãŒãžã§ã³ããäœæ
次ã«ãagent.py ãšãããã¡ã€ã«ãäœæãããšãŒãžã§ã³ãã®ã³ã¢ããžãã¯ãæžããŠãããŸãã
ãŸãã䜿çšãã LLM ã¢ãã«ãæå®ããŸããä»å㯠Claude ã¢ãã«ïŒBedrock çµç±ïŒã䜿çšããŸããStrands SDK 㯠Bedrock 以å€ã® LLM ã«ã察å¿ããŠããŸãããä»å㯠Bedrock ã® LLM ãéžæããŸããã
model_id = "claude-model-id"
次ã«ãæšè«ãã©ã¡ãŒã¿ïŒæå€§ããŒã¯ã³æ°ã枩床ãªã©ïŒãèšå®ããåºæ¬çãªãšãŒãžã§ã³ããªããžã§ã¯ããäœæããŸãã
Rafia ããã®èª¬æã«ãããšããšãŒãžã§ã³ãã®äœæã¯ãããæ°è¡ã®ã³ãŒãã§å®äºããŸãããšãŒãžã§ã³ããªããžã§ã¯ãã«ã¯ã以äžã® 2 ã€ãæž¡ããŸãã
- ã¢ãã«ãªããžã§ã¯ãïŒå ã»ã©äœæãã Claude ã¢ãã«ïŒ
- ã·ã¹ãã ããã³ãã
ãã®æç¹ã§ã®ã·ã¹ãã ããã³ããã¯éåžžã«ã·ã³ãã«ã§ããçããäœãäžããªãã§ãã ãããåãããªãå Žåã¯åãããªããšèšã£ãŠãã ããããšããå 容ã§ãã
ãã®æ®µéã§ã¯ããšãŒãžã§ã³ãã¯ã空çœã®ãã£ã³ãã¹ãã®ãããªç¶æ ã§ããŸã ç¥èœã¯çµã¿èŸŒãŸããŠããŸãããå®éã«åãããŠã¿ããšããããªãã®çµç¹ã®äŒå¡ããŒã¿ã«ã¢ã¯ã»ã¹ã§ããŸããããšããåçãè¿ã£ãŠããŸãããšã©ãŒã¯åºãŸãããããŸã å®çšçã§ã¯ãªãç¶æ ã§ããã

ã¹ããã 3: Knowledge Base ããããŒã¿ãååŸããããŒã«ã远å
次ã«ãéæ§é åããŒã¿ã«ã¢ã¯ã»ã¹ããããã®ããŒã«ã远å ããŸãã
Strands SDK ã«ã¯ãã«ã¹ã¿ã ããŒã«ãäœæã§ããæ©èœãšãããã«äœ¿ããæ¢è£œã®ããŒã«ãçšæãããŠããŸããä»åã¯ãretrieve ããŒã«ãšããæ¢è£œã®ããŒã«ã䜿çšããŸãã
ãã® retrieve ããŒã«ã¯ãBedrock Knowledge Base ã«ã¯ãšãªãæããããã®ããŒã«ã§ãã«ã¹ã¿ã ã³ãŒããæžãå¿ èŠã¯ãããŸãããå¿ èŠãªã®ã¯ãKnowledge Base ã® ID ã ãã§ãã
knowledge_base_id = "your-knowledge-base-id"
ãã® ID ã¯ãKnowledge Base ãäœæãããšãã«èªåçã«çºè¡ããããã®ã§ãretrieve ããŒã«ã¯ãã® ID ã䜿ã£ãŠã©ã® Knowledge Base ã«ã¢ã¯ã»ã¹ããã°ãããã倿ããŸãã
ãŸãããã®æ å ±ã¯ç°å¢å€æ°ãšããŠæž¡ãããšãã§ããã®ã§ãå®éã®ã³ãŒãã§ã¯ç°å¢å€æ°ã䜿ã£ãŠ Knowledge Base ID ãšãªãŒãžã§ã³æ å ±ãæž¡ããŠããŸããã
ããã§è³ªåãããããOpenSearch ãªã©ä»ã®ãã¯ãã«ã¹ãã¢ã«ãæ¥ç¶ã§ããã®ãïŒããšããå 容ã§ãããåçãšããŠã¯ããretrieve ããŒã«ã¯ Bedrock Knowledge Base å°çšã ããStrands ã®ããŒã«ã¯ã³ãã¥ããã£éçºãããŠããã®ã§ãä»ã®ããŒã¿ãœãŒã¹åãã®ããŒã«ãæ¥ã 远å ãããŠããããšçããŠããŸããã
ãã® retrieve ããŒã«ã远å ããç¶æ ã§å床ã¢ããªãèµ·åãããäŒå¡ã¯äœäººããŸããïŒããšãã質åãæãããšãä»åºŠã¯ Knowledge Base ããæ å ±ãååŸããŠåçãè¿ã£ãŠããŸããããã ãããã®æç¹ã§ã¯éæ§é åããŒã¿ããã®æ å ±ãªã®ã§ãæ£ç¢ºãªæ°åã§ã¯ãªãå¯èœæ§ããããŸãã
æ£ç¢ºãªæ°åã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ä¿åãããŠããŸããããã§æ¬¡ã®ã¹ãããã§ã¯ãæ§é åããŒã¿ã«ã¢ã¯ã»ã¹ããã«ã¹ã¿ã ããŒã«ãäœæããŸãã


ã¹ããã 4: æ§é åããŒã¿ã«ã¢ã¯ã»ã¹ããã«ã¹ã¿ã ããŒã«ãäœæ
ããããããã»ãã·ã§ã³ã®äžã§ãç¹ã«è峿·±ãéšåã§ããã
ã«ã¹ã¿ã ããŒã«ãäœæããããã«ãquery_SQL_DB.py ãšãããã¡ã€ã«ãæ°ãã«äœæããŸãããã®ããŒã«ã®åœ¹å²ã¯ã以äžã®éãã§ãã
- ãŠãŒã¶ãŒã®ããã³ãããåãåã
- ãã®ããã³ããããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããŒã¿ã§çããããã倿ãã
- çããããå Žåãé©å㪠SQL ã¯ãšãªã«å€æãã
- SQL ãå®è¡ããŠããŒã¿ãååŸãã
ã«ã¹ã¿ã ããŒã«ã Strands ã§äœ¿ããããã«ããæ¹æ³
Rafia ããã匷調ããã®ã¯ããã«ã¹ã¿ã ããŒã«ã Strands ã§äœ¿ããããã«ããã®ã¯éåžžã«ç°¡åããšããç¹ã§ãã
å¿
èŠãªã®ã¯ã颿°ãäœæãã@tool ãšããã¢ãããŒã·ã§ã³ãä»ããã ãã§ãã
@tool
def query_sql_db(question: str):
# ããŒã«ã®ããžãã¯
pass
ãã®ã¢ãããŒã·ã§ã³ãä»ããããšã§ãStrands ã¯ãã®é¢æ°ãããŒã«ãšããŠèªèããå¿ èŠã«å¿ããŠå®è¡ããããã«ãªããŸãã

å®éã®ããžãã¯ã¯ããµããŒãã¯ã©ã¹ïŒDBStructuredDataAgentïŒã«åããŠå®è£
ããŠããŸããããã®ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã§ã¯ã以äžã®æ
å ±ãæž¡ããŸãã
- Aurora ããŒã¿ããŒã¹ã® ARN
- Secrets Manager ã® ARNïŒããŒã¿ããŒã¹ã®èªèšŒæ å ±ãä¿åïŒ
- ããŒã¿ããŒã¹å
- 䜿çšãã LLM ã¢ãã«
ããã§é¢çœãã®ã¯ãããŒã«å ã§äœ¿çšãã LLM ãšããŠããšãŒãžã§ã³ãæ¬äœãšã¯ç°ãªã Nova ã¢ãã«ã䜿ã£ãŠãããšããç¹ã§ãã
Rafia ããã®èª¬æã«ãããšãããšãŒãžã§ã³ãæ¬äœã¯ Claude ã䜿ããããŒã«å ã§ã¯ Nova ã䜿ãããšããèšèšã«ããã®ã¯ããè€æ°ã®ã¢ãã«ãçšéã«å¿ããŠäœ¿ãåããããããšã瀺ããããã§ããã¢ãã«ã®è©äŸ¡ã¯ AI ã¢ããªã±ãŒã·ã§ã³æ§ç¯ã«ãããéèŠãªèŠçŽ ãªã®ã§ããããŠç°ãªãã¢ãã«ã䜿ã£ããã¢ã«ããŸããã
å®éã«ã¯ãåãã¢ãã«ã䜿ã£ãŠãåé¡ãããŸããã

ããŒã¿ããŒã¹ã¹ããŒãã LLM ã«çè§£ããã
ã«ã¹ã¿ã ããŒã«ã®äžã§æåã«ããããšã¯ãLLM ã«ããŒã¿ããŒã¹ã®ã¹ããŒããçè§£ãããããšã§ãã
PostgreSQL ã«ã¯ãã·ã¹ãã ããŒãã«ã䜿ã£ãŠããŒã¿ããŒã¹ã®ã¡ã¿ããŒã¿ïŒããŒãã«åãã«ã©ã åãããŒã¿åãªã©ïŒãååŸããä»çµã¿ããããŸãããããå©çšããŠãã¹ããŒãæ å ±ã JSON 圢åŒã§ååŸããŸãã
-- PostgreSQL ã®ã·ã¹ãã ããŒãã«ããã¹ããŒãæ å ±ãååŸããã¯ãšãª -- ïŒå®éã®ã¯ãšãªã¯çç¥ïŒ
ãã®ã¯ãšãªãå®è¡ããŠåŸãããã¹ããŒãæ å ±ã倿°ã«ä¿åããŸãã
ããã§è³ªåãããããã¹ããŒãã ãã§ååãªã®ãããµã³ãã«ããŒã¿ãå¿ èŠã§ã¯ãªããïŒããšããå 容ã§ãããåçãšããŠã¯ããããã³ããã®æžãæ¹æ¬¡ç¬¬ã§ããµã³ãã«ããŒã¿ãªãã§ãååã«æ©èœããããšçããŠããŸããã
ã·ã¹ãã ããã³ããã®çæ
次ã«ãååŸããã¹ããŒãæ å ±ã䜿ã£ãŠãã·ã¹ãã ããã³ãããåçã«çæããŸãã
ãããç¹ã«å·¥å€«ãããŠããéšåã ãšæããŸãããã·ã¹ãã ããã³ãããæåã§æžãã®ã§ã¯ãªããLLM ã«çæããããšããçºæ³ã§ãã
å ·äœçã«ã¯ãNova ã¢ãã«ã«å¯ŸããŠä»¥äžã®ãããªããã³ãããéããŸãã
ãããªãã¯ãããŒã¿ããŒã¹ã¯ãšãªçšã®ã·ã¹ãã ããã³ãããäœæãã AI ã·ã¹ãã ã§ãããã®ããŒã¿ããŒã¹ã¹ããŒãïŒJSON 圢åŒïŒã䜿ã£ãŠããŠãŒã¶ãŒã®è³ªåã«çããããã®è³¢ãããã³ãããäœæããŠãã ãããã
ããããŠçæãããããã³ããã«ã¯ãããŒã¿ããŒã¹ã®ã¹ããŒãæ å ±ãåã蟌ãŸããŠããŸãããã®ããã³ããããæ¬¡ã®ã¹ãããã§ãŠãŒã¶ãŒã®è³ªåãšçµã¿åãã㊠Claude ã¢ãã«ã«éãããšã«ãªããŸãã
ãã®ãããã³ããã LLM ã«çæãããããšããã¢ãããŒãã¯ãéåžžã«è峿·±ããšæããŸãããã¹ããŒãã倿ŽãããŠããèªåçã«æ°ããããã³ãããçæãããã®ã§ãã¡ã³ããã³ã¹ã楜ã«ãªãããã§ããã
SQL ã¯ãšãªã®çæ
次ã«ããŠãŒã¶ãŒã®è³ªåãšã¹ããŒãæ å ±ãçµã¿åãããŠãæå¹ãª SQL ã¯ãšãªãçæããŸãã
ããã§ã®ãã€ã³ãã¯ãããã¹ãŠã®è³ªåã SQL ã§çããããããã§ã¯ãªãããšããç¹ã§ãã
äŸãã°ãããŒã¿ããŒã¹ã«ã¯äŒå¡æ å ±ãã€ãã³ãæ å ±ãä¿åãããŠããŸãããããã©ã³ã¹ã®éŠéœã¯ïŒããšãã質åã«ã¯çããããŸãããLLM ã¯ããŠãŒã¶ãŒã®è³ªåãšããŒã¿ããŒã¹ã¹ããŒããç §ããåãããŠãããã®è³ªå㯠SQL ã§çãããããïŒãã倿ããŸãã
çããããå Žåã¯ãé©å㪠SQL ã¯ãšãªãçæããŸããçæããã SQL ã¯ãç¹å®ã®ããªãã¿ïŒSQL_START ãš SQL_ENDïŒã§å²ãŸãã圢ã§è¿ãããŸããããã«ãããLLM ã®åºåãã SQL éšåã ããç°¡åã«æœåºã§ããŸãã
SQL ã®å®è¡
æåŸã«ãçæããã SQL ãå®è¡ããŠããŒã¿ãååŸããŸãã
ããã¯ç¹ã«è€éãªããšã¯ãªããPython ã® psycopg2 ãªã©ã®ã©ã€ãã©ãªã䜿ã£ãŠ PostgreSQL ã«ã¯ãšãªãæããã ãã§ãã
ã»ãã·ã§ã³ã§ã¯ããäŒå¡ã¯äœäººããŸããïŒããšãã質åãå床æãããšãä»åºŠã¯æ£ç¢ºãªæ°åïŒ5000 人ïŒãè¿ã£ãŠããŸããããã®æ°åã¯ãAurora ããŒã¿ããŒã¹ããååŸããããã®ã§ãã
UI ã«ã¯ãããŒã«äœ¿çšç¶æ³ããå±éã§ãããã°ã«ãããããããèŠããšãSQL ããŒã«ã䜿ã£ãŠããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããšããæ å ±ã衚瀺ãããŠããŸããã

ãšãŒãžã§ã³ããããŒã¿ãœãŒã¹ãèªåçã«éžæããä»çµã¿
ãããŸã§ã§ã2 ã€ã®ããŒã«ïŒretrieve ããŒã«ãš SQL ããŒã«ïŒãæããŸãããæ¬¡ã®çåã¯ãããšãŒãžã§ã³ãã¯ã©ããã£ãŠé©åãªããŒã«ãéžã¶ã®ãïŒããšããç¹ã§ãã
ã»ãã·ã§ã³ã§ã¯ããé«éœ¢è æ¯æŽã®ã€ãã³ãã宿œããŸãããïŒããšãã質åãæãããšãä»åºŠã¯ Knowledge Base ã«ã¢ã¯ã»ã¹ããŠåçãè¿ã£ãŠããŸãããããŒã«äœ¿çšç¶æ³ãèŠããšãretrieve ããŒã«ã䜿ãããŠããããšãåãããŸãã
Rafia ããã«ãããšãClaude ã¢ãã«ãããŒã«ã®éžæãè¡ã£ãŠãããšã®ããšã§ãããŠãŒã¶ãŒã®è³ªåãåãåã£ã Claude ã¯ãããã®è³ªåã«ã¯ã©ã®ããŒã«ãé©ããŠãããïŒãã倿ããé©åãªããŒã«ãåŒã³åºããŸãã
ãã ããä»åã®ãã¢ã§ã¯ã·ã¹ãã ããã³ãããéåžžã«ã·ã³ãã«ã ã£ããããã¢ããªã±ãŒã·ã§ã³èªäœãã·ã³ãã«ã ã£ãããšããããLLM ãèªåçã«å€æã§ããŸããã
å®éã®æ¬çªç°å¢ã§ã¯ãè€æ°ã® Knowledge Base ãè€æ°ã®ããŒã¿ããŒã¹ãããã«ã¯ããŒã¿å€æãããŒã¿ãã£ã¯ã·ã§ããªãªã©ãããè€éãªèŠçŽ ã絡ãã§ããŸãããã®ãããªå Žåã«ã¯ãã·ã¹ãã ããã³ãããéåžžã«éèŠã«ãªããšåŒ·èª¿ããŠããŸããã
ã·ã¹ãã ããã³ããã«ããã®ããŒã«ã¯ããããæã«äœ¿ããããã®ããŒã¿ãœãŒã¹ã«ã¯ããããæ å ±ãããããšãã£ãè©³çŽ°ãªæ å ±ãå«ããããšã§ãClaude ãããè³¢ãããŒã«ãéžæã§ããããã«ãªããšè©±ããŠããŸããã
ã»ãã·ã§ã³ã®æåŸã«ãããå ç¢ãªã·ã¹ãã ããã³ããã«çœ®ãæããæ§åã玹ä»ããŠããŸãããã·ã¹ãã ããã³ããã¯ããšãŒãžã§ã³ãã®ãããŒãœããªãã£ãå®çŸ©ãããã®ããšè¡šçŸãããŠãããéåžžã«éèŠãªèŠçŽ ã ãšããããšãäŒãã£ãŠããŸããã

ã»ãã·ã§ã³äžã®è³ªçå¿ç
ã»ãã·ã§ã³äžã«ã¯ãåå è ããå€ãã®è³ªåãé£ã³äº€ã£ãŠããŸãããããã€ãå°è±¡çã ã£ããã®ã玹ä»ããŸãã
Q: ã«ã©ã åãæå·çãªå ŽåïŒäŸ: CTYïŒãã©ã察åŠãããïŒ
A: LLM ã¯ã»ãã³ãã£ãã¯ãªæå³ãçè§£ã§ãããããããçšåºŠã¯æšæž¬ã§ããŸããäŸãã°ãããŒãã«åããcampaignãã§ãããŠãŒã¶ãŒããeventããšããèšèã䜿ã£ãå ŽåãLLM ã¯äž¡è ã®æå³çãªé¢é£æ§ãçè§£ããŠé©å㪠SQL ãçæã§ããŸãã
ãã ããã«ã©ã åããcolumn1ããcolumn2ãã®ããã«å®å šã«æå³äžæãªå Žåã¯ãããŒã¿ãã£ã¯ã·ã§ããªïŒããŒã¿ã®èª¬ææžïŒãããã³ããã«å«ããããšã§å¯ŸåŠã§ãããšçããŠããŸããã
Q: ã¹ããŒãã«å€éšããŒãªã©ã®ãªã¬ãŒã·ã§ã³ã·ãããããå Žåãè€æ°ã®ã¯ãšãªãå¿ èŠã«ãªãå Žåã¯ã©ããããïŒ
A: ä»åã®ãã¢ã§ã¯ãã·ã³ãã«ãªã¹ããŒãã䜿ã£ããããã»ãšãã©ã®è³ªåãåäžã®ããŒãã«ã§çããããŸããããå®éã«ã¯ãªã¬ãŒã·ã§ã³ã·ããæ å ±ãããã³ããã«å«ããããšã§ãJOIN ãå«ã SQL ãçæã§ãããšçããŠããŸããã
Q: ã¹ããŒããã·ã¹ãã ããã³ãããæ¯åçæããã®ã¯å¹ççã§ã¯ãªãã®ã§ã¯ïŒ
A: ãã®éãã§ãæ¬çªç°å¢ã§ã¯ã¡ã¢ãªããŒã«ã䜿ã£ãŠãã£ãã·ã¥ããããšãæšå¥šãããŸãã
äŸãã°ãAmazon Agent CoreïŒAI ãšãŒãžã§ã³ããå®è¡ããããã®ãµãŒãã¹ïŒã«ã¯ãã¡ã¢ãªæ©èœãåãã£ãŠãããã¹ããŒããããŒã¿ãã£ã¯ã·ã§ããªã®ãããªé »ç¹ã«å€ãããªãæ å ±ããã£ãã·ã¥ã§ããŸãã
ä»åã®ãã¢ã¯ãçè§£ããããããåªå ãããããæ¬çªç°å¢åãã®æé©åã¯çç¥ãããŠããŸããããå®éã«éçšããéã«ã¯ãã®ãããªãã£ãã·ã¥æ©èœã掻çšãã¹ããšè©±ããŠããŸããã
ãããã€ã¡ã³ãã®éžæè¢
ã»ãã·ã§ã³ã®æåŸã«ããã®ã¢ããªã±ãŒã·ã§ã³ã AWS äžã«ãããã€ããå Žåã®éžæè¢ã玹ä»ãããŸããã
- AWS Lambda: ãµãŒããŒã¬ã¹ã§å®è¡
- ECS / EKS: ã³ã³ãããµãŒãã¹ã§å®è¡
- Agent Core: çæ AI ã¢ããªã±ãŒã·ã§ã³å°çšã®ã©ã³ã¿ã€ã ïŒææ°ã®ãµãŒãã¹ïŒ
ä»åã®ãã¢ã§ã¯ãEC2 ã€ã³ã¹ã¿ã³ã¹äžã§å®è¡ããŠããŸããããçè«çã«ã¯ã©ã®éžæè¢ã§ããããã€å¯èœã§ããPython ã§æžãããŠãããããåºæ¬çã«ã¯ã©ã®ã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ã§ãåããããšè©±ããŠããŸããã
ãŸãšã
ãã®ã»ãã·ã§ã³ã§ã¯ãæ§é åããŒã¿ãšéæ§é åããŒã¿ã AI ãšãŒãžã§ã³ãã§çµ±åçã«ã¢ã¯ã»ã¹ããæ¹æ³ããå®éã«ã³ãŒããæžããªããåŠã¶ããšãã§ããŸããã
ç¹ã«å°è±¡çã ã£ãã®ã¯ã以äžã® 3 ç¹ã§ãã
- Strands SDK ã䜿ãã°ããããæ°è¡ã§ãšãŒãžã§ã³ããæ§ç¯ã§ããããš
- ã«ã¹ã¿ã ããŒã«ã®äœæãéåžžã«ã·ã³ãã«ïŒ
@toolã¢ãããŒã·ã§ã³ãä»ããã ãïŒ - è€æ°ã® LLM ãçšéã«å¿ããŠäœ¿ãåããããããš
ãŸããã·ã¹ãã ããã³ããã®éèŠæ§ã«ã€ããŠãæ¹ããŠèªèããŸããããšãŒãžã§ã³ãã®ãããŒãœããªãã£ããå®çŸ©ããé©åãªããŒã«ãéžæãããããã«ã¯ãè©³çŽ°ã§æç¢ºãªã·ã¹ãã ããã³ãããäžå¯æ¬ ã§ãã
å人çã«ã¯ããããã³ããã LLM ã«çæãããããšããã¢ãããŒããéåžžã«è峿·±ãã£ãã§ããã¹ããŒãæ å ±ãåçã«ååŸãããããå ã«ããã³ãããèªåçæããããšã§ãã¡ã³ããã³ã¹æ§ãé«ãŸããšæããŸããã
ãã®ã»ãã·ã§ã³ã§ç޹ä»ãããææ³ã¯ãäŒæ¥å ã®æ§ã ãªããŒã¿ãœãŒã¹ãçµ±åçã«æŽ»çšããããšèããŠããæ¹ã«ãšã£ãŠãéåžžã«åèã«ãªããšæããŸããç¹ã«ãRAG ã·ã¹ãã ãšåŸæ¥ã®ããŒã¿ããŒã¹ãçµã¿åãããããšããããŒãºã¯å€ãã¯ããªã®ã§ãå®è·µçãªã¢ãããŒããšããŠè©ŠããŠã¿ã䟡å€ãããã®ã§ã¯ãªãã§ããããã