Gerofra commited on
Commit
d9252cc
1 Parent(s): dd3f189

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -7
app.py CHANGED
@@ -12,16 +12,38 @@ if openai_api_key:
12
  else:
13
  print("Error con la clave de acceso a OpenAI.")
14
 
15
- # Crear un nuevo storage context (with the same variable name)
16
- storage_context = StorageContext.from_defaults(persist_dir=".")
17
 
18
- # Crear un nuevo modelo and service context (with the same variable name)
19
- modelo = LLMPredictor(llm=ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo-16k', max_tokens=7000, top_p=0))
 
 
 
 
 
20
  service_context = ServiceContext.from_defaults(llm_predictor=modelo)
21
 
22
- # Cargar el nuevo index Doc_1 (with the same variable name)
 
23
  index = load_index_from_storage(service_context=service_context, storage_context=storage_context)
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  # Prompt personalizado para el nuevo index
26
  prompt = 'responder en español como un asistente experto en medicina, dando una respuesta detallada y reflejando de forma fiel los datos disponibles. Considerar segun aplique la siguiente informacion adicional: Nombre del Medicamento: Acsodix. Principio Activo: Vortioxetina. Formas y Dosis: Acsodix 5, 10, y 20 mg (comprimidos recubiertos). Indicaciones: Tratamiento de episodios de depresión mayor en adultos. Contraindicaciones: Alergia a la Vortioxetina, toma de ciertos inhibidores de la monoaminooxidasa, enfermedad hepática grave, etc. Precauciones: Embarazo, lactancia, conducción, uso de otros medicamentos, etc. Efectos Adversos: Náuseas, diarrea, vómitos, mareo, prurito, etc. Instrucciones de Uso: Se puede tomar con o sin alimentos, no se aconseja la combinación con alcohol, etc. Sobredosis: Síntomas y tratamientos en caso de sobredosis. Presentación: Cajas conteniendo 30 comprimidos recubiertos en diferentes dosis. Almacenamiento: Conservar a temperatura ambiente inferior a 30 °C. Fabricante y Distribuidor: Mega Labs S.A., Industria Uruguaya, La dosis máxima de Acsodix para adultos menores a 65 años es de 20 mg al día. Se debe tener precaución cuando se traten pacientes mayores de 65 años de edad con dosis superiores a 10 mg de Vortioxetina una vez al día, ya que los datos son limitados.'
27
 
@@ -38,8 +60,7 @@ def predict(message):
38
  user_message = full_prompt[-1]["content"]
39
 
40
  # Utilizar el nuevo index Doc_1 para generar la respuesta
41
- query = user_message
42
- respuesta = index.as_query_engine().query(query)
43
 
44
  # Respuesta de OpenAI basada en la consulta y agregarla al historial
45
  response = openai.ChatCompletion.create(
 
12
  else:
13
  print("Error con la clave de acceso a OpenAI.")
14
 
 
 
15
 
16
+
17
+
18
+ #storage_context
19
+
20
+ # reconstruir storage context Doc_1
21
+ storage_context = StorageContext.from_defaults(persist_dir=".")
22
+ modelo = LLMPredictor(llm=ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo-16k', max_tokens=7000,top_p=0))
23
  service_context = ServiceContext.from_defaults(llm_predictor=modelo)
24
 
25
+
26
+ # Cargar index Doc_1
27
  index = load_index_from_storage(service_context=service_context, storage_context=storage_context)
28
 
29
+
30
+ #Query Engine
31
+ query_engine = index.as_query_engine()
32
+ query_engine_tools = [
33
+ QueryEngineTool(
34
+ query_engine=query_engine,
35
+ metadata=ToolMetadata(
36
+ name='Prospecto medicamento Acsodix con instrucciones para su uso y precauciones',
37
+ description='Nombre del Medicamento: Acsodix. Principio Activo: Vortioxetina. Formas y Dosis: Acsodix 5, 10, y 20 mg (comprimidos recubiertos). Indicaciones: Tratamiento de episodios de depresión mayor en adultos. Contraindicaciones: Alergia a la Vortioxetina, toma de ciertos inhibidores de la monoaminooxidasa, enfermedad hepática grave, etc. Precauciones: Embarazo, lactancia, conducción, uso de otros medicamentos, etc. Efectos Adversos: Náuseas, diarrea, vómitos, mareo, prurito, etc. Instrucciones de Uso: Se puede tomar con o sin alimentos, no se aconseja la combinación con alcohol, etc. Sobredosis: Síntomas y tratamientos en caso de sobredosis. Presentación: Cajas conteniendo 30 comprimidos recubiertos en diferentes dosis. Almacenamiento: Conservar a temperatura ambiente inferior a 30 °C. Fabricante y Distribuidor: Mega Labs S.A., Industria Uruguaya, La dosis máxima de Acsodix para adultos menores a 65 años es de 20 mg al día. Se debe tener precaución cuando se traten pacientes mayores de 65 años de edad con dosis superiores a 10 mg de Vortioxetina una vez al día, ya que los datos son limitados.')
38
+ )
39
+ ]
40
+ engine = index.as_query_engine(query_engine_tools=query_engine_tools, service_context=service_context,streaming=True,similarity_top_k=5)
41
+
42
+
43
+
44
+
45
+
46
+
47
  # Prompt personalizado para el nuevo index
48
  prompt = 'responder en español como un asistente experto en medicina, dando una respuesta detallada y reflejando de forma fiel los datos disponibles. Considerar segun aplique la siguiente informacion adicional: Nombre del Medicamento: Acsodix. Principio Activo: Vortioxetina. Formas y Dosis: Acsodix 5, 10, y 20 mg (comprimidos recubiertos). Indicaciones: Tratamiento de episodios de depresión mayor en adultos. Contraindicaciones: Alergia a la Vortioxetina, toma de ciertos inhibidores de la monoaminooxidasa, enfermedad hepática grave, etc. Precauciones: Embarazo, lactancia, conducción, uso de otros medicamentos, etc. Efectos Adversos: Náuseas, diarrea, vómitos, mareo, prurito, etc. Instrucciones de Uso: Se puede tomar con o sin alimentos, no se aconseja la combinación con alcohol, etc. Sobredosis: Síntomas y tratamientos en caso de sobredosis. Presentación: Cajas conteniendo 30 comprimidos recubiertos en diferentes dosis. Almacenamiento: Conservar a temperatura ambiente inferior a 30 °C. Fabricante y Distribuidor: Mega Labs S.A., Industria Uruguaya, La dosis máxima de Acsodix para adultos menores a 65 años es de 20 mg al día. Se debe tener precaución cuando se traten pacientes mayores de 65 años de edad con dosis superiores a 10 mg de Vortioxetina una vez al día, ya que los datos son limitados.'
49
 
 
60
  user_message = full_prompt[-1]["content"]
61
 
62
  # Utilizar el nuevo index Doc_1 para generar la respuesta
63
+ respuesta = engine.query(user_message)
 
64
 
65
  # Respuesta de OpenAI basada en la consulta y agregarla al historial
66
  response = openai.ChatCompletion.create(