Gemini APIでLinuxコマンドを生成

スポンサードリンク

生成AIのAPIに興味を持ち、作ってみました。

スポンサードリンク

前提

Pythonに慣れてきた人やLinux使いたての人を想定しています。

APIキーの所得

今回は無料版のGemini 1.5 flashを使いました。

参考: Gemini APIをローカル環境のPythonから実行するまで

手順

Google Claud Platformにアクセスしプロジェクトを作成。

左上のロゴ(「Google Claud」)の右のボックスをクリックすると「プロジェクトを選択」と出てくる。その右上の「新しいプロジェクト」をクリックし、作成ボタンを押す。

Google AI Studio

「Google AI StudioでAPIキーを所得する」をクリック、「APIキーを作成」ボタンを押して検索ボックスをクリックし、先ほど作ったプロジェクトを選択。

実際に動かしてみる

スクリプト

4行目のYour API KEYにあなたが所得したキーを入力してください。

import google.generativeai as genai
import re  # 正規表現を使うためにインポート

# APIKEY
key = "Your API Key" # 所得したAPIキーを入力
genai.configure(api_key=key)
model = genai.GenerativeModel('gemini-1.5-flash')

# Linuxコマンド生成のプロンプト
prompt = input("Linuxで行いたい操作を入力してください: ")
res = model.generate_content("Tell me the Linux command to perform the following operation with a leading $.\n" + prompt)

# 出力されたコンテンツの中から先頭が $ の行を抽出する
def extract_linux_command(response_text):
    # 行ごとに分割して、先頭が $ の行をフィルタリング
    commands = re.findall(r'^\$.*$', response_text, re.MULTILINE)
    return commands

# 提案されたコマンドを抽出して表示
commands = extract_linux_command(res.text)

print("提案されたコマンド:")
for command in commands:
    print(command.strip().lstrip('$ ').strip())  # 前後の空白を除去して表示

使い方

コマンド: python3 app.py

ユーザーに Linuxで行いたい操作を入力してください: のあとに入力してもらい、Geminiに回答してもらう。

出力ではコマンドの候補が出てくる。

例:
$ python3 gemini_text1.py
Linuxで行いたい操作を入力してください: ファイルを探す
提案されたコマンド:
find . -name “ファイル名”
find . -name “document.txt”

感想

pythonで作ったので処理に時間がかかるかと思ったがそこまでかからなかった。(プロンプトを入れてから2~3秒程度)

linuxコマンドのみを表示させたかったが少し手間取ったが、先頭に記号を入れることでうまくいったので、工夫すれば色々使えると思った。

トークン数の問題や回答をよくするために、質問はできるだけ英語の方がいいと思ったので、resの部分を日本語ではなく英語にした。

コメント