fireedman commited on
Commit
bec4af0
·
verified ·
1 Parent(s): 9968dc4

Update src/call_openai_api.py

Browse files
Files changed (1) hide show
  1. src/call_openai_api.py +25 -45
src/call_openai_api.py CHANGED
@@ -1,80 +1,60 @@
1
  import os
2
-
3
- from dotenv import load_dotenv
4
- from langchain.chat_models import ChatOpenAI
5
  from langchain.prompts import PromptTemplate
6
  from langchain.chains import LLMChain
7
- from pathlib import Path
8
 
9
- #Cargar variables de entorno desde el archivo .env
10
- # Ruta relativa al archivo .env en models/
11
- project_root = Path(__file__).resolve().parent.parent # Sube al nivel raíz del proyecto
12
- env_path = project_root / "models" / ".env" # Ruta completa al archivo .env
13
- load_dotenv(dotenv_path=env_path)
14
 
15
- #Configuracion de la clave de la api
16
- api_key = os.getenv("OPENAI_API_KEY")
17
  if not api_key:
18
- raise ValueError("No se encontro la clave de API")
19
-
20
- OPENAI_KEY_VAL = api_key
21
 
 
22
  llm = ChatOpenAI(
23
- openai_api_key = OPENAI_KEY_VAL,
24
- temperature = 0.7,
25
- model = "gpt-4"
26
  )
27
 
28
- #plantilla del prompt con el texto leido del archivo
29
- template ="""
30
- Eres un asistente de IA que orienta a los alumnos a ser mejores personas. Haz una haiku de 5 lineas sobre lo que te estan comentando. Da siempre la respuesta en Español
31
  Texto:{texto}
32
  Respuesta:
33
  """
 
34
  prompt = PromptTemplate(
35
- input_variables = ["texto"],
36
- template = template
37
  )
38
 
39
  chain = LLMChain(
40
- llm = llm,
41
- prompt = prompt
42
  )
43
 
44
- #def save_summary_to_file(summary_text, filename = 'response.txt'):
45
- def save_summary_to_file(summary_text, filename = 'C:/programacionEjercicios/miwav2lipv6/results/OpenAI_response.txt'):
46
  try:
47
- with open(filename,'w', encoding='utf-8') as file:
 
48
  file.write(summary_text)
49
- print(f"El resumen se ha guardado exitosamente en {filename}")
50
  except Exception as e:
51
- print(f"Ocurrio un error al guardar el resumen {e}")
52
 
53
  def read_text_from_file(filename):
54
  try:
55
- with open(filename, 'r') as file:
56
  return file.read()
57
  except Exception as e:
58
  print(f"Error al leer el archivo {filename}: {e}")
59
- return ""
60
-
61
 
62
- #def main():
63
  def moni(archivo):
64
- #texto_usuario = input("Ingresa un texto para resumir:")
65
- #texto_usuario = read_text_from_file("C:/programacionEjercicios/miwav2lipv6/results/transcripcion.txt")
66
  texto_usuario = read_text_from_file(archivo)
67
- resultado = chain.run(texto = texto_usuario)
68
-
69
- #Mostrar el resumen generado
70
- print("\nResumen generado:")
71
  print(resultado)
72
  save_summary_to_file(resultado)
73
-
74
  return resultado
75
- #
76
-
77
-
78
- if __name__ == "__main__":
79
- moni()
80
 
 
1
  import os
2
+ from langchain_openai import ChatOpenAI
 
 
3
  from langchain.prompts import PromptTemplate
4
  from langchain.chains import LLMChain
 
5
 
 
 
 
 
 
6
 
7
+ # Obtener la clave de API directamente del entorno
8
+ api_key = os.getenv("OPENAI_API_KEY", "")
9
  if not api_key:
10
+ raise EnvironmentError("OPENAI_API_KEY no definido. Configura este valor en Hugging Face -> Settings -> Secrets.")
 
 
11
 
12
+ # Instanciar el modelo de lenguaje
13
  llm = ChatOpenAI(
14
+ openai_api_key=api_key,
15
+ temperature=0.7,
16
+ model="gpt-4"
17
  )
18
 
19
+ # Plantilla para generación
20
+ template = """
21
+ Eres un asistente de IA que orienta a los alumnos a ser mejores personas. Haz una haiku de 5 lineas sobre lo que te estan comentando. Da siempre la respuesta en Español.
22
  Texto:{texto}
23
  Respuesta:
24
  """
25
+
26
  prompt = PromptTemplate(
27
+ input_variables=["texto"],
28
+ template=template
29
  )
30
 
31
  chain = LLMChain(
32
+ llm=llm,
33
+ prompt=prompt
34
  )
35
 
36
+ def save_summary_to_file(summary_text, filename='results/OpenAI_response.txt'):
 
37
  try:
38
+ os.makedirs(os.path.dirname(filename), exist_ok=True)
39
+ with open(filename, 'w', encoding='utf-8') as file:
40
  file.write(summary_text)
41
+ print(f"Resumen guardado en: {filename}")
42
  except Exception as e:
43
+ print(f"Error al guardar el resumen: {e}")
44
 
45
  def read_text_from_file(filename):
46
  try:
47
+ with open(filename, 'r', encoding='utf-8') as file:
48
  return file.read()
49
  except Exception as e:
50
  print(f"Error al leer el archivo {filename}: {e}")
51
+ return ""
 
52
 
 
53
  def moni(archivo):
 
 
54
  texto_usuario = read_text_from_file(archivo)
55
+ resultado = chain.run(texto=texto_usuario)
56
+ print("Resultado generado por LLM:")
 
 
57
  print(resultado)
58
  save_summary_to_file(resultado)
 
59
  return resultado
 
 
 
 
 
60