双子座APIのコード実行機能の力を引き出す

Gemini APIのコード実行機能の力を発揮させましょう。コードベースの推論、方程式の解決、テキストの処理など、開発者がアプリケーションを構築する方法を発見してください。素数の生成からウェブスクレイピング、機械学習モデルの作成まで、この革新的な機能の機能を示す例を探ってください。コード実行と関数呼び出しの違いを理解し、ワークフローでこの画期的なツールを活用する方法を学びましょう。

2025年2月15日

party-gif

コード ベースの推論の力を Gemini API の新しい Code Execution 機能でロックを解除してください。この機能を自社のアプリケーションに簡単に統合し、コードの生成、実行、学習を可能にすることで、複雑な問題を簡単に解決できます。この革新的な機能がどのように開発ワークフローを変革し、新しい可能性を開くかを発見してください。

強力な機能: Gemini APIでのコード実行

GoogleのGemini APIには、「コード実行」と呼ばれる独特の機能があります。これにより、モデルがPythonコードを生成・実行し、結果を学習しながら最終的な出力に到達することができます。この強力な機能により、開発者は方程式の解決やテキスト処理など、コードベースの推論を活用したアプリケーションを構築することができます。

コード実行と通常の関数呼び出しの主な違いは以下の通りです:

  1. 簡単さ: 言語モデルが特定の操作を行うためにコードを書く必要があるかどうかを判断し、APIのバックエンドでコードを実行することができます。これは、開発環境の設定や複数のAPI呼び出しを行うよりも簡単に使えます。

  2. 柔軟性: コード実行では、モデルがコードを反復して改善できますが、関数呼び出しは単一のAPI要求に限られます。

  3. 分離: コード実行は完全に分離された環境で行われるため、開発者は基盤となるインフラストラクチャを気にする必要がありません。

ただし、コード実行機能にも以下のような制限があります:

  • 現在はPythonとNumPy、SciPyといった特定のライブラリに限定されています。
  • メディアファイルの返却や非テキスト出力(例: データプロット)はできません。
  • コード実行は最大30秒に制限されており、すべてのユースケースに適しているわけではありません。

これらの制限はありますが、コード実行機能は開発者にとって非常に強力な機能です。特に、Gemini 1.5 FlashやProモデルを使ってエージェントを構築する際に有効です。トランスクリプトに示された例では、モデルがコードを生成・実行して、数学計算、文字列操作、データ分析、Webスクレイピング、機械学習モデルの訓練など、さまざまな問題を解決する方法を示しています。

コード実行機能を活用することで、開発者はモデルの推論と反復的な問題解決能力を活用した、より高度で機能的なアプリケーションを作成することができます。

コード実行とファンクション呼び出しの理解

Geminiなどの大規模言語モデル(LLM)におけるコード実行と通常の関数呼び出しの主な違いは以下の通りです:

  1. コード実行:

    • LLMがAPI内部でコードを直接生成・実行できる。
    • モデルが特定の操作を行うためにコードを書く必要があるかどうかを判断し、コードを実行できる。
    • 単一のAPI要求で、コード実行がバックエンドで行われるため、モデルが解決策を反復できる。
    • 現在はPythonとNumPy、SciPyといった特定のライブラリに限定されている。
    • ファイルI/O、非テキスト出力、30秒の実行時間制限などの制限がある。
  2. 関数呼び出し:

    • 外部APIやツールとの対話を可能にする。
    • アクセスできるツールのリストを提供し、開発環境を設定する必要がある。
    • 1つのタスクを完了するために複数のAPI呼び出しが必要になる可能性がある。
    • 言語、フレームワーク、機能性の面で柔軟性が高い。
    • 外部環境の管理が必要となる。

Googleは、タスクが提供された機能の範囲内で実行できる場合はコード実行を使うことをお勧めしています。外部環境の管理が不要で簡単に使えるためです。一方、タスクが外部リソースやコード実行環境にない機能を必要とする場合は、関数呼び出しの方が適しています。

コード実行の例を探る

GoogleのGemini APIには、「コード実行」と呼ばれる強力な機能があります。これにより、開発者はPythonコードをAPI内部で生成・実行することができ、方程式の解決やテキスト処理など、コードベースの推論を活用したアプリケーションを構築できます。

この機能の活用例をいくつか見ていきましょう:

簡単な数学

Gemini APIは、最初の200個の素数の合計を計算するなど、基本的な数学演算を行うコードを生成・実行することができます。

# コードを生成・実行して合計を計算
result = """
import math

primes = []
num = 2
while len(primes) < 200:
    is_prime = True
    for i in range(2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        primes.append(num)
    num += 1

total_sum = sum(primes)
print(f"The sum of the first 200 prime numbers is: {total_sum}")
"""

出力には、最初の200個の素数の合計が表示されます。

文字列操作

Gemini APIは、文字列を大文字に変換したり、「o」の文字数をカウントしたり、文字列を逆順にするなど、さまざまな文字列操作を行うコードを生成・実行することができます。

# 文字列操作のコードを生成・実行
result = """
text = "hello world, welcome to Gemini API"

# 大文字に変換
upper_text = text.upper()
print(f"Uppercase text: {upper_text}")

# 'o'の文字数をカウント
o_count = text.count('o')
print(f"Number of 'o' characters: {o_count}")

# 文字列を逆順に
reversed_text = text[::-1]
print(f"Reversed text: {reversed_text}")
"""

出力には、文字列操作の結果が表示されます。

データ分析

Gemini APIは、ランダムな数値の生成、統計量(平均、中央値、最頻値)の計算、ヒストグラムの作成など、基本的なデータ分析タスクを行うコードを生成・実行することができます。

# データ分析のコードを生成・実行
result = """
import numpy as np
import matplotlib.pyplot as plt

# 100から1000の間のランダムな数値を生成
numbers = np.random.randint(100, 1001, size=1000)

# 統計量を計算
mean = np.mean(numbers)
median = np.median(numbers)
mode = stats.mode(numbers)[0]
min_value = np.min(numbers)
max_value = np.max(numbers)
total_sum = np.sum(numbers)

print(f"Mean: {mean:.2f}")
print(f"Median: {median:.2f}")
print(f"Mode: {mode}")
print(f"Minimum: {min_value}")
print(f"Maximum: {max_value}")
print(f"Sum: {total_sum}")

# ヒストグラムを作成
plt.hist(numbers, bins=30)
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.title("Histogram of Random Numbers")
plt.show()
"""

出力には、計算された統計量とランダムな数値のヒストグラムが表示されます。

これらの例は、Gemini APIのコード実行機能の多様性を示しています。開発者はこの機能を活用して、効率的に幅広い問題を解決するアプリケーションを構築することができます。

プロットの生成とMLモデルの実行

Gemini APIのコード実行機能は、単なる数学演算や文字列操作を超えて、データ可視化やマシーンラーニングモデルの訓練も可能にします。

コード実行機能をテストする際、サンプルプロンプトにはヒストグラムプロットの作成が含まれていました。APIはプロットを生成するためのPythonコードを生成することができましたが、プロットのアーティファクトを直接返すことはできませんでした。ただし、生成されたコードを実行すれば、開発者はデザイアされた可視化を得ることができます。

同様に、APIはランダムデータの生成、トレーニングセットとテストセットへの分割、線形回帰モデルの作成と訓練、テストセットでの評価といったタスクを行うコードを生成することができました。ここでも、APIはこれらのタスクを実行するためのPythonコードを返しただけで、開発者がそれを実行して最終的な結果を得る必要がありました。

これらの例は、Gemini APIのコード実行機能の多様性を示しています。開発者はこの機能を活用して、データ処理、可視化、機械学習の高度な機能を持つアプリケーションを構築することができます。基盤となるインフラストラクチャの管理や複雑な開発環境の設定を行う必要がないため、開発者は問題解決とアプリケーション設計に集中できます。

Gemini APIコード実行の価格設定と制限

Gemini APIには開発者向けの無料プランがありますが、いくつかの制限があることに注意が必要です:

  • リクエスト制限: 無料プランには1分あたりのリクエスト数に制限があります。これは乱用を防ぐためです。

  • 実行時間: コード実行機能の最大実行時間は30秒です。それ以上かかるコードはタイムアウトします。

  • サポートライブラリ: コード実行環境ではNumPyやSciPyなど一部のライブラリしか使えません。より複雑なライブラリやカスタムパッケージはサポートされていません。

  • ファイルI/Oや非テキスト出力不可: コード実行機能ではファイルI/O操作やメディアファイルなどの非テキスト出力ができません。そのようなタスクには使えません。

  • 他の機能への影響: コード実行を有効にすると、ストーリーや論文の生成など、他のモデル出力の性能や品質に悪影響を及ぼす可能性があります。これも考慮する必要があります。

開発者がより柔軟性や使用制限の高いニーズがある場合は、Googleの有料プランを検討することをおすすめします。有料プランではリクエスト制限の増加、実行時間の延長、より多くのライブラリやカパビリティにアクセスできます。

全体として、Gemini APIのコード実行機能は開発者にとって強力なツールですが、その制限と価格設定を理解し、自身のユースケースに合っているかを確認することが重要です。

FAQ