G-gen ã®ææã§ãã人éããã®èªç¶èšèªã§ã®è³ªåã«åºã¥ã㊠BigQuery ã«ã¯ãšãªãå®è¡ãã AI ãšãŒãžã§ã³ããã Agent Development Kit ïŒADKïŒã§éçºããæ¹æ³ã玹ä»ããŸãã æŠèŠ Agent Development KitïŒADKïŒãšã¯ BigQuery ããŒã«ã»ãã å®è£
ãœãŒã¹ã³ãŒã ãšãŒãžã§ã³ãå®çŸ©ãšéåæå®è¡ BigQuery ããŒã«ã®å®çŸ© BigQuery ã䜿ããšãŒãžã§ã³ãã®å®çŸ© åäœç¢ºèª æçµåç ãšãŒãžã§ã³ããšããŒã«ã®æå ç²ŸåºŠç¢ºèª è³ªåã®ããããå€ãã è€éãªè³ªå äŒè©±ååæïŒåèæ
å ±ïŒ æŠèŠ Agent Development KitïŒADKïŒãšã¯ Agent Development Kit ïŒADKïŒã¯ãAI ãšãŒãžã§ã³ãã®éçºããããã€ãè©äŸ¡ãå¹çåããããã« Google ãéçºãããªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ã§ãã2025幎7æçŸåšãPython ããã³ Java åãã®ã©ã€ãã©ãªãšããŠå
¬éãããŠããŸãã ADK ãå©çšããããšã§ãAI ãšãŒãžã§ã³ãã容æã«éçºã§ããŸãããŸããADK ã«çµã¿èŸŒã¿ã® Built-in tools ã䜿ãããšã§ãæå°éã®ã³ãŒãã£ã³ã°ã§ãšãŒãžã§ã³ãã«æ§ã
ãªã¿ã¹ã¯ãè¡ãããããšãã§ããŸããåœèšäºã§ã¯ãBuilt-in tools ã®1ã€ã§ãã BigQuery ããŒã«ã»ããã䜿ã£ãŠã人éããã®èªç¶èšèªã§ã®è³ªåã«å¿ã㊠BigQuery ããŒãã«ã«ã¯ãšãªãè¡ããšãŒãžã§ã³ããéçºããæ¹æ³ã玹ä»ããŸãã åè : Agent Development Kit åè : Built-in tools BigQuery ããŒã«ã»ãã BigQuery ããŒã«ã»ãã ã¯ãADK ã®çµã¿èŸŒã¿ããŒã«ã»ããã§ããæå°éã®ã³ãŒãã£ã³ã°ã§ãAI ãšãŒãžã§ã³ãããŠãŒã¶ãŒã®è³ªåã«å¿ããã¯ãšãªãèªåçã«çæããçµæãåŸãŠãããã«å¿ããåçãçæããŸãããã®ããŒã«ã»ããã«ã¯ã以äžã®ãããªããŒã«ãå«ãŸããŠããŸãã ããŒã«å 説æ list_dataset_ids ãããžã§ã¯ãå
ã® BigQuery ããŒã¿ã»ããããªã¹ãã¢ãããã get_dataset_info BigQuery ããŒã¿ã»ããã®æ
å ±ãååŸãã list_table_ids BigQuery ããŒã¿ã»ããå
ã®ããŒãã« ID ããªã¹ãã¢ãããã get_table_info BigQuery ããŒãã«ã®ã¡ã¿ããŒã¿ïŒã¹ããŒãã DescriptionïŒãååŸãã execute_sql BigQuery ã«ã¯ãšãªïŒSQLïŒãå®è¡ãã åè : Built-in tools - BigQuery äžèšã®ããŒã«ã䜿ãããšã§ããšãŒãžã§ã³ã㯠BigQuery ã«å¯Ÿããäžéãã®æäœãå¯èœã§ãããããã®ããŒã«ã䜿ãããšã«ããã以äžã®ãããªãŠãŒã¶ãŒã®è³ªåã«å¯ŸããŠãAI ãšãŒãžã§ã³ããèªåŸçã«æ
å ±ãååŸããããšãã§ããŸãã ãBigQuery ããŒãã« `ãã.ãã.ãã` ãã xxx ãååŸã㊠xxx ã®ããã«éèšããŠã ãBigQuery ããŒã¿ã»ãã `ãã.ãã` ãã xxx ã®æ
å ±ãæ¢ãåºããŠã ããããžã§ã¯ã ãã ã® BigQuery ãã xxx ã®æ
å ±ãååŸããŠæããŠãã ããã å®è£
ãœãŒã¹ã³ãŒã ãµã³ãã«ãšããŠä»¥äžã®ãœãŒã¹ã³ãŒããçšæããŸããã import asyncio import logging from google.adk.agents import LlmAgent from google.adk.runners import Runner from google.adk.sessions import InMemorySessionService from google.adk.tools.bigquery import BigQueryCredentialsConfig from google.adk.tools.bigquery import BigQueryToolset from google.adk.tools.bigquery.config import BigQueryToolConfig from google.adk.tools.bigquery.config import WriteMode from google.genai import types import google.auth # æžã蟌ã¿ãªãã¬ãŒã·ã§ã³ãå®è¡ãããã®ãé²ã tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED) # BigQuery ãžã®èªèšŒïŒApplication Default CredentialsïŒ application_default_credentials, _ = google.auth.default() credentials_config = BigQueryCredentialsConfig( credentials=application_default_credentials ) # BigQuery ããŒã«ã»ãããå®çŸ© bigquery_toolset = BigQueryToolset( credentials_config=credentials_config, bigquery_tool_config=tool_config ) # BigQuery ã®ãžã§ãå®è¡ãããžã§ã¯ã IDïŒèª²éå
ïŒ PROJECT_ID= "my-project" # BigQuery ã䜿ããšãŒãžã§ã³ã bigquery_agent = LlmAgent( model= "gemini-2.5-flash" , name= "bigquery_agent" , instruction=f """ ããªã㯠BigQuery ã®ããŒã¿åæããããšãŒãžã§ã³ãã§ãã tools ã§ãã `bigquery_toolset` ã䜿ã£ãŠ SQL ãå®è¡ããããŒã¿ãååŸã»åæããŠãŠãŒã¶ãŒããã®è³ªåã«åçãçæããŸãã BigQuery ãžã§ãã¯ãããžã§ã¯ã ID `{PROJECT_ID}` ã§å®è¡ããŸãã """ , tools=[bigquery_toolset], ) # runner ã®å®çŸ© APP_NAME = "My Agent App" SESSION_SERVICE = InMemorySessionService() RUNNER = Runner( agent=bigquery_agent, app_name=APP_NAME, session_service=SESSION_SERVICE, ) async def stream_agent_events (query: str , user_id: str , session_id: str ): ''' # æŠèŠ ãšãŒãžã§ã³ããå®è¡ããŸãã # åŒæ° query (str): ãšãŒãžã§ã³ãã«æããããã¯ãšãªïŒããã³ããïŒ user_id (str): ãŠãŒã¶ãŒ ID session_id (str): ã»ãã·ã§ã³ ID ''' # æ¢åã»ãã·ã§ã³ããªããã°æ°èŠäœæ session = await SESSION_SERVICE.get_session(app_name=APP_NAME, user_id=user_id, session_id=session_id) if not session: await SESSION_SERVICE.create_session(app_name=APP_NAME, user_id=user_id, session_id=session_id) # ãŠãŒã¶ãŒã¯ãšãªãæå®ã®åœ¢åŒã§æ ŒçŽ content = types.Content(role= 'user' , parts=[types.Part(text=query)]) # ãšãŒãžã§ã³ãã®å®è¡ async for event in RUNNER.run_async(user_id=user_id, session_id=session_id, new_message=content): parts = event.content.parts message = event.content.parts[ 0 ].text if message: yield (f "--- Message: {message}" ) return async def main (): """ ãšãŒãžã§ã³ããå®è¡ããã¹ããªãŒãã³ã°ãããã¡ãã»ãŒãžãåºåããã¡ã€ã³é¢æ° """ user_id= "test_user" session_id= "test_session" query= "BigQuery ããŒãã« `bigquery-public-data.samples.shakespeare` ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªã®ããã10ãæããŠãã ããã" # async for ã䜿ã£ãŠéåæãžã§ãã¬ãŒã¿ãåŠç async for message in stream_agent_events(query=query, user_id=user_id, session_id=session_id): print (message) # ãã®ã³ã°ãèšå® logging.basicConfig( level=logging.DEBUG, format = '%(asctime)s - %(levelname)s - %(name)s - %(message)s' ) # ã¹ã¯ãªããã®ãšã³ããªãŒãã€ã³ã if __name__ == "__main__" : asyncio.run(main()) ãšãŒãžã§ã³ãå®çŸ©ãšéåæå®è¡ ãšãŒãžã§ã³ãã®å®çŸ©ïŒ LlmAgent() ïŒãããã«å¯Ÿããéåæå®è¡ïŒ run_async() çïŒã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp BigQuery ããŒã«ã®å®çŸ© åœãµã³ãã«ã³ãŒãã§ã¯ãADK ã®çµã¿èŸŒã¿ããŒã«ã§ãã BigQuery ããŒã«ã以äžã®ããã«å®çŸ©ããŠããŸãã # æžã蟌ã¿ãªãã¬ãŒã·ã§ã³ãå®è¡ãããã®ãé²ã tool_config = BigQueryToolConfig(write_mode=WriteMode.BLOCKED) # BigQuery ãžã®èªèšŒïŒApplication Default CredentialsïŒ application_default_credentials, _ = google.auth.default() credentials_config = BigQueryCredentialsConfig( credentials=application_default_credentials ) # BigQuery ããŒã«ã»ãããå®çŸ© bigquery_toolset = BigQueryToolset( credentials_config=credentials_config, bigquery_tool_config=tool_config ) tool_config ã§ BigQueryToolConfig(write_mode=WriteMode.BLOCKED) ãšããããšã§ãBigQuery ã«èª€ã£ãŠæžã蟌ã¿ãªãã¬ãŒã·ã§ã³ãå®è¡ãããŠããŸãããšãé²ããŸãã èªèšŒã«ã€ããŠã¯ã google.auth.default() ã«ãããApplication Default Credentials ãååŸããŠããŸããããã¯ãå®è¡ç°å¢ã Cloud Run ã Vertex AI Agent Engine ã§ããã°ç°å¢ã«ã¢ã¿ããããããµãŒãã¹ã¢ã«ãŠã³ããåç
§ããããŒã«ã«ã®å®è¡ç°å¢ã§ããã° gcloud auth application-default login ã§èšå®ããã Google ã¢ã«ãŠã³ãã®èªèšŒæ
å ±çãåç
§ããŸãã åè : gcloud auth loginãšgcloud auth application-default loginã®éããšã¯ïŒ - G-gen Tech Blog ãŸã BigQueryToolset() ã«ãããæžã蟌ã¿ãããã¯ã®èšå®ãèªèšŒæ
å ±ãæå®ããŠãBigQuery ããŒã«ãå®çŸ©ããŸãã BigQuery ã䜿ããšãŒãžã§ã³ãã®å®çŸ© ããŒã«ãšã㊠BigQuery ã䜿ããšãŒãžã§ã³ãã®å®çŸ©ã¯ã以äžã®ããã«ãªã£ãŠããŸãã # BigQuery ã®ãžã§ãå®è¡ãããžã§ã¯ã IDïŒèª²éå
ïŒ PROJECT_ID= "my-project" # BigQuery ã䜿ããšãŒãžã§ã³ã bigquery_agent = LlmAgent( model= "gemini-2.5-flash" , name= "bigquery_agent" , instruction=f """ ããªã㯠BigQuery ã®ããŒã¿åæããããšãŒãžã§ã³ãã§ãã tools ã§ãã `bigquery_toolset` ã䜿ã£ãŠ SQL ãå®è¡ããããŒã¿ãååŸã»åæããŠãŠãŒã¶ãŒããã®è³ªåã«åçãçæããŸãã BigQuery ãžã§ãã¯ãããžã§ã¯ã ID `{PROJECT_ID}` ã§å®è¡ããŸãã """ , tools=[bigquery_toolset], ) ããã§ã¯å®çŸ©ãã bigquery_toolset ã tools ãšããŠæå®ããã ãã§ããšãŒãžã§ã³ãã BigQuery ããŒã«ã»ããã䜿çšããããã«ãªããŸãããŸã instruction ã«ãŠããBigQuery ãžã§ãã¯ãããžã§ã¯ã ID `{PROJECT_ID}` ã§å®è¡ããŸããããšæç€ºããŠããŸãïŒPython ã® f-strings ã«ãã {PROJECT_ID} ã¯å®éã®ãããžã§ã¯ã ID ã«çœ®ãæãããŸãïŒã æ€èšŒæã¯ããã®æç€ºãå
¥ããªãå Žåã ãšããŠãŒã¶ãŒã®ããã³ããã§ BigQuery ããŒã¿ã»ãã bigquery-public-data.samples.shakespeare ããããŒã¿ãåã£ãŠããŠãã ãã ã®ããã«æå®ããããšãããšãŒãžã§ã³ãã¯ãããªãã¯ããŒã¿ã»ããã®ãããžã§ã¯ãã«å¯ŸããŠãžã§ããå®è¡ããããšããŠããŸããæš©éäžè¶³ã§ã¯ãšãªã倱æããŸããã ãªãæ€èšŒã§ã¯ãèªèšŒæã« google.auth.default(quota_project_id=PROJECT_ID) ã®ããã«ã¯ã©ãŒã¿ãããžã§ã¯ãïŒèª²éå
ãããžã§ã¯ãïŒãæå®ããŠããåæ§ã®æåã§ããã BigQuery ã®ãžã§ãå®è¡æš©éã«ã€ããŠã®è§£èª¬ã¯ã以äžã®èšäºãåèã«ããŠãã ããã blog.g-gen.co.jp åäœç¢ºèª æçµåç äžèšã®ãœãŒã¹ã³ãŒããå®è¡ããçµæã以äžã®ãããªæçµåçãåŸãããŸããã ã¯ãšãª BigQuery ããŒãã« bigquery-public-data.samples.shakespeare ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªã®ããã10ãæããŠãã ããã æçµåç --- Message: ã¯ããBigQuery ããŒãã« `bigquery-public-data.samples.shakespeare` ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªããã10ã¯ä»¥äžã®éãã§ãã 1. the: 25568å 2. I: 21028å 3. and: 19649å 4. to: 17361å 5. of: 16438å 6. a: 13409å 7. you: 12527å 8. my: 11291å 9. in: 10589å ãšãŒãžã§ã³ããšããŒã«ã®æå ãã®ã³ã°èšå®ïŒãã°ã¬ãã«ã DEBUGïŒã«ããããšãŒãžã§ã³ããããŒã«ã䜿ãæåãæšæºåºåã«åºåãããŸãããã®åºåã確èªããããšã§ããšãŒãžã§ã³ããã©ã®ããã«æèããããŒã«ã䜿çšããã®ãã確èªã§ããŸããåºåã®äžéšãæç²ãããšã以äžã®ãšããã§ããã Function calls: name: list_table_ids, args: { 'project_id' : 'bigquery-public-data' , 'dataset_id' : 'samples' } Function calls: name: get_table_info, args: { 'table_id' : 'shakespeare' , 'dataset_id' : 'samples' , 'project_id' : 'bigquery-public-data' } Function calls: name: execute_sql, args: { 'project_id' : my-project, 'query' : 'SELECT word, SUM(word_count) AS total_count FROM `bigquery-public-data.samples.shakespeare` GROUP BY word ORDER BY total_count DESC LIMIT 10' } Contents: { "parts" :[{ "text" : "BigQuery ããŒãã« `bigquery-public-data.samples.shakespeare` ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªã®ããã10ãæããŠãã ããã" }], "role" : "user" } { "parts" :[{ "function_call" :{ "args" :{ "project_id" : "bigquery-public-data" , "dataset_id" : "samples" }, "name" : "list_table_ids" }}], "role" : "model" } { "parts" :[{ "function_response" :{ "name" : "list_table_ids" , "response" :{ "result" :[ "github_nested" , "github_timeline" , "gsod" , "natality" , "shakespeare" , "trigrams" , "wikipedia" ]}}}], "role" : "user" } { "parts" :[{ "function_call" :{ "args" :{ "table_id" : "shakespeare" , "dataset_id" : "samples" , "project_id" : "bigquery-public-data" }, "name" : "get_table_info" }}], "role" : "model" } { "parts" :[{ "function_response" :{ "name" : "get_table_info" , "response" :{ "kind" : "bigquery#table" , "etag" : "BeoZAW5rQH2EllmuKl2a2A==" , "id" : "bigquery-public-data:samples.shakespeare" , "selfLink" : "https://bigquery.googleapis.com/bigquery/v2/projects/bigquery-public-data/datasets/samples/tables/shakespeare" , "tableReference" :{ "projectId" : "bigquery-public-data" , "datasetId" : "samples" , "tableId" : "shakespeare" }, "schema" :{ "fields" :[{ "name" : "word" , "type" : "STRING" , "mode" : "REQUIRED" , "description" : "A single unique word (where whitespace is the delimiter) extracted from a corpus." },{ "name" : "word_count" , "type" : "INTEGER" , "mode" : "REQUIRED" , "description" : "The number of times this word appears in this corpus." },{ "name" : "corpus" , "type" : "STRING" , "mode" : "REQUIRED" , "description" : "The work from which this word was extracted." },{ "name" : "corpus_date" , "type" : "INTEGER" , "mode" : "REQUIRED" , "description" : "The year in which this corpus was published." }]}, "numBytes" : "6432064" , "numLongTermBytes" : "6432064" , "numRows" : "164656" , "creationTime" : "1457975805856" , "lastModifiedTime" : "1457975805856" , "type" : "TABLE" , "location" : "US" , "numTimeTravelPhysicalBytes" : "0" , "numTotalLogicalBytes" : "6432064" , "numActiveLogicalBytes" : "0" , "numLongTermLogicalBytes" : "6432064" , "numTotalPhysicalBytes" : "485656" , "numActivePhysicalBytes" : "0" , "numLongTermPhysicalBytes" : "485656" , "numCurrentPhysicalBytes" : "485656" }}}], "role" : "user" } { "parts" :[{ "function_call" :{ "args" :{ "project_id" : "my-project" , "query" : "SELECT word, SUM(word_count) AS total_count FROM `bigquery-public-data.samples.shakespeare` GROUP BY word ORDER BY total_count DESC LIMIT 10" }, "name" : "execute_sql" }}], "role" : "model" } { "parts" :[{ "function_response" :{ "name" : "execute_sql" , "response" :{ "status" : "SUCCESS" , "rows" :[{ "word" : "the" , "total_count" : 25568 },{ "word" : "I" , "total_count" : 21028 },{ "word" : "and" , "total_count" : 19649 },{ "word" : "to" , "total_count" : 17361 },{ "word" : "of" , "total_count" : 16438 },{ "word" : "a" , "total_count" : 13409 },{ "word" : "you" , "total_count" : 12527 },{ "word" : "my" , "total_count" : 11291 },{ "word" : "in" , "total_count" : 10589 },{ "word" : "is" , "total_count" : 8735 }]}}}], "role" : "user" } åºåãèŠããšãããŒã«ã»ããã«å«ãŸãã list_table_ids ã get_table_info ã execute_sql ãé ã«å®è¡ãããŠããŸãããšãŒãžã§ã³ãã¯ãŸãããŒãã«ã®ååšç¢ºèªãè¡ããæ¬¡ã«ããŒãã«ã®ã¹ããŒããååŸããŠæ§é ãçè§£ããŸããããã®ãšããããŒãã«ãã«ã©ã ã®ã¡ã¿ããŒã¿ïŒ description ïŒãååŸããŠããããšãããããŸããæåŸã« SELECT æãå®è¡ããããŒã¿ãååŸãããããè§£éããŠåçãçæããããšãããããŸãã ãã®ãããªæåããããAI ãšãŒãžã§ã³ããããŒãã«æ§é ãé©åã«çè§£ããŠã¯ãšãªãå®è¡ããã«ã¯ãã¡ã¿ããŒã¿ç®¡çãéèŠã§ããããšãããããŸãã åè : ã¡ããªãªã³ã¢ãŒããã¯ãã£2.0ãšGoogle Cloudã®AIãšãŒãžã§ã³ãæŽ»çš - G-gen Tech Blog ç²ŸåºŠç¢ºèª ãšãŒãžã§ã³ããçæããã¯ãšãªã確èªãããŸã念ã®çºããšãŒãžã§ã³ããå®è¡ããã¯ãšãªãæäœæ¥ã§ãå®è¡ããŠã¿ãŸãã 質åå
容ã«å¯ŸããŠããšãŒãžã§ã³ãã®å®è¡ããã¯ãšãªã¯é©åã§ãããå®è¡çµæãšãæŽåæ§ãåããŠããããšãããããŸãã ã¯ãšãª SELECT word, SUM (word_count) AS total_count FROM `bigquery- public -data.samples.shakespeare` GROUP BY word ORDER BY total_count DESC LIMIT 10 å®è¡çµæ word total_count the 25568 I 21028 and 19649 to 17361 of 16438 a 13409 you 12527 my 11291 in 10589 is 8735 質åã®ããããå€ãã ãšãŒãžã§ã³ããèªåŸçã«å€æã㊠BigQuery ã®æ§ã
ãªã¿ã¹ã¯ãå®è¡ã§ããããšã確èªããããã以äžã®ãããªã¯ãšãªãå®è¡ããŠã¿ãŸãã BigQuery ããŒã¿ã»ãã bigquery-public-data.samples ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªã®ããã10ãæããŠãã ããã å
çšã¯ããŒãã« ID ãæå®ããŸããããä»åã¯ããŒã¿ã»ãã ID ã®ã¿ãæå®ããŠããŸããçµæã¯ããšãŒãžã§ã³ããé©åã«ããŒã¿ã»ããå
ããããŒãã«ããªã¹ãã¢ããããé©åãªããŒãã«ãèŠã€ãåºããŠã¯ãšãªãå®è¡ããŸããã æçµåç ã·ã§ã€ã¯ã¹ãã¢äœåã§æãé »åºããåèªããã10ã¯ä»¥äžã®éãã§ãã 1. the: 25568 2. I: 21028 3. and: 19649 4. to: 17361 5. of: 16438 6. a: 13409 7. you: 12527 8. my: 11291 9. in: 10589 10. is: 8735 ãããã®åèªã¯ãã·ã§ã€ã¯ã¹ãã¢ã®äœåã§æãå€ã䜿çšãããŠããŸãã ãšãŒãžã§ã³ãã®åŠç Function calls: name: list_table_ids, args: {'project_id': 'bigquery-public-data', 'dataset_id': 'samples'} Function calls: name: get_table_info, args: {'dataset_id': 'samples', 'table_id': 'shakespeare', 'project_id': 'bigquery-public-data'} Function calls: name: execute_sql, args: {'project_id': my-project, 'query': 'SELECT word, SUM(word_count) AS total_word_count FROM `bigquery-public-data.samples.shakespeare` GROUP BY word ORDER BY total_word_count DESC LIMIT 10'} ããã«ã以äžã®ãããªã¯ãšãªã§ãæ³å®ã©ããã®çµæãè¿ããŸããã BigQuery ãããžã§ã¯ã bigquery-public-data ãããã·ã§ã€ã¯ã¹ãã¢äœåã§é »åºã®åèªã®ããã10ãæããŠãã ããã ãã®å Žåã¯ã list_dataset_ids â list_table_ids â get_table_info â execute_sql ãšé çªã«ããŒã«ã䜿ã£ãŠåŠçãå®è¡ãããé©åãªããŒãã«ã«ãã©ãçããŸããã è€éãªè³ªå AI ãšãŒãžã§ã³ãã¯ã以äžã®ãããªå°ãè€éãªè³ªåã«ã察å¿ã§ããŸããåŠççµæãèŠããšãå¿
èŠãªåãè€æ°åã®ã¯ãšãªãçºè¡ãããããæåŸã« LLM ããŸãšããŠããããšãããããŸãããã®ãããªè³ªåã«ãšãŒãžã§ã³ããåçã§ããã°ãããå®è·µçãªãŠãŒã¹ã±ãŒã¹ã«ã察å¿ã§ããå¯èœæ§ãåºãŠããŸãã ã¯ãšãª ç±³åœã§çãŸããåäŸã«å€ãååã®åŸåãã2000幎ãš2020å¹Žã§æ¯èŒããŠãã ãããã©ã®ãããªéãããããŸããïŒ BigQuery ããŒãã« bigquery-public-data.usa_names.usa_1910_current ããããŒã¿ãååŸããŠãã ããã æçµåç 2000幎ãš2020幎ã®ç±³åœã«ããã人æ°ã®ããååã®åŸåãæ¯èŒãããšã以äžã®ç¹ãæããããŸãã **2000幎ã®äººæ°äžäœã®åå:** * **ç·ã®å:** Jacob, Michael, Matthew, Joshua, Christopher, Nicholas, Andrew, Joseph, Daniel, Tyler * **女ã®å:** Emily, Hannah, Madison, Ashley, Sarah, Alexis, Samantha, Jessica, Elizabeth, Taylor **2020幎ã®äººæ°äžäœã®åå:** * **ç·ã®å:** Liam, Noah, Oliver, Elijah, William, James, Benjamin, Lucas, Henry, Alexander * **女ã®å:** Olivia, Emma, Ava, Charlotte, Sophia, Amelia, Isabella, Mia, Evelyn, Harper **äž»ãªéã:** * **ååã®ãã¬ã³ãã®å€å:** 2000幎ãš2020幎ã®äžäœ10äœã®ååã«ã¯ãã»ãšãã©éè€ããããŸãããããã¯ãããã20幎ã®éã«ååã®æµè¡ã倧ããå€åããããšã瀺ããŠããŸãã * **æ°ããååã®å°é :** 2020幎ã«ã¯ããLiamããNoahããOliviaããAvaããªã©ã2000幎ã«ã¯äžäœã«å
¥ã£ãŠããªãã£ãæ°ããååã人æ°ãéããŠããããšãããããŸãã * **äŒçµ±çãªååã®ç¶ç¶çãªäººæ°:** ãWilliamãããJamesãããElizabethããªã©ãæ¯èŒçæéã«å·Šå³ãããªãäŒçµ±çãªååãäŸç¶ãšããŠäžå®ã®äººæ°ãä¿ã£ãŠããããšã䌺ããŸãããäžäœãå ããã®ã¯ããçŸä»£çãªååã«ãªã£ãŠããŸãã ãã®æ¯èŒãããç±³åœã«ãããåã©ãã®ååã®åŸåã¯ã瀟äŒãæåã®å€åãåæ ããŠã20幎éã§å€§ããç§»ãå€ãã£ãŠããããšãæç¢ºã«ããããŸãã åŠçã®çµç·¯ ïŒäžéšã®ã¿æç²ïŒ Function calls: name: get_table_info, args: {'dataset_id': 'usa_names', 'project_id': 'bigquery-public-data', 'table_id': 'usa_1910_current'} 2025 - 07 - 29 09: 22 : 58 , 336 - DEBUG - google_adk.google.adk.models.google_llm - LLM Response: ----------------------------------------------------------- Text: 2000 幎㚠2020 幎ã®ç±³åœã§çãŸããåäŸã«å€ãååã®åŸåãæ¯èŒããããã`bigquery-public-data.usa_names.usa_1910_current` ããŒãã«ããããŒã¿ãååŸããŸãã ãŸãã 2000 幎ã®ç·å¥³å¥äººæ°äžäœ 10 ã®ååãæœåºããŸãã ----------------------------------------------------------- Function calls: name: execute_sql, args: { 'project_id' : my-project, 'query' : " \n SELECT \n name, \n SUM(number) as total_occurrences \n FROM \n `bigquery-public-data.usa_names.usa_1910_current` \n WHERE \n year = 2000 AND gender = 'M' \n GROUP BY \n name \n ORDER BY \n total_occurrences DESC \n LIMIT 10; \n " } 2025 - 07 - 29 09: 23 : 04 , 532 - DEBUG - google_adk.google.adk.models.google_llm - LLM Response: ----------------------------------------------------------- Text: 次ã«ã 2020 幎ã®ç·å¥³å¥äººæ°äžäœ 10 ã®ååãæœåºããŸãã ----------------------------------------------------------- Function calls: name: execute_sql, args: { 'project_id' : my-project, 'query' : " \n SELECT \n name, \n SUM(number) as total_occurrences \n FROM \n `bigquery-public-data.usa_names.usa_1910_current` \n WHERE \n year = 2020 AND gender = 'M' \n GROUP BY \n name \n ORDER BY \n total_occurrences DESC \n LIMIT 10; \n " } äŒè©±ååæïŒåèæ
å ±ïŒ ADK ãšã¯é¢ä¿ã®ãªãåèæ
å ±ã§ãããBigQuery ã®ããŒã¿ã«å¯ŸããŠèªç¶èšèªã«ããã¯ãšãªãåæãè¡ãããå Žåã Looker ã Looker Studio Pro ã«æèŒã® Conversational Analytics ïŒäŒè©±ååæïŒãæçšãªéžæè¢ã§ãã ãã®æ©èœã§ã¯ãèªç¶èšèªããã€ãã£ãã圢åŒã§ Looker ã Looker Studio ã®ç»é¢ããåããæããããã ãã§ãAI ã BigQuery çã®ããŒã¿ãœãŒã¹ã«å¯ŸããŠã¯ãšãªãçºè¡ããåæãå¯èŠåãå¯èœã§ãã åè : Looker ã®äŒè©±åæ åè : Looker Studio ã®äŒè©±åæ Looker Studio Pro ã®äŒè©±ååæ Looker ã Looker Studio Pro ã«ã€ããŠã¯ã以äžã®èšäºãåèã«ããŠãã ããã blog.g-gen.co.jp blog.g-gen.co.jp ææ å銬 (èšäºäžèЧ) å·è¡åœ¹å¡ CTO / ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éš éšé· å
èŠå¯å®ãšããçµæŽãæã€çŸ IT ãšã³ãžãã¢ãã¯ã©ãŠã管çã»éçšããããã¯ãŒã¯ã«ç¥èŠãAWS èªå®è³æ Œããã³ Google Cloud èªå®è³æ Œã¯ãã¹ãŠååŸãXïŒæ§ TwitterïŒã§ã¯ Google Cloud ã Google Workspace ã®ã¢ããããŒãæ
å ±ãã€ã¶ãããŠããŸãã Follow @y_sugi_it