Amazon Bedrock ã® Knowledge base æ©èœ ã䜿çšãããšã Amazon Bedrock ã® åºç€ã¢ãã«ïŒFMïŒã«èªç€Ÿã®ããŒã¿ãå®å
šã«æ¥ç¶ããŠãæ€çŽ¢æ¡åŒµçæ (RAG) ãè¡ãããšãã§ããŸãã æ€çŽ¢ã«ãã£ãŠååŸããèªç€ŸããŒã¿ãå©çšããããšã§ã FM ãååŠç¿ããããšãªããããé¢é£æ§ã®é«ããæèã«å³ããæ£ç¢ºãªå¿çãçæã§ããããã«ãªããŸãã ãã®èšäºã§ã¯ãAmazon Bedrock ã® Knowledge base ã® RetrieveAndGenerate API ã«ç¹åãã2ã€ã®æ°æ©èœã«ã€ããŠèª¬æããŸããKnowledge base ããååŸããæ€çŽ¢çµæã®æå€§æ°ã®èšå®ãšãKnowledge base ã®ããã³ãããã³ãã¬ãŒãã䜿çšããã«ã¹ã¿ã ããã³ããã®äœæã§ãããããã¯æ€çŽ¢ã¿ã€ããšãšãã«ã¯ãšãªãªãã·ã§ã³ãšããŠæå®ã§ããããã«ãªããŸããã æ°æ©èœã®æŠèŠãšå©ç¹ Knowledge base ããååŸããæå€§çµææ°ïŒãœãŒã¹ãã£ã³ã¯ã®æå€§æ°ïŒãæå®ãããªãã·ã§ã³ã§ã¯ããã¯ãã«ã¹ãã¢ããååŸããåççæã®ããã« FM ã«æž¡ãããæ€çŽ¢çµæã®æ°ãå¶åŸ¡ã§ããŸããããã«ãããçæã®ããã«æäŸãããèæ¯æ
å ±ã®éããè€éãªè³ªåã«ã¯å€ããç°¡åãªè³ªåã«ã¯å°ãªãã«ã¹ã¿ãã€ãºã§ããŸãããã®æ©èœã§ã¯æå€§ 100 ä»¶ã®çµæãååŸã§ããŸãã ãã®ãªãã·ã§ã³ã¯ãé¢é£ããæèã®å¯èœæ§ãé«ããããã«ãã£ãŠçæãããå¿çã®ç²ŸåºŠãäžãããã«ã·ããŒã·ã§ã³ïŒå¹»èŠïŒãæžããã®ã«åœ¹ç«ã¡ãŸãã ã«ã¹ã¿ã ãã¬ããžããŒã¹ã®ããã³ãããã³ãã¬ãŒãã§ã¯ãããã©ã«ãã®ããã³ãããã³ãã¬ãŒããç¬èªã®ãã®ã«çœ®ãæããŠãå¿ççæã®ããã«ã¢ãã«ã«éä¿¡ãããããã³ãããã«ã¹ã¿ãã€ãºã§ããŸããããã«ããããŠãŒã¶ãŒã®è³ªåã«å¿çããéã® FM ã®ããŒã³ãåºå圢åŒãåäœãã«ã¹ã¿ãã€ãºã§ããŸãã ãã®ãªãã·ã§ã³ã䜿çšãããšãå»çãæ³åŸãªã©ã®æ¥çãåéã«åãããŠçšèªã埮調æŽã§ããŸããããã«ãç¹å®ã®ã¯ãŒã¯ãããŒã«åãããã«ã¹ã¿ã æç€ºãäŸã远å ã§ããŸãã 以äžã®ã»ã¯ã·ã§ã³ã§ã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã« ãŸã㯠SDK ã䜿çšããŠãããã®æ©èœã䜿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã åææ¡ä»¶ 以äžã®æé ãé²ããããã«ã¯ãæ¢åã® Knowledge base ãå¿
èŠã§ããKnowledge base ãäœæããæé ã«ã€ããŠã¯ã Knowledge baseãäœæãã ãã芧ãã ããã ã³ã³ãœãŒã«ãããœãŒã¹ãã£ã³ã¯ã®æå€§æ°ãèšå®ãã ã³ã³ãœãŒã«ã§ãœãŒã¹ãã£ã³ã¯ã®æå€§æ°ãªãã·ã§ã³ã䜿ãã«ã¯ãæ¬¡ã®æé ã«åŸã£ãŠãã ãã: Amazon Bedrock ã³ã³ãœãŒã«ç»é¢ã§ãå·ŠåŽã®ããã²ãŒã·ã§ã³ãã€ã³ãã Knowledge base ãéžæããŸãã äœææžã¿ã® Knowledge base ãéžæããŸãã Test Knowledge base ãéžæããŸãã èšå®ã¢ã€ã³ã³ãéžæããŸãã Knowledge base ã®ãã¹ããéå§ããåã«ã Sync data source ãéžæããŠãã ããã Configurations ã®ã Search Type ã«ã€ããŠã¯ããŠãŒã¹ã±ãŒã¹ã«åãããŠé©åãªæ€çŽ¢ã¿ã€ããéžæããŠãã ããã ãã®èšäºã§ã¯ç°¡åã®ããããã©ã«ãã®æ€çŽ¢ã䜿çšããŸããããŠãŒã¹ã±ãŒã¹ã«å¿ããŠã»ãã³ãã£ãã¯æ€çŽ¢ããã€ããªããæ€çŽ¢ãå©çšããããšãã§ããŸãããã€ããªããæ€çŽ¢ã®è©³çްã«ã€ããŠã¯ã Knowledge bases for Amazon Bedrock now supports hybrid search ãã芧ãã ããã ã Maximum number of source chunks ããå±éããååŸãããœãŒã¹ãã£ã³ã¯ã®æå€§æ°ãèšå®ããŠãã ããã æ°æ©èœã®äŸ¡å€ããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãããããçæãããã¬ã¹ãã³ã¹ã®ç²ŸåºŠãé«ããæ¹æ³ã®äŸã瀺ããŸãã Amazon ã® Knowledge base ãäœæããããã®ãœãŒã¹ããŒã¿ãšããŠãAmazon ã®å¹Žæ¬¡å ±åæžãšæ ªäž»ãžã®æçŽ ( 2023 幎㮠Amazon 10-K ææž ã 2022 å¹Žã®æ ªäž»ãžã®æçŽ ã 2021 å¹Žã®æ ªäž»ãžã®æçŽ ã 2020 å¹Žã®æ ªäž»ãžã®æçŽ ã 2019 å¹Žã®æ ªäž»ãžã®æçŽ ) ã䜿çšããŸããã å®éšçšã®ã¯ãšãªã¯ãAmazon ã®å¹Žéåçã 2,450 åãã«ãã 4,340 åãã«ã«å¢å ããã®ã¯ãã€ã®å¹Žã§ãã?ïŒâIn what year did Amazonâs annual revenue increase from $245B to $434B?âïŒãã§ãã ãã®è³ªåã«å¯Ÿããæ£ããåçã¯ãã Amazon ã®å¹Žé売äžé«ã¯ 2019 幎㮠2,450 åãã«ãã 2022 幎ã«ã¯ 4,340 åãã«ã«å¢å ããŸãããã§ããããã¯ã ãã¬ããžããŒã¹å
ã®ææž ã«åºã¥ããŠããŸãããã®äŸã§ã¯ããã¬ããžããŒã¹ããååŸããæèæ
å ±ã«åºã¥ããŠæçµçãªåçãçæããããã«ãClaude v2 ãèšèªã¢ãã«ãšããŠäœ¿çšããŸããããŸããClaude 3 Sonnet ãš Claude 3 Haiku ãèšèªã¢ãã«ãšããŠãµããŒããããŠããŸãã å¥ã®ã¯ãšãªãå®è¡ããç°ãªãèšå®ã§ã®ååŸã®æ¯èŒãæ€èšŒããŸãããåãå
¥åã¯ãšãª (âAmazon ã®å¹Žéåçã 2,450 åãã«ãã 4,340 åãã«ã«å¢å ããã®ã¯ãã€ã®å¹Žã§ãã?â) ã䜿çšããçµæã®æå€§ä»¶æ°ã 5 ã«èšå®ããŸããã æ¬¡ã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºãããã«ãçæãããã¬ã¹ãã³ã¹ã¯ãç³ãèš³ãããŸãããããã®ãªã¯ãšã¹ãã«å¯Ÿå¿ã§ããŸãã (âSorry, I am unable to assist you with this request.â)ãã§ããã æ¬¡ã«ãæå€§çµæã 12 ã«èšå®ããåã質åãããŸããçæãããå¿çã¯ã Amazon ã®å¹Žé売äžé«ã¯ã2019 幎㮠2,450 åãã«ãã 2022 幎ã«ã¯ 4,340 åãã«ã«å¢å ããŸããïŒâAmazonâs annual revenue increase from $245B in 2019 to $434B in 2022.âïŒãã§ããã ãã®äŸã§ç€ºããããã«ãæ€çŽ¢çµæã®ä»¶æ°ã«åºã¥ããŠæ£ããåçãååŸã§ããŸãããæçµçãªåºåãåç
§ããããŒã¿ãœãŒã¹ã®è©³çްã確èªãããå Žåã¯ã Show source details ãéžæããKnowledge base ã«åºã¥ããŠçæãããåçãæ€èšŒããŠãã ããã Knowledge base ããã³ãã ãã³ãã¬ãŒãã®ã«ã¹ã¿ãã€ãº (ã³ã³ãœãŒã«) ãŠãŒã¹ã±ãŒã¹ã«å¿ããŠãããã©ã«ãã®ããã³ãããã«ã¹ã¿ãã€ãºããããšãã§ããŸããã³ã³ãœãŒã«ã§ãããè¡ãã«ã¯ã以äžã®æé ã«åŸã£ãŠãã ããã åã®ã»ã¯ã·ã§ã³ã®æé ãç¹°ãè¿ããŠãKnowledge base ã®ãã¹ããéå§ããŸãã Generate responses ãæå¹ã«ããŸãã ã¬ã¹ãã³ã¹çæã®ããã®ã¢ãã«ãéžæããŸãã ãã®èšäºã§ã¯ãäŸãšã㊠Claude v2 ã¢ãã«ã䜿çšããŠããŸããClaude 3 Sonnet ããã³ Haiku ã¢ãã«ãå©çšå¯èœã§ãã Apply ãæŒããŸãã ã¢ãã«ãéžæãããšã Configuration ã®äžã« Knowledge base prompt template ãšããæ°ããã»ã¯ã·ã§ã³ã衚瀺ãããŸãã Edit ãéžæããŠããã³ãããã«ã¹ã¿ãã€ãºããŸãã ããã³ãããã³ãã¬ãŒãã調æŽããŠãKnowledge base ããååŸããçµæã䜿çšããŠã³ã³ãã³ããçæããæ¹æ³ãã«ã¹ã¿ãã€ãºããŸãã ãã®èšäºã§ã¯ãã«ã¹ã¿ã ã®ããã³ãããš Amazon ã®è²¡å諞衚ã䜿çšããŠã財åã¢ããã€ã¶ãŒ AI ã·ã¹ãã ããäœæããäŸãããã€ã瀺ããŸãããããã³ãããšã³ãžãã¢ãªã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠã¯ã ããã³ãããšã³ãžãã¢ãªã³ã°ã®ã¬ã€ãã©ã€ã³ ãåç
§ããŠãã ããã ããŸããŸãªæ¹æ³ã§ããã©ã«ãã®ããã³ãããã³ãã¬ãŒããèªèº«ã«ã«ã¹ã¿ãã€ãºããã¬ã¹ãã³ã¹ã確èªããŸãã ããã©ã«ãã®ããã³ããã§ã¯ãšãªã詊ããŸãããããAmazon ã® 2019 幎㚠2021 幎ã®åçã¯äœã§ããã?ïŒâWhat was the Amazonâs revenue in 2019 and 2021?âïŒããšè³ªåããŸãã以äžãçµæã§ãã åºåçµæãããKnowledge base ããååŸããããŒã¿ã«åºã¥ããŠã¬ã¹ãã³ã¹ãçæããŠããããšãããããŸãã åŒçšãªã³ã¯ãåèãšããŠåºåãããŠããŸãã äŸãã°åºå圢åŒã JSON ãšããŠæšæºåãããªã©ãçæãããã¬ã¹ãã³ã¹ã®ãã©ãŒãããã«é¢ãã远å ã®æç€ºãäžãããå Žåãããã³ãããã³ãã¬ãŒãã®äžéšãšããŠãæ
å ±ãååŸããåŸã®å¥ã®ã¹ããããšããŠãããã®æç€ºã远å ããããšãã§ããŸãã If you are asked for financial information covering different years, please provide precise answers in JSON format. Use the year as the key and the concise answer as the value. For example: { year:answer } æçµçãªåçããJSON 圢åŒã«ãªã£ãŠããããšãããããŸãã ããã³ãããã«ã¹ã¿ãã€ãºããããšã§ãçæãããåçã®èšèªã倿Žã§ããŸããæ¬¡ã®äŸã§ã¯ãã¢ãã«ã«ã¹ãã€ã³èªã§åçãæäŸããããæç€ºããŠããŸãã ããã©ã«ãã®ããã³ãããã $output_format_instructions$ãåé€ãããšãçæãããåçããã®åŒçšãåé€ãããŸãã 以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãSDK ã§ãããã®æ©èœã䜿çšããæ¹æ³ã«ã€ããŠèª¬æããŸãã SDK ã䜿çšããŠãœãŒã¹ãã£ã³ã¯ã®æå€§æ°ãèšå®ãã SDK ã§æå€§çµææ°ã倿Žããã«ã¯ã次ã®ãããªæ§æã䜿çšããŸãããã®äŸã§ã¯ãã¯ãšãªã¯ãAmazonã®å¹Žéåçã2,450åãã«ãã4,340åãã«ã«å¢å ããã®ã¯äœå¹Žã§ãã?ïŒâIn what year did Amazonâs annual revenue increase from $245B to $434B?âïŒãã§ããæ£ããåçã¯ãAmazonã®å¹Žéåçã¯2019幎ã®2,450åãã«ãã2022幎ã®4,340åãã«ã«å¢å ããŸãããïŒâAmazonâs annual revenue increase from $245B in 2019 to $434B in 2022.âïŒããšãªããŸãã def retrieveAndGenerate(query, kbId, numberOfResults, model_id, region_id): model_arn = f'arn:aws:bedrock:{ region_id }::foundation-model/{ model_id }' return bedrock_agent_runtime.retrieve_and_generate( input ={ 'text': query }, retrieveAndGenerateConfiguration ={ 'knowledgeBaseConfiguration': { 'knowledgeBaseId': kbId, 'modelArn': model_arn, 'retrievalConfiguration': { 'vectorSearchConfiguration': { 'numberOfResults': numberOfResults, 'overrideSearchType': "SEMANTIC", # optional } } }, 'type': 'KNOWLEDGE_BASE' }, ) response = retrieveAndGenerate("In what year did Amazon's annual revenue increase from $245B to $434B?", \ "", numberOfResults, model_id, region_id)['output']['text'] retrievalConfiguration ã®äžã«ãã numberOfResults ãªãã·ã§ã³ã§ã¯ãååŸãããçµæã®æ°ãéžæããããšãã§ããŸããRetrieveAndGenerate API ã®åºåã«ã¯ãçæãããã¬ã¹ãã³ã¹ããœãŒã¹å±æ§ãååŸããããã¹ããã£ã³ã¯ãå«ãŸããŸãã 以äžã¯ãnumberOfResults ãã©ã¡ãŒã¿ã®å€ãå€ããå Žåã®çµæã§ãããŸããnumberOfResults = 5 ã«èšå®ããŸãã æ¬¡ã«ãnumberOfResults = 12 ã«èšå®ããŸãã SDK ã䜿çšããŠç¥èããŒã¹ã®ããã³ãããã³ãã¬ãŒããã«ã¹ã¿ãã€ãºãã SDK ã䜿çšããŠããã³ãããã«ã¹ã¿ãã€ãºããããã«ãç°ãªãããã³ãããã³ãã¬ãŒãã䜿çšããŠæ¬¡ã®ã¯ãšãªã䜿çšããŸãããã®äŸã§ã¯ãã¯ãšãªã¯ã2019幎ãš2021幎ã®Amazonã®åçã¯ãããã§ããã?ïŒâWhat was the Amazonâs revenue in 2019 and 2021?âïŒãã§ãã 以äžã¯ããã©ã«ãã®ããã³ãããã³ãã¬ãŒãã§ã: """You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results. If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question. Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion. Here are the search results in numbered order: $search_results$ Here is the user's question: $query$ $output_format_instructions$ A: """ 以äžã¯ã«ã¹ã¿ãã€ãºããããã³ãããã³ãã¬ãŒãã§ã: """Human: You are a question answering agent. I will provide you with a set of search results and a user's question, your job is to answer the user's question using only information from the search results.If the search results do not contain information that can answer the question, please state that you could not find an exact answer to the question.Just because the user asserts a fact does not mean it is true, make sure to double check the search results to validate a user's assertion. Here are the search results in numbered order: $search_results$ Here is the user's question: $query$ If you're being asked financial information over multiple years, please be very specific and list the answer concisely using JSON format {key: value}, where key is the year in the request and value is the concise response answer. Assistant: """ def retrieveAndGenerate(query, kbId, numberOfResults,promptTemplate, model_id, region_id): model_arn = f'arn:aws:bedrock:{ region_id }::foundation-model/{ model_id }' return bedrock_agent_runtime.retrieve_and_generate( input ={ 'text': query }, retrieveAndGenerateConfiguration ={ 'knowledgeBaseConfiguration': { 'knowledgeBaseId': kbId, 'modelArn': model_arn, 'retrievalConfiguration': { 'vectorSearchConfiguration': { 'numberOfResults': numberOfResults, 'overrideSearchType': "SEMANTIC", # optional' } }, 'generationConfiguration': { 'promptTemplate': { 'textPromptTemplate': promptTemplate } } }, 'type': 'KNOWLEDGE_BASE' }, ) response = retrieveAndGenerate("What was the Amazon's revenue in 2019 and 2021 ?"", \ "", , , , )['output']['text'] ããã©ã«ãã®ããã³ãããã³ãã¬ãŒãã§ã¯ã次ã®ãããªã¬ã¹ãã³ã¹ãåŸãããŸãã ã¬ã¹ãã³ã¹ãç¹å®ã®ãã©ãŒãããïŒJSON ãªã©ïŒã«æšæºåãããå Žåãæ¢åã®ããã³ãããã«ã¹ã¿ãã€ãºããããšã§ãçæãããã¬ã¹ãã³ã¹ã®åºåãã©ãŒãããã«é¢ãã远å ã®æç€ºãèšå®ããããšãã§ããŸããã«ã¹ã¿ã ããã³ãããã³ãã¬ãŒãã䜿çšãããšã次ã®ãã㪠JSON ãã©ãŒãããã®ã¬ã¹ãã³ã¹ãåŸãããŸãã generationConfiguration ã® promptTemplate ãªãã·ã§ã³ã§ã¯ãåççæããã现ããå¶åŸ¡ããããã«ããã³ãããã«ã¹ã¿ãã€ãºã§ããŸãã çµè« ãã®èšäºã§ã¯ãAmazon Bedrock ã® Knowledge base ã® 2 ã€ã®æ°æ©èœã«ã€ããŠç޹ä»ããŸãããæ€çŽ¢çµæã®æå€§æ°ã®èª¿æŽãšãRetrieveAndGenerate API ã®ããã©ã«ãããã³ãããã³ãã¬ãŒãã®ã«ã¹ã¿ãã€ãºã§ãããããã®æ©èœãã³ã³ãœãŒã«ã SDK ã§èšå®ããŠãçæãããã¬ã¹ãã³ã¹ã®ããã©ãŒãã³ã¹ãšç²ŸåºŠãåäžãããæ¹æ³ã瀺ããŸãããæå€§çµææ°ãå¢ããããšã§ããå
æ¬çãªæ
å ±ãåŸãããããã³ãããã³ãã¬ãŒããã«ã¹ã¿ãã€ãºããããšã§ãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«ããé©åããããã« FM ãžã®æç€ºã埮調æŽã§ããŸãããããã®æ©èœåŒ·åã«ãããæè»æ§ãšå¶åŸ¡æ§ãåäžããRAG ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã«ãããŠããŒã©ãŒã¡ã€ãã®ãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããããã«ãªããŸãã AWS ç°å¢ã§ã®å®è£
ãéå§ããããã®è¿œå ãªãœãŒã¹ã«ã€ããŠã¯ã以äžãåç
§ããŠãã ããã ãŠãŒã¶ãŒã¬ã€ã: Amazon Bedrock ã®ç¥èããŒã¹ YouTube åç»: RAG ã䜿çšããŠçæ AI ã¢ããªã±ãŒã·ã§ã³ã®ã¬ã¹ãã³ã¹ãæ¹åãã GitHub ãªããžããªã®ã³ãŒããµã³ãã«: Amazon Bedrock Knowledge base â RAG ã¯ãŒã¯ãããŒãæ§ç¯ããããã®ãµã³ã㫠翻蚳㯠Solutions Architect å°æãæ
åœããŸãããåæã¯ ãã¡ã ãã芧ãã ãã