File size: 2,179 Bytes
aba14b1 |
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 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# 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() |