geronimo-pericoli's picture
Update app.py
a2df057 verified
import os
from llama_index.core import StorageContext, load_index_from_storage, ServiceContext
from github import Github
import datetime
import gradio as gr
# Cargar entrenamiento y modelo
exec(os.environ.get('storage_context'))
# Carga contexto logs
exec(os.environ.get('logs_context'))
project_name = "PharmaWise 3.6 - demo Prospecto Gen茅rico Vortioxetina V2C_STREAM"
# Funci贸n para generar respuesta
def predict(message):
#respuesta = engine.query(message)
# Respuesta con prompt sumado a la pregunta
respuesta = engine.query(prompt + message)
# Muestra la cadena que se va formando palabra por palabra
partial_message = ""
for chunk in respuesta.response_gen:
partial_message += chunk
yield partial_message
#commit_to_github(message, partial_message)
# Funci贸n para hacer commit
def commit_to_github(message, response):
if github_token:
g = Github(github_token)
repo = g.get_repo(repo_name)
# Obtiene la fecha actual
current_date = datetime.datetime.now().strftime("%Y-%m")
# Nombre del archivo: nombre_del_proyecto/a帽o-mes-nombre_del_proyecto.txt
file_name = f"{project_name}/{current_date}-{project_name}.txt"
# Descripci贸n del commit
commit_message = f"Actualizaci贸n de {current_date}"
# Contenido. Fecha, pregunta, respuesta
content = f"({datetime.datetime.now().strftime('%d/%m/%Y %H:%M')})\nPregunta: {message}\nRespuesta: {response}\n----------\n"
try:
# Busca existencia de un .txt para actualizarlo con la nueva info
existing_file = repo.get_contents(file_name)
existing_content = existing_file.decoded_content.decode('utf-8')
new_content = f"{existing_content}{content}"
repo.update_file(file_name, commit_message, new_content, existing_file.sha, branch="main")
except:
# Si el archivo no existe, lo crea. Ej: cuando empieza un nuevo mes se crea un nuevo .txt
repo.create_file(file_name, commit_message, content, branch="main")
# Interfaz de Gradio
gr.Interface(
fn=predict,
inputs=gr.Textbox(placeholder="Escribe una pregunta...", label="Pregunta"),
outputs=gr.Textbox(label="Respuesta"),
title=project_name,
description="Realiza preguntas a tus datos y obt茅n respuestas en espa帽ol.",
theme='sudeepshouche/minimalist',
examples=["驴Cuales son las contraindicaciones y como se toma?"],
cache_examples=True,
).launch()