Rumah > pembangunan bahagian belakang > Tutorial Python > Membina Chatbot AI Generatif Mudah: Panduan Praktikal

Membina Chatbot AI Generatif Mudah: Panduan Praktikal

Linda Hamilton
Lepaskan: 2024-12-11 13:12:11
asal
265 orang telah melayarinya

Building a Simple Generative AI Chatbot: A Practical Guide

Dalam tutorial ini, kami akan meneruskan mencipta chatbot AI generatif menggunakan Python dan API OpenAI. Kami akan membina bot sembang yang boleh melibatkan diri dalam perbualan semula jadi sambil mengekalkan konteks dan memberikan respons yang berguna.

Prasyarat

  • Python 3.8
  • Pemahaman asas pengaturcaraan Python
  • Kunci API OpenAI
  • Pengetahuan asas tentang API RESTful

Menyediakan Persekitaran

Pertama, mari kita sediakan persekitaran pembangunan kita. Buat projek Python baharu dan pasang kebergantungan yang diperlukan:

pip install openai python-dotenv streamlit
Salin selepas log masuk

Struktur Projek

Bot sembang kami akan mempunyai struktur modular yang bersih:

chatbot/
├── .env
├── app.py
├── chat_handler.py
└── requirements.txt
Salin selepas log masuk

Perlaksanaan

Mari kita mulakan dengan logik chatbot teras kami dalam 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)}"
Salin selepas log masuk

Sekarang, mari buat antara muka web yang mudah menggunakan Streamlit dalam app.py:

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()
Salin selepas log masuk

Ciri-ciri Utama

  1. Memori Perbualan: Bot sembang mengekalkan konteks dengan menyimpan sejarah perbualan.
  2. Gesaan Sistem: Kami mentakrifkan gelagat dan personaliti chatbot melalui gesaan sistem.
  3. Pengendalian Ralat: Pelaksanaan termasuk pengendalian ralat asas untuk panggilan API.
  4. Antara Muka Pengguna: Antara muka web yang bersih dan intuitif menggunakan Streamlit.

Menjalankan Chatbot

  1. Buat fail .env dengan kunci API OpenAI anda:
OPENAI_API_KEY=your_api_key_here
Salin selepas log masuk
  1. Jalankan aplikasi:
streamlit run app.py
Salin selepas log masuk

Potensi Peningkatan

  1. Kegigihan Perbualan: Tambahkan penyepaduan pangkalan data untuk menyimpan sejarah sembang.
  2. Peribadi Tersuai: Benarkan pengguna memilih personaliti bot sembang yang berbeza.
  3. Pengesahan Input: Tambahkan pengesahan dan pembersihan input yang lebih mantap.
  4. Penghadan Kadar API: Laksanakan pengehadan kadar untuk mengurus penggunaan API.
  5. Penstriman Balasan: Tambahkan respons penstriman untuk pengalaman pengguna yang lebih baik.

Kesimpulan

Pelaksanaan ini menunjukkan chatbot AI generatif asas tetapi berfungsi. Reka bentuk modular memudahkan untuk melanjutkan dan menyesuaikan berdasarkan keperluan khusus. Walaupun contoh ini menggunakan API OpenAI, prinsip yang sama boleh digunakan dengan model atau API bahasa lain.

Ingat bahawa apabila menggunakan chatbot, anda harus mempertimbangkan:

  • Kos API dan had penggunaan
  • Privasi dan keselamatan data pengguna
  • Latensi dan pengoptimuman respons
  • Pengesahan input dan penyederhanaan kandungan

Sumber

  • Dokumentasi OpenAI API
  • Strim Dokumentasi
  • Pengurusan Persekitaran Python

Atas ialah kandungan terperinci Membina Chatbot AI Generatif Mudah: Panduan Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan