Proyecto_50 / app.py
JairoCesar's picture
Update app.py
dab6e6a verified
# PATIO DE JUEGOS DE INTELIGENCIA ARTIFICIAL
# PROYECTO 50 Consulta Médica colombiana IA
# Consejero Médico regional personalizado
# Bogota colombia 2024
import gradio as gr
from groq import Groq
# Inicializar el cliente Groq
client = Groq()
# Función para manejar la completación del chat
def chat_con_bot(ciudad, informacion_clinica):
mensaje_usuario = f"Ciudad: {ciudad}. Información clínica: {informacion_clinica}"
completion = client.chat.completions.create(
model="llama-3.1-70b-versatile",
messages=[
{
"role": "user",
"content": mensaje_usuario
}
],
temperature=0.7,
max_tokens=1024,
top_p=1,
stream=True,
stop=None,
)
# Recopilar la respuesta
respuesta = ""
for chunk in completion:
respuesta += chunk.choices[0].delta.content or ""
return respuesta
# Configurar la interfaz de Gradio usando Blocks
with gr.Blocks() as interfaz:
gr.Markdown("# Consulta Médica colombiana IA\nModelo Llama 3.1 70B en español")
with gr.Row():
informacion_clinica = gr.Textbox(
label="¿Cuáles son tus síntomas, desde cuándo aparecieron, cuál es tu sexo, edad, y antecedentes médicos, fármacos y si hay algún hallazgo físico observable?"
)
with gr.Row():
ciudad = gr.Textbox(
label="¿En qué ciudad o municipio vives (para ajustes epidemiológicos) y qué nivel de educación tienes (para ajustar la explicación de tu enfermedad)?",
value="Bogotá"
)
with gr.Row():
respuesta = gr.Textbox(label="Respuesta")
with gr.Row():
enviar = gr.Button("Enviar")
limpiar = gr.Button("Limpiar")
enviar.click(fn=chat_con_bot, inputs=[ciudad, informacion_clinica], outputs=respuesta)
limpiar.click(fn=lambda: ("Bogotá", ""), inputs=None, outputs=[ciudad, informacion_clinica])
# Lanzar la aplicación
interfaz.launch()