Не только для хайпа
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 и найдите прекрасную работу