【初心者向け】WindowsでAIボットを自作する方法|PythonインストールからGUI実装、アプリ化まで完全解説

   2026/03/18

自分専用のAIチャットをローカルで使いたかったので、Windows標準機能であるPowerShellを使って作成してみました。

前提として通信環境は必要ですが、わざわざブラウザを開く必要がないので、少し調べものをしたい時に便利です。

この記事では、自分専用のAIチャットをWindowsで作成する方法を解説します。

※PCスペックが高くなくても動く「軽量モデル」で作成しています。





今回作るAIボットの完成イメージ

  • 入力するとAIが応答
  • GUI付きアプリ
  • API接続済み
  • ローカル実行可能

AIボット作成に必要なもの

  • Windowsパソコン
  • Python
  • PowerShell
  • 通信環境
  • API(無料のものを使用)

できればWindows10以降、パソコンスペックはWindows10が普通にサクサク動いているなら問題ありません。

Pythonとは?
初心者でも扱いやすい人気のプログラミング言語。 シンプルな文法が特徴で、AI開発やWebアプリ開発、データ分析など幅広く使われています。 今回のAIボットも Pythonを使って作成しています。
PowerShellとは?
PowerShell(パワーシェル)とは、Windowsに標準搭載されているコマンド入力ツールです。マウスで操作する代わりに、文字で命令(コマンド)を入力してパソコンを操作します。
APIとは?
アプリ同士をつなぐ「窓口」のような仕組み。 今回の場合は、PythonからAIサービスにリクエストを送り、回答を受け取るためにAPIを利用しています。



コードの安全性について

本記事で紹介しているコードは、すべて基本的に安全な処理のみで構成されていますが、実行環境や設定によっては意図しない動作が発生する可能性があります。

安心して使用するために、以下のポイントを確認してください。

外部APIの使用について

本記事ではGeminiAPIなどの外部サービスを利用しています。
APIキーは第三者に公開しないよう注意してください。

実行前のコード確認

コードをそのまま実行する前に、内容を一度確認することを推奨します。
特に以下の処理には注意してください:

* 外部通信(APIリクエスト)
* ファイルの読み書き処理
* 環境変数の使用

仮想環境での実行を推奨

Pythonの仮想環境(venvなど)で実行することで、PC本体への影響を最小限に抑えることができます。

自己責任での利用

本記事のコードは学習目的で提供しています。実行・応用はご自身の責任で行ってください。

💡 不安な方へ

まずはテスト環境やサブPCでの実行から始めるのがおすすめです。

全体の流れ

  1. 無料APIキーを取得
  2. Python環境準備(Pythonインストール)
  3. プロジェクトフォルダ作成
  4. 仮想環境作成
  5. 必要ライブラリインストール
  6. AIボット作成
  7. ローカルで動作確認
  8. exe化(デスクトップアプリ化)

ステップ① 無料のAPIキーを取得する

まずはGemini APIキーを取得します。

こちらにアクセスしてGoogleアカウントでログインします。

ログインしたら画面右上にある「APIキーを作成」からAPIキーを作成します。

分かりやすいキーの名前を入力して「キーを作成」をクリックします。

画面にプロジェクトが表示されますので、任意の名前を付けて、キーの箇所にあるリンクをクリックします。

「キーをコピー」をクリックしてコピーします。

コピーしたAPIキーはメモ帳などに書いて、安全な場所に保管しておきます。メモ帳が心配な場合は手書きでメモしておくのもいいでしょう。

【重要】APIキーは絶対に誰とも共有しないようにしましょう。APIキーが漏洩すると、第三者による不正使用で課金される可能性もありますので、厳重に保管してください。

注意点(無料 API を使う前に知っておくこと)

無料枠は制限付き
 → 使用回数やリクエスト数、トークン量に上限あり。超えると課金が必要です。

用途によって向き不向きがある
 → 例:テキスト対話、要約、画像生成、音声処理 などで最適モデルが変わります。

API キー(認証)が基本必要
 → 各サービスに登録して API キーを取得する必要があります。

質問(プロンプト)内容はGoogleサーバーに送信される。

APIリクエストには主に次の情報が含まれます。

  • ユーザーの質問(プロンプト)
  • 会話履歴(送っている場合)
  • APIキー
  • モデル指定(例:gemini-1.5-flash など)

どこまで気にするかは人それぞれですが、機密性の高いワードなどは避けるのが無難です。



ステップ② デスクトップにAIBOT用のフォルダを作成

作業をしやすくするため、事前にデスクトップで任意の名前のフォルダを作成します。例えばAIBOTフォルダなど。今回はフォルダもファイル名もAIBOTで進めていきます。

ステップ③ PythonをWindowsにインストールする

次のステップではWindowsにPythonをダウンロードします。

必ず公式サイトからダウンロードしてください。

AI開発におすすめのバージョンは3.11.9です。

公式サイト: https://www.python.org/

【重要】インストール時に必ず「Add to PATH」にチェックを入れてください。

インストール画面で必ず、

☑ Add python.exe to PATH

にチェックを入れてから「Install Now」を押すようにします。これを忘れると「pythonが認識されない」「pipが使えない」と言ったトラブルが発生します。

ステップ③ PowerShellを起動する

PowerShellの起動方法はいくつかあります。

  • デスクトップの「ここに入力して検索」にPowerShellと入力する
  •  + Rで「ファイルを指定して実行」にPowerShellと入力して実行
  • 目的のフォルダ内でキーボードのShiftを押しながら右クリックで「PowerShellウィンドウをここで開く」から起動(おすすめ)

ステップ④ Pythonが動作するか確認する

Pythonがきちんとインストールできているかを確認します。PowerShellで下のコマンドを試します。

python --version

バージョンが表示されればOKです。

次はpipが使えるかを確認します。

pip(ピップ)とは、Pythonのライブラリ(追加機能)をインストール・管理するツールです。

pip --version

もし、「pip は認識されません」と出たら下のコードを実行します。

python -m ensurepip --upgrade

きちんとバージョンが表示されればOKです。



ステップ⑤ Pythonで仮想環境を作成する

仮想環境はPCの中に小さなPython環境を作る仕組みです。

仮想環境を使わないと、プロジェクトが複数ある場合に予期せぬバッテイングが発生し、Pythonが壊れる可能性があります。

仮想環境を使うと、

  • プロジェクトごとに独立しているので環境が壊れない
  • 不要になったら削除できる
  • セキュリティ的に怪しいライブラリでも隔離される

と言ったメリットがあります。よって新しいプロジェクトを作成する時は、まず仮想環境を作成してからすべての作業を実行するようにします。

PowerShellを起動して、ステップ②で作成したフォルダに移動します。

cd C:\Users\Desktop\AIBOT

次に以下のコマンドを実行します。

python -m venv venv

実行するとAIBOTフォルダの中にvenvフォルダが作成されます。

ステップ⑥ 仮想環境を起動する

PowerShellで下のコマンドを実行します。

.\venv\Scripts\Activate.ps1

(venv)と表示されればOKです。(venv)が表示されている限り仮想環境での作業となります。

ステップ⑦ 必要ライブラリをインストールする

Gemini用のライブラリgoogle-generativeaiをインストールします。

google-generativeaiは、Googleの生成AI(Gemini)をPythonから使うための公式ライブラリです。簡単に言うと、PythonプログラムからGemini AIに質問したり文章生成させるためのツールです。

インストールはPowerShellから実行します。

pip install google-generativeai

ステップ⑧ .envファイルを作成する

envファイルとは、アプリの設定情報や秘密情報(APIキーなど)をコードとは別に保存するためのファイルです。主にプログラムの環境変数をまとめて管理するために使います。

今回はAPIキーを扱うので、安全性の観点から直接コードに記述せず、最初にevnファイルを作成してそこにAPIキーを記述して扱うようにします。

PowerShellで以下のコマンドを実行します。

pip install python-dotenv

次にデスクトップのAIBOTフォルダ内に新規でテキストドキュメントを作成します。

何もないフォルダ内で右クリックから「新規作成」→「テキストドキュメント」をクリックします。

ファイル名を.envに変更します。拡張子は必ず.txtではなく.envにしてください。ファイル名はなしでOKです。

作成したファイルをメモ帳で開いて以下を記述します。おそらく最初はどのプログラムで開くかの選択画面になると思いますので、右クリックから「プログラムから開く」→「メモ帳」。メモ帳がなければ「別のプログラムを選択」からメモ帳を探して開きます。

APIキーはステップ①で取得したものを書きます。

GEMINI_API_KEY=あなたのAPIキー

メモ帳の「ファイル」→「上書き保存」を選択して保存します。

📁 AIBOTフォルダ
├── 📁 venv
└── 📄 .env ← ここに置く

ステップ⑨ pyファイルを作成する

.pyファイルとは、Pythonで書かれたプログラムファイルのことです。

簡単に言うと、Pythonのコードを保存するためのファイルです。

デスクトップのAIBOTフォルダ内にAIBOT.pyと言うファイルを作成します。

本来はVS CODEなどのエディタで編集しますが、メモ帳でもOKです。

AIBOTフォルダ内で右クリックから「新規作成」→「テキストドキュメント」をクリックします。

名前を「AIBOT.py」に変更します。拡張子は必ず.txtではなく.pyにしてください。

ステップ⑩ pyファイルを編集する

先ほど作成したAIBOT.pyファイルをクリックしてメモ帳で以下のコードをコピー&ペーストします。※以前書いていたコードはAPI制限がかなりシビアなので改良版のコードに書き換えています。

import tkinter as tk
from tkinter import scrolledtext
import google.generativeai as genai
import os
import threading

api_key = os.getenv("GEMINI_API_KEY")
if not api_key:
    raise ValueError("GEMINI_API_KEY が設定されていません")
genai.configure(api_key=api_key)

model = genai.GenerativeModel("models/gemini-flash-lite-latest")
chat_session = model.start_chat(history=[])  # 会話履歴を保持

def append_text(tag, text):
    """メインスレッドでテキストを安全に追加"""
    chat_area.insert(tk.END, text, tag)
    chat_area.see(tk.END)

def send_message():
    user_input = entry.get()
    if not user_input.strip():
        return

    # UI操作はメインスレッドからroot.afterで
    root.after(0, lambda: entry.delete(0, tk.END))
    root.after(0, lambda: entry.config(state=tk.DISABLED))
    root.after(0, lambda: send_button.config(state=tk.DISABLED))
    root.after(0, lambda: append_text("user_tag", "You:\n"))
    root.after(0, lambda: append_text("user_text", user_input + "\n\n"))

    try:
        response = chat_session.send_message(user_input)
        reply = response.text
    except Exception as e:
        reply = None
        error_msg = str(e)

    def update_ui():
        if reply:
            append_text("ai_tag", "AI:\n")
            append_text("ai_text", reply + "\n\n")
        else:
            append_text("", f"Error: {error_msg}\n\n")
        entry.config(state=tk.NORMAL)
        send_button.config(state=tk.NORMAL)
        entry.focus()

    root.after(0, update_ui)

def send_message_async():
    threading.Thread(target=send_message, daemon=True).start()

# ===== UI構築 =====
root = tk.Tk()
root.title("AIBOT_FastVersion")
root.geometry("720x600")
root.configure(bg="#1e1e1e")

chat_area = scrolledtext.ScrolledText(
    root, wrap=tk.WORD, bg="#2b2b2b", fg="white", font=("Segoe UI", 11)
)
chat_area.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)
chat_area.tag_config("user_tag", foreground="#4FC3F7", font=("Segoe UI", 10, "bold"))
chat_area.tag_config("ai_tag", foreground="#81C784", font=("Segoe UI", 10, "bold"))
chat_area.tag_config("user_text", foreground="white")
chat_area.tag_config("ai_text", foreground="white")

entry = tk.Entry(
    root, bg="#3c3f41", fg="white", insertbackground="white", font=("Segoe UI", 11)
)
entry.pack(fill=tk.X, padx=10, pady=5)
entry.bind("", lambda event: send_message_async())

send_button = tk.Button(
    root, text="Send", command=send_message_async,
    bg="#4FC3F7", fg="black", font=("Segoe UI", 10, "bold")
)
send_button.pack(pady=5)

root.mainloop()

メモ帳の「ファイル」→「上書き保存」から保存します。

ここまでのAIBOTフォルダ内の構成は以下画像のようになっています。

今回のコードでは、軽量モデルを使用し、PCスペックが高くなくてもある程度快適に動くものを作成しています。

ステップ⑪ AIBOTを実行する

AIBOTを実行します。

まず、デスクトップのAIBOTフォルダ内で作成したAIBOT.pyを右クリック→「プロパティ」から場所を確認します。プロパティ画面に表示されているパスをコピーします。

PowerShellを起動して仮想環境に入ります。

.\venv\Scripts\Activate.ps1

AIBOTフォルダに移動します。

cd C:\Users\Desktop\AIBOT

移動したら下のコマンドを実行します。

python AIBOT.py

AIBOTが起動します。

AIBOTの使い方

使い方はいたってシンプルです。チャット画面下にあるテキスト入力ボックスに聞きたいことを入力してキーボードのEnterを押すとアンサーが返ってきます。

初回起動時は時間がかかる可能性があります。

AIBOTに向いている用途

  • 質問への回答・説明
  • 文章の作成・添削
  • アイデア出し
  • コードのレビュー・デバッグ

AIBOTに向いていない用途

  • リアルタイム検索
  • 現在の天気・ニュース
  • 株価・為替などリアルタイム情報

このAIBOTはあくまで簡易的なものです。リアルタイムに情報を反映させるには、それぞれの用途でAPIが必要になります。


AIBOTの終了の仕方

基本的にPowerShellで何か作業中(例:Pythonスクリプトを走らせている場合)やライブラリなどのダウンロード中でなければ、PowerShellウィンドウの閉じるボタンから終了してもOKです。

おすすめの確実な終了方法は、PowerShell内でキーボードのCtrl + Cですべての処理を中断させてから、deactivateで仮想環境から離脱後にexitでPowerShellを終了します。

Pythonにおけるdeactivateは、「仮想環境(Virtual Environment)から抜け出す」ためのコマンドです。

Pythonで開発をしていると、プロジェクトごとにライブラリを使い分けるために仮想環境(venvなど)を作成しますが、その「隔離された空間」での作業を終了して、通常の(システム全体で使う)Python環境に戻る際に使用します。

次にAIBOTを起動する時は、まず仮想環境に入ってから実行しましょう。

作成したAIBOTをデストップアプリ化する方法

作成したAIBOTをダブルクリックで起動できるようにアプリ化する方法もあります。

AIBOTの起動にPowerShellが不要で、見た目は普通のアプリになります。

PowerShellで下のコマンドを実行します。

pip install pyinstaller
pyinstaller --onefile AIBOT.py

実行するとAIBOTフォルダにdistフォルダが作成されて、その中にAIBOT.exeが生成されます。

📁 AIBOTフォルダ
├── 📁 venv
├── 📁 dist ←この中に生成される
├── 📄 AIBOT.py
└── 📄 .env

AIBOT.exeをダブルクリックするとBotが起動します。

※修正や改良でAIBOT.pyファイルの中身を編集した場合は、再度アプリ化を実行する必要があります。元のAIBOT.exeは削除してもOKです。

AIBOTでエラーが出る場合

エラー内容にもよりますが、出やすいエラーはAPI制限エラーです。

解決策① API制限エラー

APIの利用制限にかかっている可能性があります。

今回使用したGeminiAPIですが、1日、または時間毎にAPIリクエストの制限があります。

最初に登録したaistudioにアクセスして左メニューにあるレート制限から確認できます。

制限にかかっている場合は時間をおいてリクエスト送信するしかありません。

解決策② モデルを変えてみる

モデルによって無料枠の上限が異なるため、別モデルなら使える可能性があります。

その場合、AIBOTフォルダに新しく.pyファイルを追加します。名前は例としてmodel_check.pyとします。

model_check.pyをメモ帳で開いて下のコードをコピペして上書き保存します。

import google.generativeai as genai
import os

genai.configure(api_key=os.getenv("GEMINI_API_KEY"))

for m in genai.list_models():
    print(m.name)

次にPowerShellを開いてAIBOTフォルダに移動し、下のコマンドを実行します。

python model_check.py

あなたのAPIキーで使用できるモデル一覧が表示されます。

その中から違うモデルを選んでAIBOT.pyの中身をメモ帳で編集します。下のコードを見つけてモデル名だけを変更して上書き保存します。

model = genai.GenerativeModel("ここにモデル名を入力する")

比較的安定しているのは、

  • gemini-1.5-flash
  • gemini-2.5-flash
  • gemini-2.0-flash-lite

などです。



まとめ

長くなりましたが、今回はWindowsでPythonを使ったAIBOTの作り方を解説しました。

ゆっくり焦らずにステップを踏んでいけば簡単に作成できます。

AIエージェント化やGUIの変更なども書こうと思いましたが、さすがに長くなりすぎるので、次回に書きたいと思います。

この記事をシェアする

カテゴリー