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

GPT-3 para programar tus 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.