Global Trend Radar
Web: ai.google.dev US web_search 2026-05-01 06:05

コードの実行 | Gemini API | Google AI for Developers

元記事を開く →

分析結果

カテゴリ
AI
重要度
60
トレンドスコア
24
要約
コードの実行 | Gemini API | Google AI for Developers メイン コンテンツにスキップ / English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Shqip Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी
キーワード
コードの実行 | Gemini API | Google AI for Developers メイン コンテンツにスキップ / English Deutsch Español – América Latina Français Indonesia Italiano Polski Português – Brasil Shqip Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 API キーを取得する クックブック Community ログイン Gemini Deep Research がプレビュー版で利用可能になりました。共同プランニング、可視化、MCP サポートなどが含まれています。 ホーム Gemini API ドキュメント フィードバックを送信 コードの実行 Gemini API には、モデルが Python コードを生成して実行できるコード実行ツールが用意されています。モデルは、最終的な出力に到達するまで、コード実行の結果から反復的に学習できます。コード実行を使用して、コードベースの推論を活用するアプリケーションを構築できます。たとえば、コード実行を使用して、方程式を解いたり、テキストを処理したりできます。コード実行環境に含まれる ライブラリ を使用して、より特殊なタスクを実行することもできます。 Gemini は Python でのみコードを実行できます。Gemini に別の言語でコードを生成するように依頼することはできますが、モデルはコード実行ツールを使用して実行することはできません。 重要: コード実行を使用する場合(複数ターンの会話( チャット )など)、会話履歴を手動で作成する場合や REST API を使用する場合は、 ツールを組み合わせる ためにコンテキストが維持されるように、API から返された id フィールドと thought_signature フィールドを渡す必要があります。 標準の Python SDK または Node.js SDK を使用している場合、これは自動的に処理されます。 コード実行を有効にする コード実行を有効にするには、モデルでコード実行ツールを構成します。これにより、モデルはコードを生成して実行できます。 Python from google import genai from google.genai import types client = genai . Client () response = client . models . generate_content ( model = "gemini-3-flash-preview" , contents = "What is the sum of the first 50 prime numbers? " "Generate and run code for the calculation, and make sure you get all 50." , config = types . GenerateContentConfig ( tools = [ types . Tool ( code_execution = types . ToolCodeExecution )] ), ) for part in response . candidates [ 0 ] . content . parts : if part . text is not None : print ( part . text ) if part . executable_code is not None : print ( part . executable_code . code ) if part . code_execution_result is not None : print ( part . code_execution_result . output ) JavaScript import { GoogleGenAI } from "@google/genai" ; const ai = new GoogleGenAI ({}); let response = await ai . models . generateContent ({ model : "gemini-3-flash-preview" , contents : [ "What is the sum of the first 50 prime numbers? " + "Generate and run code for the calculation, and make sure you get all 50." , ], config : { tools : [{ codeExecution : {} }], }, }); const parts = response ? . candidates ? .[ 0 ] ? . content ? . parts || []; parts . forEach (( part ) = > { if ( part . text ) { console . log ( part . text ); } if ( part . executableCode && part . executableCode . code ) { console . log ( part . executableCode . code ); } if ( part . codeExecutionResult && part . codeExecutionResult . output ) { console . log ( part . codeExecutionResult . output ); } }); Go package main import ( "context" "fmt" "os" "google.golang.org/genai" ) func main () { ctx := context . Background () client , err := genai . NewClient ( ctx , nil ) if err != nil { log . Fatal ( err ) } config := & genai . GenerateContentConfig { Tools : [] * genai . Tool { { CodeExecution : & genai . ToolCodeExecution {}}, }, } result , _ := client . Models . GenerateContent ( ctx , "gemini-3-flash-preview" , genai . Text ( "What is the sum of the first 50 prime numbers? " + "Generate and run code for the calculation, and make sure you get all 50." ), config , ) fmt . Println ( result . Text ()) fmt . Println ( result . ExecutableCode ()) fmt . Println ( result . CodeExecutionResult ()) } REST curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \ -H "x-goog-api-key: $GEMINI_API_KEY " \ -H 'Content-Type: application/json' \ -d ' {"tools": [{"code_execution": {}}], "contents": { "parts": { "text": "What is the sum of the first 50 prime numbers? Generate and run code for the calculation, and make sure you get all 50." } }, }' 注: この REST の例では、 出力例に示すように JSON レスポンスを解析しません。 出力は次のようになります。読みやすくするためにフォーマットされています。 Okay, I need to calculate the sum of the first 50 prime numbers. Here's how I'll approach this: 1. **Generate Prime Numbers:** I'll use an iterative method to find prime numbers. I'll start with 2 and check if each subsequent number is divisible by any number between 2 and its square root. If not, it's a prime. 2. **Store Primes:** I'll store the prime numbers in a list until I have 50 of them. 3. **Calculate the Sum:** Finally, I'll sum the prime numbers in the list. Here's the Python code to do this: def is_prime(n): """Efficiently checks if a number is prime.""" if n <= 1: return False if n <= 3: return True if n % 2 == 0 or n % 3 == 0: return False i = 5 while i * i <= n: if n % i == 0 or n % (i + 2) == 0: return False i += 6 return True primes = [] num = 2 while len(primes) < 50: if is_prime(num): primes.append(num) num += 1 sum_of_primes = sum(primes) print(f'{primes=}') print(f'{sum_of_primes=}') primes=[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229] sum_of_primes=5117 The sum of the first 50 prime numbers is 5117. この出力は、コード実行を使用するときにモデルが返す複数のコンテンツ部分を組み合わせたものです。 text : モデルによって生成されたインライン テキスト executableCode : 実行されることを目的とし、モデルによって生成されたコード codeExecutionResult : 実行可能コードの結果 これらの部分の命名規則は、プログラミング言語によって異なります。 画像を使用したコード実行(Gemini 3) Gemini 3 Flash モデルで Python コードを記述して実行し、画像を積極的に操作して検査できるようになりました。 ユースケース ズームと検査 : モデルは、詳細が小さすぎる場合(遠くのゲージの読み取りなど)を暗黙的に検出し、領域を切り抜いて高解像度で再検査するコードを記述します。 ビジュアル数学 : モデルは、コードを使用して複数ステップの計算を実行できます(例: レシートの明細の合計)。 画像アノテーション : モデルは、画像にアノテーションを付けて質問に回答できます(関係を示す矢印を描画するなど)。 注: モデルは小さな詳細のズームを自動的に処理しますが、「ギアの数を数えるコードを記述する」や「この画像を回転させて直立させる」など、他のタスクにコードを使用する場合は、明示的にプロンプトを表示する必要があります。 画像を使用したコード実行を有効にする 画像を使用したコード実行は、Gemini 3 Flash で正式にサポートされています。ツールとしてのコード実行と思考モードの両方を有効にすることで、この動作を有効にできます。 Python from google import genai from google.genai import types import requests from PIL import Image import io image_path = "https://goo.gle/instrument-img" image_bytes = requests . get ( image_path ) . content image = types . Part . from_bytes ( data = image_bytes , mime_type = "image/jpeg" ) # Ensure you have your API key set client = genai . Client () response = client . models . generate_content ( model = "gemini-3-flash-preview" , contents = [ image , "Zoom into the expression pedals and tell me how many pedals are there?" ], config = types . GenerateContentConfig ( tools = [ types . Tool ( code_execution = types . ToolCodeExecution )] ), ) for part in response . candidates [ 0 ] . content . parts : if part . text is not None : print ( part . text ) if part . executable_code is not None : print ( part . executable_code . code ) if part . code_execution_result is not None : print ( part . code_execution_result . output ) if part . as_image () is not None : # display() is a standard function in Jupyter/Colab notebooks display ( Image . open ( io . BytesIO ( part . as_image () . image_bytes ))) JavaScript async function main () { const ai = new GoogleGenAI ({ }); // 1. Prepare Image Data const imageUrl = "https://goo.gle/instrument-img" ; const response = await fetch ( imageUrl ); const imageArrayBuffer = await response . arrayBuffer (); const base64ImageData = Buffer . from ( imageArrayBuffer ). toString ( 'base64' ); // 2. Call the API with Code Execution enabled const result = await ai . models . generateContent ({ model : "gemini-3-flash-preview" , contents : [ { inlineData : { mimeType : 'image/jpeg' , data : base64ImageData , }, }, { text : "Zoom into the expression pedals and tell me how many pedals are there?" } ], config : { tools : [{ codeExecution : {} }], }, }); // 3. Process the response (Text, Code, and Execution Results) const candidates = result . candidates ; if ( candidates && candidates [ 0 ]. content . parts ) { for ( const part of candidates [ 0 ]. content . parts ) { if ( part . text ) { console . log ( "Text:" , part . text ); } if ( part . executableCode ) { console . log ( `\nGenerated Code ( ${ part . executableCode . language } ):\n` , part . executableCode . code ); } if ( part . codeExecutionResult ) { console . log ( `\nExecution Output ( ${ part . codeExecutionResult . outcome } ):\n` , part . codeExecutionResult . output ); } } } } main (); Go package main import ( "context" "fmt" "io" "log" "net/http" "os" "google.golang.org/genai" ) func main () { ctx := context . Background () // Initialize Client (Reads GEMINI_API_KEY from env) client , err := genai . NewClient ( ctx , nil ) if err != nil { log . Fatal ( err ) } // 1. Download the image imageResp , err := http . Get ( "https://goo.gle/instrument-img" ) if err != nil { log . Fatal ( err ) } defer imageResp . Body . Close () imageBytes , err := io . ReadAll ( imageResp . Body ) if err != nil { log . Fatal ( err ) } // 2. Configure Code Execution Tool config := & genai . GenerateContentConfig { Tools : [] * genai . Tool { { CodeExecution : & genai . ToolCodeExecution {}}, }, } // 3. Generate Content result , err := client . Models . GenerateContent ( ctx , "gemini-3-flash-preview" , [] * genai . Content { { Parts : [] * genai . Part { { InlineData : & genai . Blob { MIMEType : "image/jpeg" , Data : imageBytes }}, { Text : "Zoom into the expression pedals and tell me how many pedals are there?" }, }, Role : "user" , }, }, config , ) if err != nil { log . Fatal ( err ) } // 4. Parse Response (Text, Code, Output) for _ , cand := range result . Candidates { for _ , part := range cand . Content . Parts { if part . Text != "" { fmt . Println ( "Text:" , part . Text ) } if part . ExecutableCode != nil { fmt . Printf ( "\nGenerated Code (%s):\n%s\n" , part . ExecutableCode . Language , part . ExecutableCode . Code ) } if part . CodeExecutionResult != nil { fmt . Printf ( "\nExecution Output (%s):\n%s\n" , part . CodeExecutionResult . Outcome , part . CodeExecutionResult . Output ) } } } } REST IMG_URL = "https://goo.gle/instrument-img" MODEL = "gemini-3-flash-preview" MIME_TYPE = $( curl -sIL " $IMG_URL " | grep -i '^content-type:' | awk -F ': ' '{print $2}' | sed 's/\r$//' | head -n 1 ) if [[ -z " $MIME_TYPE " || ! " $MIME_TYPE " == image/* ]] ; then MIME_TYPE = "image/jpeg" fi if [[ " $( uname ) " == "Darwin" ]] ; then IMAGE_B64 = $( curl -sL " $I

類似記事(ベクトル近傍)