En Viatea exploraremos cómo crear un servicio con tecnología GPT-3 para programar viajes utilizando Streamlit. Utilizaremos GPT-3 como programador de viajes para generar itinerarios con base en la entrada del usuario y emplearemos Streamlit para desarrollar una interfaz de usuario intuitiva.
GPT-3 como programador de viajes
Antes de empezar, es necesario instalar las siguientes bibliotecas:
bashCopy code!pip install openai
!pip install streamlit
!pip install python-dotenv
Adicionalmente, crea un archivo .env
y agrega tu clave API de OpenAI:
plaintextCopy codeOPENAI_API_KEY=<tu clave API>
Por último, crearemos main.py
, importaremos las bibliotecas necesarias y cargaremos la clave API desde el archivo .env
:
pythonCopy codeimport os
import random
from datetime import datetime, timedelta
import openai
import streamlit as st
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv('OPENAI_API_KEY')
Creación de la Aplicación en Streamlit
Ahora procederemos a crear nuestra aplicación en Streamlit. Primeramente, definiremos una función para generar las solicitudes y los itinerarios de viaje basados en la entrada del usuario:
pythonCopy code# Fragmento de código previo...
def submit():
prompt = generate_prompt(**st.session_state)
# Generar salida
output = openai.Completion.create(
engine='text-davinci-003',
prompt=prompt,
temperature=0.45,
top_p=1,
frequency_penalty=2,
presence_penalty=0,
max_tokens=1024
)
st.session_state['output'] = output['choices'][0]['text']
# Fragmento de código posterior...
Luego, construiremos la interfaz de usuario utilizando Streamlit:
pythonCopy code# Fragmento de código previo...
st.title('GPT-3 Programador de Viajes')
st.subheader('¡Permite que planifiquemos tu viaje!')
with st.form(key='trip_form'):
c1, c2, c3 = st.columns(3)
with c1:
st.subheader('Destino')
destino = st.text_input('Destino', value=destino_aleatorio, key='destination')
st.form_submit_button('Enviar', on_click=submit)
with c2:
st.subheader('Llegada')
st.selectbox('Llegada A', ('Aeropuerto', 'Estación de Tren', 'Estación de Autobús', 'Terminal de Ferry', 'Puerto', 'Otro'), key='arrival_to')
st.date_input('Fecha de Llegada', value=fecha_actual, key='arrival_date')
st.time_input('Hora de Llegada', value=hora_actual, key='arrival_time')
with c3:
st.subheader('Partida')
st.selectbox('Partida Desde', ('Aeropuerto', 'Estación de Tren', 'Estación de Autobús', 'Terminal de Ferry', 'Puerto', 'Otro'), key='departure_from')
st.date_input('Fecha de Partida', value=fecha_actual + timedelta(days=1), key='departure_date')
st.time_input('Hora de Partida', value=hora_actual, key='departure_time')
st.text_area('Información Adicional', height=200, value='¡Quiero visitar la mayor cantidad de lugares posible! (respetando el tiempo)', key='additional_information')
st.subheader('Itinerario de Viaje')
st.write(st.session_state.output)
# Fragmento de código posterior...
Ejecutando la Aplicación en Streamlit
Finalmente, podemos ejecutar nuestra aplicación en Streamlit:
bashCopy code!streamlit run main.py
¡Observemos los resultados de nuestra aplicación! Explora y disfruta de la capacidad de GPT-3 como tu Programador de Viajes personal.