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

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

Linda Hamilton
リリース: 2024-12-11 13:12:11
オリジナル
269 人が閲覧しました

Building a Simple Generative AI Chatbot: A Practical Guide

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

前提条件

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

環境のセットアップ

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

1

pip install openai python-dotenv streamlit

ログイン後にコピー

プロジェクトの構造

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

1

2

3

4

5

chatbot/

├── .env

├── app.py

├── chat_handler.py

└── requirements.txt

ログイン後にコピー

実装

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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 インターフェイスを作成しましょう。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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 ファイルを作成します。

1

OPENAI_API_KEY=your_api_key_here

ログイン後にコピー
  1. アプリケーションを実行します。

1

streamlit run app.py

ログイン後にコピー

潜在的な機能強化

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

結論

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

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

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

リソース

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

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

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート