見出し画像

Gemini Code Assistを試すの巻

 プログラミング関連のAI、日進月歩というか、半日刻みでどんどん変わるので目が回ります。

 昨日未明、上の投稿をしたとき、ネット情報を見てみるとClaude 3.7 SonnetだのClaude Codeだの、の記事があふれていて、次はClaudeの時代か?そっちの情報収集が必要か? と思っていたのです。
 そこから半日たったらこんどは、Gemini Code Assistの話題でもちきり。VSCodeにプラグインとして入れられるようですし、今まで自分が使ってきた環境に親和性が高そう。無料で十分使えるみたいですし、こうなるとClaude試している余裕が無い(^_^;) 
 そんなこんなで今回は、Gemini Code Assistを試しました。

やってみる

いつものVSCode起動から、「拡張機能」のマーケットプレース見てGeminiで検索。

Gemini Code Assistを見つけてインストール。

Gemini入りました!

Sign in with Google

昨日、YAMLの勉強しようとしていたので、yamltest1.py なんてファイルを作ってみました。こんな感じ。ただ、まだ何も書いていない。

Dismiss(却下)したら使えなくなるのかな?AskGeminiのところをクリックすると

ふんふん・・、英語分からん(^_^;) 日本語で聞くよ。
「日本語でできますか」

これでかなりホッとしたよ(笑)

ん?有償? 無料だと思っていたんだけど。
まあ、知らないうちに引き落とされることは無いだろう・・。


YAMLを試す

ファイル test.ymlを用意

vocabularies:
  - word: "獨居"
    pinyin: "dú jū"
    japanese: "一人暮らし"
  - word: "長輩"
    pinyin: "zhǎng bèi"
    japanese: "年長者"
  - word: "聚餐"
    pinyin: "jù cān"
    japanese: "会食"
  - word: "圍爐"
    pinyin: "wéi lú"
    japanese: "囲炉裏を囲む"

プロンプト

>test.yml の中身は見えますか?
このファイルを開き、二番目の単語(つまり今回は「長輩」です) を読みだして表示するpythonのコードを書いてください。

Geminiの答え

import yaml

def get_second_word(filepath):
    """
    指定された YAML ファイルから二番目の単語を読み出して表示する関数。

    Args:
        filepath: YAML ファイルのパス。

(以下略)

聞きなおす

Geminiの再回答

import yaml

def get_second_word(filepath):
    """
    指定された YAML ファイルから二番目の単語を読み出して表示する関数。

    Args:
        filepath: YAML ファイルのパス。

    Returns:
        二番目の単語(str)。
        ファイルが存在しない場合や、構造が想定と異なる場合は None を返す。
    """
    try:
        with open(filepath, 'r', encoding='utf-8') as f:
            data = yaml.safe_load(f)

        if 'vocabularies' in data and len(data['vocabularies']) >= 2:
            second_word_data = data['vocabularies'][1]
            if 'word' in second_word_data:
                return second_word_data['word']
            else:
                return None
        else:
            return None

    except FileNotFoundError:
        print(f"エラー: ファイルが見つかりません: {filepath}")
        return None
    except yaml.YAMLError as e:
        print(f"エラー: YAML ファイルの読み込み中にエラーが発生しました: {e}")
        return None
    except Exception as e:
        print(f"予期せぬエラーが発生しました:{e}")
        return None

# ファイルパスを指定
filepath = r"./test.yml"

# 関数を呼び出して結果を表示
second_word = get_second_word(filepath)

if second_word:
    print(f"二番目の単語: {second_word}")
else:
    print("二番目の単語が見つかりませんでした。またはファイルに問題があります。")

成功

実行したらターミナルに、無事
>二番目の単語: 長輩
と表示されました。

pip install PyYAMLなんて暗黙の前提なんでしょうね。
コードの上でimport yaml から始めたGeminiはまったく間違っていないのに「私の知識不足により」と謝罪からはじめるのは、カスタマーサポートの鑑といったところでしょうか。

いいなと思ったら応援しよう!