ホームページ >バックエンド開発 >Python チュートリアル >シンプルな生成 AI チャットボットの構築: 実践ガイド

シンプルな生成 AI チャットボットの構築: 実践ガイド

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 13:12:11220ブラウズ

Building a Simple Generative AI Chatbot: A Practical Guide

このチュートリアルでは、Python と OpenAI API を使用して生成 AI チャットボットを作成する手順を説明します。コンテキストを維持し、役立つ応答を提供しながら、自然な会話を行うことができるチャットボットを構築します。

前提条件

  • Python 3.8
  • Python プログラミングの基本的な理解
  • OpenAI API キー
  • RESTful API の基礎知識

環境のセットアップ

まず、開発環境をセットアップしましょう。新しい Python プロジェクトを作成し、必要な依存関係をインストールします。

pip install openai python-dotenv streamlit

プロジェクトの構造

私たちのチャットボットはクリーンなモジュール構造になります:

chatbot/
├── .env
├── app.py
├── chat_handler.py
└── requirements.txt

実装

chat_handler.py のコア チャットボット ロジックから始めましょう:

import openai
from typing import List, Dict
import os
from dotenv import load_dotenv

load_dotenv()

class ChatBot:
    def __init__(self):
        openai.api_key = os.getenv("OPENAI_API_KEY")
        self.conversation_history: List[Dict[str, str]] = []
        self.system_prompt = """You are a helpful AI assistant. Provide clear, 
        accurate, and engaging responses while maintaining a friendly tone."""

    def add_message(self, role: str, content: str):
        self.conversation_history.append({"role": role, "content": content})

    def get_response(self, user_input: str) -> str:
        # Add user input to conversation history
        self.add_message("user", user_input)

        # Prepare messages for API call
        messages = [{"role": "system", "content": self.system_prompt}] + \
                  self.conversation_history

        try:
            # Make API call to OpenAI
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=messages,
                max_tokens=1000,
                temperature=0.7
            )

            # Extract and store assistant's response
            assistant_response = response.choices[0].message.content
            self.add_message("assistant", assistant_response)

            return assistant_response

        except Exception as e:
            return f"An error occurred: {str(e)}"

次に、app.py で Streamlit を使用して簡単な Web インターフェイスを作成しましょう。

import streamlit as st
from chat_handler import ChatBot

def main():
    st.title("? AI Chatbot")

    # Initialize session state
    if "chatbot" not in st.session_state:
        st.session_state.chatbot = ChatBot()

    # Chat interface
    if "messages" not in st.session_state:
        st.session_state.messages = []

    # Display chat history
    for message in st.session_state.messages:
        with st.chat_message(message["role"]):
            st.write(message["content"])

    # Chat input
    if prompt := st.chat_input("What's on your mind?"):
        # Add user message to chat history
        st.session_state.messages.append({"role": "user", "content": prompt})
        with st.chat_message("user"):
            st.write(prompt)

        # Get bot response
        response = st.session_state.chatbot.get_response(prompt)

        # Add assistant response to chat history
        st.session_state.messages.append({"role": "assistant", "content": response})
        with st.chat_message("assistant"):
            st.write(response)

if __name__ == "__main__":
    main()

主な特長

  1. 会話メモリ: チャットボットは会話履歴を保存することでコンテキストを維持します。
  2. システム プロンプト: システム プロンプトを通じてチャットボットの動作と性格を定義します。
  3. エラー処理: この実装には、API 呼び出しの基本的なエラー処理が含まれています。
  4. ユーザー インターフェイス: Streamlit を使用したクリーンで直感的な Web インターフェイス。

チャットボットの実行

  1. OpenAI API キーを使用して .env ファイルを作成します。
OPENAI_API_KEY=your_api_key_here
  1. アプリケーションを実行します。
streamlit run app.py

潜在的な機能強化

  1. 会話の永続化: チャット履歴を保存するためのデータベース統合を追加します。
  2. カスタムパーソナリティ: ユーザーがさまざまなチャットボットのパーソナリティを選択できるようにします。
  3. 入力検証: より堅牢な入力検証とサニタイズを追加します。
  4. API レート制限: API 使用量を管理するためにレート制限を実装します。
  5. レスポンス ストリーミング: ユーザー エクスペリエンスを向上させるために、ストリーミング レスポンスを追加します。

結論

この実装は、基本的だが機能的な生成型 AI チャットボットを示しています。モジュール設計により、特定のニーズに基づいて拡張やカスタマイズが簡単になります。この例では OpenAI の API を使用していますが、同じ原則を他の言語モデルや API にも適用できます。

チャットボットを導入するときは、次の点を考慮する必要があることに注意してください。

  • API のコストと使用制限
  • ユーザーデータのプライバシーとセキュリティ
  • 応答遅延と最適化
  • 入力の検証とコンテンツの管理

リソース

  • OpenAI API ドキュメント
  • Streamlit ドキュメント
  • Python 環境管理

以上がシンプルな生成 AI チャットボットの構築: 実践ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。