Spaces:
Build error
Build error
File size: 2,717 Bytes
496fb68 0aaa4a6 9620505 496fb68 0aaa4a6 496fb68 0aaa4a6 496fb68 0aaa4a6 496fb68 9620505 496fb68 0aaa4a6 496fb68 0aaa4a6 496fb68 0aaa4a6 7fc5aca 0aaa4a6 496fb68 0aaa4a6 205b344 0aaa4a6 7fc5aca 0aaa4a6 7fc5aca eb3ab2d 7fc5aca |
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
import gradio as gr
import requests
import uuid
import os
url = os.environ["url"]
# Función para manejar el flujo de la conversación
def model(text, conversation, name, previous_prescriptions, obra_social, plan, nro_afiliado, ids):
# Si es la primera vez, generamos los IDs
if ids is None:
ids = {
"unique_id": str(uuid.uuid4()),
"user_id": str(uuid.uuid4())
}
data = {
"patient_data": {
"name": name,
"previous_prescriptions": previous_prescriptions,
"obra_social": obra_social,
"plan": plan,
"nro_afiliado": nro_afiliado
},
"unique_id": ids["unique_id"],
"user_id": ids["user_id"],
"message": {"text": text},
"step": "chat"
}
headers = {
"Content-Type": "application/json"
}
print("DATA",data)
response = requests.post(url=url, json=data, headers=headers)
output = response.json()['output']['response']
return output, ids # devolvemos los ids actualizados para mantenerlos
def interact_with_chatbot(text, conversation, name, previous_prescriptions, obra_social, plan, nro_afiliado, ids):
response, ids = model(text, conversation, name, previous_prescriptions, obra_social, plan, nro_afiliado, ids)
return response, conversation + [(text, response)], ids
# Interfaz
with gr.Blocks() as demo:
gr.Markdown("## 👨⚕️ PreDoc Chatbot 📋💊")
with gr.Accordion("📝 Datos del paciente", open=True):
name = gr.Textbox(label="Nombre del paciente", value="Roberto")
previous_prescriptions = gr.Textbox(label="Preescripciones previas", placeholder="Ej: losartán 50mg (1 caja)...")
obra_social = gr.Textbox(label="Obra social", placeholder="Ej: OSDE")
plan = gr.Textbox(label="Plan", placeholder="Ej: 210")
nro_afiliado = gr.Textbox(label="Número de afiliado", placeholder="Ej: 12345678")
chatbot = gr.Chatbot()
msg = gr.Textbox(label="Tu mensaje")
state_chat = gr.State([]) # historial de la conversación
state_ids = gr.State(None) # IDs generados solo una vez
def user_send(message, chat_history, name, previous_prescriptions, obra_social, plan, nro_afiliado, ids):
response, new_history, new_ids = interact_with_chatbot(
message, chat_history, name, previous_prescriptions, obra_social, plan, nro_afiliado, ids
)
return "", new_history, new_ids
msg.submit(
user_send,
[msg, state_chat, name, previous_prescriptions, obra_social, plan, nro_afiliado, state_ids],
[msg, chatbot, state_ids]
)
if __name__ == "__main__":
print(demo)
demo.launch()
|