Создание умного чат-бота с использованием API OpenAI может стать захватывающим проектом для всех, кто интересуется обработкой естественного языка и машинным обучением. Хотите проверить мое приложение? Вот ссылка: MyChatbot

Вот шаги для создания подобного приложения:

Шаги:

  1. Зарегистрируйте учетную запись API OpenAI и получите ключ API.
  2. Установите необходимые библиотеки Python: OpenAI, Streamlit и streamlit_chat с помощью команды «pip install».
  3. Подключитесь к API OpenAI с помощью ключа API и определите возможности чат-бота, такие как создание текста или ответы на вопросы.
  4. Определите интерфейс Streamlit, включая пользовательский ввод и отображение ответа чат-бота.
  5. Реализуйте логику чат-бота и используйте API OpenAI для генерации ответов на вводимые пользователем данные.
  6. Протестируйте и настройте чат-бот, используя отзывы пользователей для внесения улучшений.
  7. Разверните свое приложение и поделитесь им со всем миром.

Чтобы приступить к созданию своего приложения, вам сначала необходимо настроить учетную запись OpenAI. Это легко — просто зайдите на https://platform.openai.com/ и следуйте инструкциям, чтобы создать учетную запись. Затем в своем аккаунте перейдите в раздел Личные данные → API-ключи → Создать новый секретный ключ. Имейте в виду, что этот ключ не должен быть общедоступным, так как он предназначен только для вас. Когда вы будете готовы развернуть свое приложение, просто добавьте секретный ключ в поле секретный ключ в дополнительных настройках Streamlit. Вот и все! Имея свою учетную запись OpenAI и секретный ключ, вы будете готовы создать свое приложение для чат-бота.

Перед развертыванием нашего приложения Streamlit нам необходимо протестировать его локально. Для этого мы создадим новую папку в каталоге нашего проекта с именем .streamlit. Внутри этой папки мы создадим скрипт и включим наш секретный ключ, который мы можем сохранить как переменную. Например, мы можем установить переменную «pass» равной нашему секретному ключу: pass = ‘kjhihjYsFydr4MoWaLShegZoVjnijbjbj’. Затем мы сохраним этот файл как secrets.toml. Этот файл является безопасным способом ссылки на наш секретный ключ в нашем приложении. Как только это будет сделано, мы можем начать кодировать наше приложение.

# Save this file as secrets.toml
pass="kjhihjYsFydr4MoWaLShegZoVjnijbjbj"

На этом этапе мы обсудим скрипт Python, который использует API Streamlit, streamlit_chat и OpenAI. Streamlit-Chat — это простой компонент, который предоставляет интерфейс, похожий на чат-приложение, что делает чат-бот, развернутый на Streamlit, удобным пользовательским интерфейсом.

# Import libraries
import openai
import streamlit as st
from streamlit_chat import message

# Load OpenAI API key from secrets file

openai.api_key=st.secrets["pass"]

#Implement the chatbot's logic and use the OpenAI API to generate responses 
#to user inputs. This function uses the OpenAI Completion API to generate 
#a response based on the given prompt

def generate_response(prompt):
    completions = openai.Completion.create (
        engine="text-davinci-003",
        prompt=prompt,
        temperature=0.9,
        max_tokens=150,
        top_p=1,
        frequency_penalty=0.0,
        presence_penalty=0.6,
        stop=[" Human:", " AI:"]
    )

    message = completions.choices[0].text
    return message

# Adding some texts to explain the purpose of the app
#_______________Optionnal_______________________
st.title('Lamis ChatBot  🤖 🤖')

st.sidebar.title('Lamis ChatBot  🤖 🤖')
st.sidebar.write("""
         ###### Try my  chatbot made with  openAI, GPT-3 and  Streamlit. I used Streamlit-Chat which  is simple component, which provides a chat-app like interface, which makes a chatbot deployed on Streamlit have a cool UI.
        ###### [My LinkedIn profile ](https://www.linkedin.com/in/lamisghoualmi/)
        ###### [My Github](https://github.com/lamisghoualmi/)
         """)

#Allows the chatbot to store its state across multiple sessions, so that
#the generated responses from previous interactions with the user are 
#not lost when the app is restarted or refreshed.

if 'generated' not in st.session_state:
    st.session_state['generated'] = []

if 'past' not in st.session_state:
    st.session_state['past'] = []

#The function returns the text entered by the user as a string. This text 
#is later passed to the generate_response() function, which uses OpenAI's
#API to generate a response to the user's message.

def get_text():
    input_text= st.text_input('Human [enter your message here]:', '')
    return input_text 


user_input = get_text()


#The purpose of appending the user's input and the chatbot's response to
#separate lists is to display them in the chat interface separately, 
#with the user's messages on one side and the chatbot's responses on
#the other side.

if user_input:
    output = generate_response(user_input)
    st.session_state.past.append(user_input)
    st.session_state.generated.append(output)

#For each generated message, it also displays the corresponding user input
#message from st.session_state['past']. This creates a chat-like interface
#where the user's inputs and the chatbot's responses are displayed in an 
#alternating fashion.

if st.session_state['generated']:

    for i in range(len(st.session_state['generated'])-1, -1, -1):
        message(st.session_state["generated"][i], key=str(i))
        message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')

Чтобы запустить приложение на локальном хосте, откройте командную строку (cmd.exe) в Windows и перейдите в каталог, в котором находится ваше приложение, введя cd, а затем путь к каталогу (например, cd C:\Users\lamis \Desktop\App\MyChatbot). Затем запустите свое приложение, введя streamlit run Chatbot.py в командной строке, где FileName — это имя вашего скрипта. Это запустит локальный сервер, и вы сможете просмотреть свое веб-приложение, открыв браузер и перейдя по адресу http://localhost:8501.

Чтобы развернуть приложение Streamlit и сделать его общедоступным для всех, сначала вам нужно загрузить свой код на GitHub. Не забудьте включить файл requirements.txt, содержащий имена библиотек, используемых в вашем коде. Затем перейдите на https://share.streamlit.io/, создайте новое приложение и добавьте ссылку на репозиторий GitHub вашего приложения. После этого перейдите в дополнительные настройки и добавьте свой секретный ключ, вставив его так: pass="kjhihjYsFydr4MoWaLShegZoVjnijbjbj". Наконец, нажмите развернуть, и ваше приложение будет доступно в Интернете, чтобы поделиться им с другими.

Я очень рада, что поделилась с вами этим уроком! Готовы ли вы создать своего собственного чат-бота прямо сейчас? Дайте мне знать в комментариях, я не могу дождаться, чтобы увидеть, что вы создаете! И не стесняйтесь задавать мне любые вопросы, которые могут у вас возникнуть, я здесь, чтобы помочь. И эй, пока вы это делаете, не забудьте подписаться на меня в LinkedIn, чтобы получать больше интересных технических руководств и обновлений! Удачного кодирования!