Не только для хайпа

ChatGPT-3 (Generative Pre-trained Transformer) от OpenAI — один из самых мощных чат-ботов, доступных на момент написания этой статьи. Вы можете спросить что угодно, и он даст точные ответы. Кроме того, OpenAI предлагает API для использования в программировании. Мы рассматриваем приложения, которые поддерживаются с учетом этих функций, хотя это тема для другой статьи. Для начала в этом руководстве мы рассмотрим, как использовать Python API для создания веб-приложения Chat GPT-3. На момент написания этого руководства полный API ChatGPT еще не выпущен, и существует лист ожидания.

СТРЕМЛИТ

Streamlit — это платформа приложений с открытым исходным кодом, идеально подходящая для машинного обучения и науки о данных. Это позволяет разработчикам создавать интерактивные веб-приложения для визуализации и анализа данных без необходимости написания обширного кода HTML, CSS или JavaScript. Streamlit использует Python для создания приложений, что позволяет специалистам по данным и инженерам легко использовать свои существующие знания и навыки для создания пользовательских интерактивных инструментов для исследования и анализа данных. Очень легко интегрировать код Python и даже интерактивные графики, подобные Matplotlib. Немного боли в спине — это загрузка данных, которые будут использоваться по соображениям безопасности.

Есть 2 способа использования Streamlit: либо в собственном облаке, либо при локальной установке (на вашем компьютере или на вашем собственном веб-сервере).

Для первого варианта вам нужно создать учетную запись на www.streamlit.io и оттуда связать репозиторий Github. Важно указать необходимые библиотеки в файлах requirements.txt, иначе развертывание не будет успешным. Если планируется использовать Streamlit Cloud с ключом OpenAI, могут возникнуть дополнительные проблемы, поскольку закрытый ключ будет размещен на Github (OpenAI немедленно обнаружит это и пожалуется, в этом случае лучше использовать настройки «секретов» в Streamlit).

Второе решение требует собственных ресурсов, но дает больше свободы. Вы должны установить эти библиотеки на указанную машину:

  • Стримлит ( pip install streamlit )
  • Чат Streamlit ( pip install streamlit_chat)
  • Открытый ИИ(pip install openai)
  • Дотенв(pip install python-dotenv ) (необязательно)

ВЗАИМОДЕЙСТВИЕ С OPENAI

Чтобы использовать Chat GPT-3, вам понадобится ключ API. Для этого вам нужно будет зайти на сайт OpenAI. После входа перейдите в раздел Просмотреть ключи API.

Теперь вам нужно создать скрипт Streamlit Python.

После импорта необходимых библиотек вставьте ключ API, хранящийся в файле openai.api_key. Затем сгенерируйте ответ от GPT-3 generate_response , взяв приглашение пользователя в качестве параметра. Здесь также указана модель GPT-3 'text-davinci-003' , хотя могут использоваться и другие модели. Также можно установить ограничение на приглашение (max_tokens).

Переменная температура очень актуальна, так как она в значительной степени определяет степень креативности в ответе (хотя никто не любит упрощать креативность с этим), ее можно установить в диапазоне от 0 до 1. 0 дает стабильную выходы, в то время как 1 очень творческий. Более формально, температура определяет, насколько жадной является генеративная модель.

import openai
import streamlit as st
from streamlit_chat import message
import os 
from dotenv import load_dotenv
load_dotenv('api_key.env')
openai.api_key = os.environ.get('API_KEY')
def generate_response(prompt):
    completion=openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.6,
    )
    message=completion.choices[0].text
    return message

Остальная часть скрипта может быть просто взаимодействием с пользователем, управляемым Streamlit.

st.title("ChatGPT-like Web App")
#storing the chat
if 'generated' not in st.session_state:
    st.session_state['generated'] = []
if 'past' not in st.session_state:
    st.session_state['past'] = []
user_input=st.text_input("You:",key='input')
if user_input:
    output=generate_response(user_input)
    #store the output
    st.session_state['past'].append(user_input)
    st.session_state['generated'].append(output)
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')

Пока API-интерфейсы ChatGPT не станут общедоступными, это может быть простым способом использования модели GPT-3. Что касается Streamlit, основные ограничения заключаются в том, что если мы используем их услуги, приложение может быть отключено, как в Heroku, и что загрузка файлов для дальнейшего взаимодействия с чат-ботом создает проблемы с безопасностью. Альтернативными способами легкого создания веб-приложений являются Gradio и Django.

Повышение уровня кодирования

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • 👏 Хлопайте за историю и подписывайтесь на автора 👉
  • 📰 Смотрите больше контента в публикации Level Up Coding
  • 🔔 Подписывайтесь на нас: Twitter | ЛинкедИн | "Новостная рассылка"

🚀👉 Присоединяйтесь к коллективу талантов Level Up и найдите прекрасную работу