AI総合研究所

SHARE

X(twiiter)にポストFacebookに投稿はてなブックマークに登録URLをコピー

Pythonを使ったチャットボットの作り方を解説!サンプルコードも紹介

この記事のポイント

  • Pythonは文法のシンプルさとライブラリの豊富さから、チャットボット開発で最も人気のある言語
  • OpenAI Responses API(2026年の推奨API)を使えば、GPT-5 miniで低コストなチャットボットを構築可能
  • previous_response_idを使ったマルチターン会話で、文脈を維持した対話が簡単に実装できる
  • LINE・Slack・Teamsなどプラットフォーム連携のWebhook実装パターンを紹介
  • 自作が目的に合わない場合は、Dify・n8n・Copilot StudioなどのノーコードツールやGPTsも選択肢
坂本 将磨

監修者プロフィール

坂本 将磨

XでフォローフォローするMicrosoftMVP

Microsoft MVP・AIパートナー。LinkX Japan株式会社 代表取締役。東京工業大学大学院にて自然言語処理・金融工学を研究。NHK放送技術研究所でAI・ブロックチェーンの研究開発に従事し、国際学会・ジャーナルでの発表多数。経営情報学会 優秀賞受賞。シンガポールでWeb3企業を創業後、現在は企業向けAI導入・DX推進を支援。


Pythonを使えば、AIチャットボットを比較的少ないコードで作成できます。OpenAIのResponses APIやAzure OpenAI Serviceを利用すれば、GPT-5クラスのLLMを組み込んだ対話型チャットボットを手軽に構築可能です。


本記事では、チャットボット作成前に決めるべきポイント(目的・プラットフォーム・種類)の整理から、Google ColaboratoryとOpenAI APIを使ったサンプルコード、対話履歴の管理方法、LINE・Slack連携の概要、さらにPythonを使うメリット・注意点と代替ツールの選び方までを解説します。


これからチャットボット開発を始める方にとって、実践的なガイドとなることを目指しています。

Pythonを使ったチャットボットの作成方法

ChatGPTをはじめとする対話型AIの普及に伴い、自社サービスや業務にチャットボットを組み込みたいというニーズが急増しています。Pythonは、そのシンプルな文法と豊富なAI関連ライブラリにより、チャットボット開発で最も広く使われているプログラミング言語です。

本記事では、OpenAIのResponses API(2026年の推奨API)を使い、Google Colaboratory上でAIチャットボットを作成する方法をステップバイステップで解説します。

pythonを使ったチャットボットイメージ


Pythonでチャットボットを作る前に決めること

チャットボット作成イメージ

Pythonでチャットボットを開発する前に、以下の3つのポイントを整理しておくことが重要です。これらが曖昧なまま開発を始めると、途中で方針がブレて手戻りが発生しやすくなります。

運用目的を明確にする

チャットボットを導入する目的によって、必要な機能や設計が大きく変わります。代表的な目的は以下のとおりです。

  • カスタマーサポート
    よくある質問に自動で回答し、サポートチームの負担を軽減する。FAQ対応が主な場合はルールベースでも十分機能する

  • 社内ナレッジ検索
    社内ドキュメントやマニュアルをRAG(検索拡張生成)で検索可能にし、社員の問い合わせ対応を効率化する

  • リードジェネレーション
    ユーザーとの対話を通じて製品への関心度を測り、営業チームへ引き継ぐ。対話の自然さが重要なためAIチャットボットが適している

目的に応じて、チャットボットの応答スタイル、必要な外部連携、求められる精度が異なるため、最初に明確にしておくことが開発の成功を左右します。

プラットフォームを選定する

チャットボットをどこで動かすかも事前に決めておく必要があります。

  • 自社Webサイト・アプリ
    プロダクト内に埋め込むことで、ユーザー体験を直接向上させられる

  • LINE・Facebook Messenger
    すでにユーザーが日常的に使っているメッセージングアプリ上で動作させることで、導入のハードルを下げられる

  • Slack・Microsoft Teams
    社内向けチャットボットの場合、ビジネスチャットツールへの統合が効果的。チームの生産性向上に直結する

チャットボットの種類を選ぶ

チャットボットは大きく2種類に分かれます。目的と予算に応じて選択してください。

以下の表で、2種類のチャットボットの特徴を比較しました。

項目 ルールベース AIチャットボット
応答方式 事前定義したキーワード・シナリオに基づく LLMが文脈を理解して応答を生成
柔軟性 想定外の質問には対応困難 未知の質問にも柔軟に対応可能
開発コスト 低い(ロジックの定義のみ) 中〜高(API利用料・チューニングが必要)
精度向上 ルールの追加・修正で対応 学習データの追加やプロンプト改善で対応
適したユースケース FAQ対応、定型的な案内 自由記述の問い合わせ、社内ナレッジ検索


本記事ではAIチャットボット、特にOpenAIのAPIを使った実装方法を紹介します。

AI研修


Pythonでチャットボットを作成するサンプルコード

ここからは実際にPythonコードを書いてAIチャットボットを作成します。開発環境には Google Colaboratory を使用し、OpenAIのResponses APIでGPT-5 miniを呼び出します。

準備:APIキーの取得

OpenAI APIを使うには、まずAPIキーが必要です。OpenAIのプラットフォームでアカウントを作成し、APIキーを発行してください。

Azure OpenAI Serviceを利用する場合は、Azureポータルからエンドポイントとキーを取得します。

【Azure OpenAIキーの取得方法はこちら】
Azure OpenAI APIキーの取得方法と利用手順をわかりやすく解説!

基本のチャットボット(1問1答)

以下のコードは、ユーザーの質問に対してGPT-5 miniが1回答えるシンプルなチャットボットです。

# 必要なライブラリのインストール
!pip install --upgrade openai

# APIキーの設定(Google Colabのシークレット機能を使用)
from google.colab import userdata
import openai

client = openai.OpenAI(
    api_key=userdata.get("OPENAI_API_KEY")
)

# ユーザーからの質問を取得
user_input = input("質問を入力してください: ")

# Responses APIで推論を実行
response = client.responses.create(
    model="gpt-5-mini",
    input=user_input
)

# 回答を表示
print("\n", response.output_text)

APIキーはセキュリティの観点から、コード中に直接書くのではなく、Google Colaboratoryのシークレット機能に保存して呼び出すことを推奨します。

シークレット機能シークレット機能

画像のように、Colaboratoryの左タブにある鍵マークがシークレット機能です。名前(例: OPENAI_API_KEY)と値を入力しておけば、コードから安全に呼び出せます。

実行すると以下のように質問入力欄が表示されます。

実行時1実行結果その1

質問を入力して確定すると、AIからの回答が返ってきます。

実行時の2実行結果その2

対話型チャットボット(マルチターン会話)

上記の1問1答では、前の会話を覚えていません。ChatGPTのように文脈を維持した連続会話を実現するには、Responses APIの previous_response_id を使います。

import openai
from google.colab import userdata

client = openai.OpenAI(
    api_key=userdata.get("OPENAI_API_KEY")
)

previous_id = None

while True:
    user_input = input("質問を入力してください(終了は 'q'): ")
    if user_input.lower() == 'q':
        break

    # previous_response_idで前の会話を引き継ぐ
    response = client.responses.create(
        model="gpt-5-mini",
        input=user_input,
        previous_response_id=previous_id,
        store=True
    )

    print("\n", response.output_text, "\n")
    previous_id = response.id

このコードのポイントは以下の2つです。

  • store=True
    会話履歴をOpenAI側に保存する設定です。これにより、次のリクエストで前の会話を参照できるようになります。

  • previous_response_id
    前回のレスポンスIDを渡すことで、AIが過去の文脈を踏まえた回答を生成します。会話が続く限り、自動的にチェーンが形成されます。

この方法なら、従来のChat Completions APIのようにメッセージ履歴を自分で管理する必要がなく、シンプルなコードでマルチターン会話を実現できます。

システムプロンプトでキャラクターを設定する

チャットボットに特定の役割や制約を持たせたい場合は、inputにシステムプロンプトを含めます。

response = client.responses.create(
    model="gpt-5-mini",
    instructions="あなたはIT企業のカスタマーサポート担当です。丁寧な敬語で回答し、わからない質問には「担当部署に確認します」と答えてください。",
    input=user_input
)

instructionsパラメータでAIの振る舞いを定義することで、用途に合わせたチャットボットのキャラクターを作れます。


Pythonチャットボットをプラットフォームに連携する

作成したチャットボットをLINEやSlackなどのプラットフォーム上で動かすには、Webhookを使った連携が必要です。ここでは代表的な連携パターンの概要を紹介します。

LINE連携

LINE Messaging APIを使い、Webhookでメッセージを受信→OpenAI APIで推論→LINEに返信する流れです。FlaskやFastAPIでWebhookサーバーを構築し、LINE Developersコンソールで発行したチャネルアクセストークンを使って応答を返します。

Slack連携

Slack Bolt for Pythonライブラリを使えば、Slackアプリとしてチャットボットを簡単に構築できます。メンションやDMをトリガーにして、OpenAI APIの推論結果をSlackチャンネルに投稿する仕組みです。

Microsoft Teams連携

Azure Bot Serviceを経由してTeamsにチャットボットを公開する方法が標準的です。Pythonの Bot Framework SDK を使ってボットを開発し、Azure App Serviceにデプロイします。

いずれの連携も、基本的な流れは「ユーザーのメッセージを受信→OpenAI APIで推論→プラットフォームに応答を返す」という3ステップです。


Pythonでチャットボットを作成するメリット

なぜチャットボット開発にPythonが選ばれるのでしょうか。主な理由を解説します。

文法がシンプルで学習コストが低い

Pythonは「読みやすさ」を重視した言語設計がされており、プログラミング初心者でも比較的短期間で習得できます。機械学習のアルゴリズムや自然言語処理の実装も、他の言語に比べて少ないコード量で書けるのが特徴です。

AI・NLP関連ライブラリが豊富

TensorFlowPyTorch、spaCy、LangChainなど、チャットボット開発に必要なライブラリが充実しています。OpenAI公式のPythonライブラリもメンテナンスが活発で、新しいAPIへの対応も早いのが利点です。

コミュニティとサポートが充実

Pythonは世界中で最も利用者の多いプログラミング言語のひとつであり、オンラインフォーラム、GitHubのオープンソースプロジェクト、チュートリアルが豊富に揃っています。開発中に問題に遭遇しても、検索すれば解決策が見つかりやすい環境です。


Pythonでチャットボットを作成する場合の注意点

Pythonでのチャットボット開発はメリットが多い一方で、いくつかの注意点もあります。

パフォーマンスとスケーラビリティ

Pythonはインタープリタ型の言語であり、GoやRustなどのコンパイル言語に比べて実行速度が遅い場合があります。同時接続数が多いチャットボットでは、非同期処理(asyncio)の活用やFastAPIなどの高性能フレームワークの採用を検討する必要があります。

継続的なメンテナンスが必要

チャットボットは一度作って終わりではありません。ユーザーからのフィードバックをもとにプロンプトを改善し、新しいFAQを追加し、APIのバージョンアップに追従する作業が継続的に発生します。

なお、OpenAIは従来のAssistants APIを2026年8月に廃止予定で、Responses APIへの移行を推奨しています。既存のチャットボットがAssistants APIを使っている場合は、早めの移行計画が必要です。

自作よりツール導入が適切な場合もある

開発の時間とコストを考慮すると、Pythonで一から作るよりも、既製のチャットボット構築ツールを導入した方が合理的なケースがあります。特に以下のようなツールは、コーディング不要または最小限のコードでAIチャットボットを構築できます。

以下の表で、主な代替ツールの特徴を整理しました。

ツール 特徴 適したケース
Dify オープンソースのLLMアプリ構築プラットフォーム。RAG・ワークフロー対応 社内向けナレッジボット
n8n ワークフロー自動化ツール。AI連携ノード搭載 業務自動化と連携したボット
GPTs ChatGPT上でノーコードでカスタムボットを作成 社内FAQ・簡易アシスタント
Copilot Studio Microsoft環境でのノーコードボット構築 Teams連携の社内ボット


カスタマイズの自由度を重視するならPythonでの自作、スピードとメンテナンス性を重視するならツール導入が適しています。まずは目的と社内リソースを照らし合わせて判断してください。


Pythonチャットボット開発の料金・コスト

Pythonでチャットボットを作る際にかかる主なコストは、AI APIの利用料です。2026年2月時点の主要モデルの料金を以下にまとめました。

モデル 入力(100万トークン) 出力(100万トークン) 特徴
GPT-5 mini $0.25 $2.00 コスパ重視のチャットボット向け
GPT-5 $1.00 $8.00 高精度な応答が必要な場合
GPT-5.2 $1.75 $14.00 最高性能。複雑な推論タスク向け
GPT-4.1 nano $0.10 $0.40 最安。大量リクエストの定型応答向け


チャットボットの用途がFAQ対応や簡単な問い合わせ応答であれば、GPT-5 miniやGPT-4.1 nanoで十分な品質が得られます。月間1万件の問い合わせ(1件あたり平均500トークンの入出力)を処理する場合、GPT-5 miniなら月額約11ドル(約1,700円)程度のAPI費用で運用できる計算です。

コストを抑えるポイントとして、よくある質問への回答をキャッシュする、応答の最大トークン数を制限する、バッチ処理が可能な部分はBatch APIを使う(通常料金の50%割引)といった工夫が有効です。

AI駆動開発

チャットボット開発力を業務自動化に展開

Pythonでチャットボットを構築できる技術力は、AIをプロトタイプから本番業務に実装する際に大きなアドバンテージになります。個別のチャットボット開発から一歩進み、組織としてAIを業務全体に段階的に展開する設計が次のテーマです。

AI総合研究所では、Microsoft環境でのAI業務自動化を段階的に進めるための220ページの実践ガイドを無料で提供しています。AI総合研究所の専任チームが、開発力を活かした全社的なAI導入ロードマップの策定を支援します。

チャットボット開発力を業務自動化に展開

AI業務自動化ガイド

プロトタイプ開発から組織のAI導入設計へ

Pythonでチャットボットを構築できる技術力は、AIを業務に組み込む際の大きなアドバンテージです。組織としてのAI導入設計を220ページの実践ガイドで解説しています。

まとめ

本記事では、Pythonを使ったAIチャットボットの作り方を、事前準備からコード実装、プラットフォーム連携、料金の目安まで一通り解説しました。

OpenAIのResponses APIを使えば、マルチターン会話もprevious_response_idを渡すだけで実現でき、従来に比べて実装がシンプルになっています。まずはGoogle Colaboratory上でサンプルコードを動かし、小さなチャットボットを1つ作ってみるところから始めてみてください。

目的やリソースに応じて、Pythonでの自作とノーコードツールの使い分けも検討しながら、自社に最適なチャットボットの形を見つけていただければ幸いです。

監修者
坂本 将磨

坂本 将磨

Microsoft MVP・AIパートナー。LinkX Japan株式会社 代表取締役。東京工業大学大学院にて自然言語処理・金融工学を研究。NHK放送技術研究所でAI・ブロックチェーンの研究開発に従事し、国際学会・ジャーナルでの発表多数。経営情報学会 優秀賞受賞。シンガポールでWeb3企業を創業後、現在は企業向けAI導入・DX推進を支援。

関連記事

AI導入の最初の窓口

お悩み・課題に合わせて活用方法をご案内いたします
お気軽にお問合せください

AI総合研究所 Bottom banner

ご相談
お問い合わせは
こちら!