# Importacion de Librerias import os import openai from llama_index.core import SimpleDirectoryReader, ServiceContext, VectorStoreIndex from llama_index.core import ( SimpleDirectoryReader, VectorStoreIndex, ServiceContext, StorageContext, Response, Document, load_index_from_storage ) from llama_index.llms.openai import OpenAI import gradio as gr from gradio import components import textwrap import datetime openai.api_key = os.environ.get('openai_key') os.environ["OPENAI_API_KEY"] = os.environ.get('openai_key') # Cargar modelo exec(os.environ.get('storage_context')) ### Inicio context ### # load index storage_context = StorageContext.from_defaults(persist_dir = "./") index = load_index_from_storage(storage_context, index_id="vector_index") print("Se cargó el index.") # load from disk llm=OpenAI(model="gpt-3.5-turbo", temperature=0.1) query_engine = index.as_query_engine(llm=llm, streaming=True) prompt = """Responder en español: """ ### Fin context ### import gradio as gr from gradio import components import textwrap def responder(pregunta): # Respuesta con prompt sumado a la pregunta respuesta = query_engine.query(prompt + pregunta) # Muestra la cadena que se va formando palabra por palabra partial_message = "" for chunk in respuesta.response_gen: partial_message += chunk yield partial_message # Definir la interfaz de usuario con Gradio with gr.Blocks(theme='sudeepshouche/minimalist') as demo: gr.Markdown(""" # Pharma.IA Realiza preguntas """) with gr.Row(): with gr.Column(): pregunta = gr.Text(label="Pregunta", placeholder='Escribe tu pregunta aquí...') with gr.Row(): btn_send = gr.Button(value="Preguntar", variant="primary") clear = gr.Button(value="Limpiar") #gr.Examples(label="Ejemplos", examples=[""], inputs=[pregunta]) with gr.Column(): response = gr.Textbox(label="Respuesta") btn_send.click(responder, inputs=[pregunta], outputs=[response]) clear.click(lambda: None, None, pregunta, queue=False) demo.queue() demo.launch()