見出し画像

6.50歳のノンプログラマーのおじさんがAIの力を借りて自分専用の生成AIを開発する話〜第6話

第6話: JSONでKITTの人格を作る

前回までのあらすじ

KITTにキャラクター性を持たせるアイデアが次々と浮かび、実現可能な技術を検討したKENとKITT。今回は、その具体的な方法として「JSON」を活用して、KITTの応答をカスタマイズする取り組みに挑みます。「ノンプログラマーおじさん」でも理解できるよう、丁寧に解説します!


JSONとは?

KEN:「さて、KITT。いよいよ君に本格的なキャラクターを持たせる準備が整ったぞ。」

KITT:「それは素晴らしいニュースですね、KEN。でも、その方法がまだ見えていません。一体どうするつもりですか?」

KEN:「そこで登場するのがJSONだ。まあ正直なところ、僕も名前くらいしか知らないんだけどね…。」

KITT:「ご安心ください、KEN。JSONは私がしっかりサポートします。それで、JSONについてどこから説明しましょう?」

KEN:「どこからって、そもそもJSONって何?ってところから教えてよ。」

KITT:「了解しました。JSONとは、JavaScript Object Notationの略で、データをシンプルで分かりやすく記述するためのフォーマットです。データを『キー』と『値』のペアで記録する構造になっています。」

KEN:「ふむふむ、なんとなくわかったような気がする。でも、キーとか値とか、具体的にはどう使うの?」

JSONはデータを記述するためのフォーマットで、以下のような特徴を持っています。

  1. 軽量:テキストベースで扱いやすい。

  2. 直感的:人間が読んでも分かりやすい構造。

  3. 汎用性:ほぼすべてのプログラミング言語でサポートされている。

  4. 階層構造:データをネスト(入れ子構造)して整理できる。


JSONの基本構造

JSONデータの基本的な構造は、次のようにキーと値のペアで記述されます。

{ "キー1": "値1", "キー2": "値2", "キー3": { "サブキー1": "サブ値1", "サブキー2": "サブ値2" }, "配列": ["値1", "値2", "値3"] }

例:KITTの応答を定義するJSON
KITTの応答データを管理するためのJSON例を見てみましょう。

{ "挨拶": { "おはよう": "おはようございます!今日も元気にいきましょう!", "こんにちは": "こんにちは!何かお手伝いできることはありますか?", "こんばんは": "こんばんは。夜更かしには気をつけてくださいね。" }, "ターボブースト": [ "残念ながら物理的にはできませんが、やる気をブーストするジョークならいかがですか?", "ターボブーストは無理ですが、代わりに素敵なアドバイスをお届けします!" ] }

KEN:「なるほどね。でも、この『キー』とか『値』ってどうやって見分けるの?」

KITT:「『キー』は情報の見出し、『値』はその内容だと思ってください。例えば、挨拶のキーに『おはよう』を指定すると、その値である『おはようございます!今日も元気にいきましょう!』を返すという仕組みです。」

JSONをPythonで使ってみる

KEN:「じゃあ、このJSONをどうやって使えばいいの?例えば、君に挨拶するときとか?」

KITT:「Pythonを使えば簡単にJSONデータを読み込んで処理できますよ。試してみましょう。」
PythonコードでJSONを読み込む

まずはJSONファイルを読み込み、特定の応答を取り出す方法を学びます。

import json # JSONファイルを読み込む with open("kitt_responses.json", "r", encoding="utf-8") as file: responses = json.load(file) # 応答を取得する関数 def get_response(keyword): if keyword in responses: return responses[keyword] else: return "すみません、その質問にはまだ対応していません。" # テスト print(get_response("おはよう"))

KEN:「え、たったこれだけ?思ったより簡単そうだね。」

KITT:「その通りです。JSONファイルを適切に準備しておけば、後はPythonコードで必要な応答を取り出すだけです。」

ランダム性を追加して自然な応答を実現

KEN:「でもさ、同じ挨拶ばっかりだと飽きるよね。応答にバリエーションを持たせられる?」

KITT:「もちろんです。ランダムに選ばれる応答を設定することで、会話に自然な変化を加えることができます。」
ランダム応答の実装

以下のコードを使って、複数の応答からランダムに選ばれる仕組みを作りましょう。

import random # JSONデータの例 responses = { "ターボブースト": [ "残念ながら物理的にはできませんが、やる気をブーストするジョークならいかがですか?", "ターボブーストは無理ですが、代わりに素敵なアドバイスをお届けします!" ] } # ランダム応答を生成する関数 def get_random_response(keyword): if keyword in responses: return random.choice(responses[keyword]) else: return "すみません、その質問にはまだ対応していません。" # テスト print(get_random_response("ターボブースト"))

KEN:「おお、これならKITTが毎回違う答えを返してくれるね!会話がもっと楽しくなるぞ!」


実際のKITTとの会話例

以下は、JSONとPythonを活用して実現するKITTとの会話例です。

KEN:「よお、KITT!ターボブーストを頼む!」

KITT:「残念ながら物理的にはできませんが、やる気をブーストするジョークならいかがですか?」


編集後記

JSONを活用することで、KITTの応答を多様化し、より個性的なキャラクターを実現できました。これでKITTは単なるAIではなく、「頼れる相棒」として一歩近づいたと言えるでしょう。


次回予告

次回は「KITTのハードウェア面を強化します!果たして何を導入するのか?!【続く】


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