Spaces:
Sleeping
Sleeping
File size: 1,711 Bytes
d5d6586 154f1ea | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | from langchain_openai import ChatOpenAI
from langchain.schema import AIMessage, HumanMessage
import gradio as gr
# Crea una instancia del modelo GPT usando LangChain. Aquí se usa el modelo "gpt-4o-mini"
model = ChatOpenAI(model="gpt-4o-mini")
def predict(message, history):
# Inicializa una lista para almacenar el historial de mensajes en el formato que espera LangChain
history_langchain_format = []
# Recorre el historial proporcionado por Gradio (formato de lista de diccionarios)
for msg in history:
if msg['role'] == "user":
# Si el mensaje es del usuario, se convierte en un objeto HumanMessage
history_langchain_format.append(HumanMessage(content=msg['content']))
elif msg['role'] == "assistant":
# Si el mensaje es del asistente, se convierte en un objeto AIMessage
history_langchain_format.append(AIMessage(content=msg['content']))
# Agrega el nuevo mensaje del usuario al final del historial
history_langchain_format.append(HumanMessage(content=message))
# Envía todo el historial al modelo para obtener una respuesta coherente
gpt_response = model.invoke(history_langchain_format)
# Devuelve solo el contenido textual de la respuesta del modelo
return gpt_response.content
# Crea una interfaz de chat en Gradio utilizando la función 'predict'
demo = gr.ChatInterface(
predict, # Función que se ejecuta con cada mensaje
type="messages" # Indica que el historial será manejado como una lista de mensajes (con roles: 'user' y 'assistant')
)
# Lanza el servidor de Gradio para que se pueda interactuar con la interfaz desde el navegador
demo.launch() |