eberhenriquez94 commited on
Commit
f21b560
1 Parent(s): f7587f2
Files changed (1) hide show
  1. app.py +22 -33
app.py CHANGED
@@ -1,11 +1,9 @@
1
  import os
2
  import asyncio
3
  import google.generativeai as genai
4
- from openai import OpenAI
5
  import gradio as gr
6
 
7
  # Configuración de claves de API
8
- NVIDIA_API_KEY = os.getenv("NVIDIA_API_KEY")
9
  GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
10
  genai.configure(api_key=GEMINI_API_KEY)
11
 
@@ -16,59 +14,50 @@ Como Ministro de la Corte Suprema de Chile, especializado en Derecho de Familia,
16
  El objetivo es elevar el texto a un estándar de excelencia en redacción jurídica, asegurando la máxima claridad, precisión, concisión y formalidad. **No debes modificar la estructura del borrador, tampoco agregar fundamentación o hechos. La mejora solo es gramatical, redaccional y estética lingüística jurídica.**
17
  """
18
 
19
- # Configuración del modelo de Google
20
- google_model = genai.GenerativeModel(
21
  "gemini-exp-1114",
22
  generation_config={
23
  "temperature": 0.5,
24
  "top_p": 0.9,
25
  "top_k": 40,
26
- "max_output_tokens": 4000,
27
  "response_mime_type": "text/plain",
28
  },
29
  )
30
 
31
- # Configuración del cliente NVIDIA
32
- nvidia_client = OpenAI(
33
- base_url="https://integrate.api.nvidia.com/v1",
34
- api_key=NVIDIA_API_KEY
 
 
 
 
 
 
35
  )
36
 
37
  # Función genérica para generar contenido
38
- async def generate_content(client, model_name, system_instruction, borrador, is_nvidia=False):
39
  try:
40
- if is_nvidia:
41
- messages = [
42
- {"role": "system", "content": system_instruction},
43
- {"role": "user", "content": borrador}
44
- ]
45
- completion = await asyncio.to_thread(
46
- client.chat.completions.create,
47
- model="meta/llama-3.1-405b-instruct",
48
- messages=messages,
49
- temperature=0.5,
50
- top_p=0.7,
51
- max_tokens=4000
52
- )
53
- return completion.choices[0].message.content
54
- else:
55
- response = await asyncio.to_thread(client.generate_content, [system_instruction, borrador])
56
- return response.text
57
  except Exception as e:
58
  return f"Error en {model_name}: {str(e)}"
59
 
60
- # Combina las respuestas de ambos modelos
61
  async def combine_responses(borrador):
62
  system_instruction = default_system_instruction
63
 
64
  # Generar contenido con Google Gemini
65
- google_result = await generate_content(google_model, "Google Gemini", system_instruction, borrador, is_nvidia=False)
66
 
67
- # Generar contenido con NVIDIA
68
- nvidia_result = await generate_content(nvidia_client, "NVIDIA", system_instruction, borrador, is_nvidia=True)
69
 
70
  # Combinar resultados
71
- combined_result = f"**Google Gemini:**\n{google_result}\n\n**NVIDIA:**\n{nvidia_result}"
72
  return combined_result
73
 
74
  # Función de predicción
@@ -79,7 +68,7 @@ async def predict(borrador):
79
  # Interfaz Gradio con botón funcional
80
  with gr.Blocks() as demo:
81
  gr.Markdown("### Mejorador de resoluciones judiciales - Derecho de Familia en Chile")
82
-
83
  borrador = gr.Textbox(
84
  label="Borrador judicial",
85
  placeholder="Escribe o pega el texto aquí...",
 
1
  import os
2
  import asyncio
3
  import google.generativeai as genai
 
4
  import gradio as gr
5
 
6
  # Configuración de claves de API
 
7
  GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
8
  genai.configure(api_key=GEMINI_API_KEY)
9
 
 
14
  El objetivo es elevar el texto a un estándar de excelencia en redacción jurídica, asegurando la máxima claridad, precisión, concisión y formalidad. **No debes modificar la estructura del borrador, tampoco agregar fundamentación o hechos. La mejora solo es gramatical, redaccional y estética lingüística jurídica.**
15
  """
16
 
17
+ # Configuración del modelo de Google Gemini
18
+ google_gemini_model = genai.GenerativeModel(
19
  "gemini-exp-1114",
20
  generation_config={
21
  "temperature": 0.5,
22
  "top_p": 0.9,
23
  "top_k": 40,
24
+ "max_output_tokens": 5000,
25
  "response_mime_type": "text/plain",
26
  },
27
  )
28
 
29
+ # Configuración del modelo de Google LearnLM
30
+ google_learnlm_model = genai.GenerativeModel(
31
+ "learnlm-1.5-pro-experimental",
32
+ generation_config={
33
+ "temperature": 0.5,
34
+ "top_p": 0.9,
35
+ "top_k": 40,
36
+ "max_output_tokens": 5000,
37
+ "response_mime_type": "text/plain",
38
+ },
39
  )
40
 
41
  # Función genérica para generar contenido
42
+ async def generate_content(client, model_name, system_instruction, borrador):
43
  try:
44
+ response = await asyncio.to_thread(client.generate_content, [system_instruction, borrador])
45
+ return response.text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  except Exception as e:
47
  return f"Error en {model_name}: {str(e)}"
48
 
49
+ # Combina las respuestas de ambos modelos de Google
50
  async def combine_responses(borrador):
51
  system_instruction = default_system_instruction
52
 
53
  # Generar contenido con Google Gemini
54
+ google_gemini_result = await generate_content(google_gemini_model, "Google Gemini", system_instruction, borrador)
55
 
56
+ # Generar contenido con Google LearnLM
57
+ google_learnlm_result = await generate_content(google_learnlm_model, "Google LearnLM", system_instruction, borrador)
58
 
59
  # Combinar resultados
60
+ combined_result = f"**Google Gemini:**\n{google_gemini_result}\n\n**Google LearnLM:**\n{google_learnlm_result}"
61
  return combined_result
62
 
63
  # Función de predicción
 
68
  # Interfaz Gradio con botón funcional
69
  with gr.Blocks() as demo:
70
  gr.Markdown("### Mejorador de resoluciones judiciales - Derecho de Familia en Chile")
71
+
72
  borrador = gr.Textbox(
73
  label="Borrador judicial",
74
  placeholder="Escribe o pega el texto aquí...",