File size: 2,700 Bytes
4ad23c1
55e6cbd
 
d8257da
1d5b573
d8257da
721590a
fda4c03
 
 
 
55e6cbd
 
 
fda4c03
d8257da
 
55e6cbd
d8257da
fda4c03
55e6cbd
 
 
 
fda4c03
d8257da
 
 
 
 
 
55e6cbd
d8257da
 
 
55e6cbd
d8257da
55e6cbd
fda4c03
55e6cbd
 
d8257da
55e6cbd
 
 
dc63621
55e6cbd
 
 
 
 
 
fda4c03
 
 
721590a
 
 
fda4c03
 
 
 
 
 
 
 
 
 
 
 
 
d8257da
 
4ad23c1
1d5b573
dc63621
721590a
85c4198
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
import gradio as gr
import requests
import json
import os

# Función para generar respuestas usando DeepSeek a través de DeepInfra
def generate_response(user_message):
   try:
       if not user_message.strip():
           return "Por favor, escribe una pregunta para que pueda ayudarte."
       
       # Cargar el prompt del sistema
       with open("prompt.txt", "r", encoding="utf-8") as f:
           system_prompt = f.read().strip()
       
       # Configurar la solicitud a DeepInfra (DeepSeek)
       api_key = os.environ.get("DEEPINFRA_API_KEY", "")
       if not api_key:
           return "Error: No se ha configurado la clave API. Por favor, configura la variable de entorno DEEPINFRA_API_KEY."
       
       headers = {
           "Authorization": f"Bearer {api_key}",
           "Content-Type": "application/json"
       }
       
       # Formato de prompt para DeepSeek
       messages = [
           {"role": "system", "content": system_prompt},
           {"role": "user", "content": user_message}
       ]
       
       data = {
           "model": "deepseek-ai/deepseek-chat-1.3b",  # Modelo pequeño de DeepSeek
           "messages": messages,
           "max_tokens": 500,
           "temperature": 0.7,
           "top_p": 0.9
       }
       
       # Enviar solicitud a la API
       response = requests.post(
           "https://api.deepinfra.com/v1/openai/chat/completions",
           headers=headers,
           json=data
       )
       
       # Procesar la respuesta
       if response.status_code == 200:
           result = response.json()
           return result["choices"][0]["message"]["content"]
       else:
           return f"Error en la API: {response.status_code} - {response.text}"
   
   except Exception as e:
       return f"Lo siento, ha ocurrido un error: {str(e)}"

# Crear la interfaz de Gradio
demo = gr.Interface(
   fn=generate_response,
   inputs=gr.Textbox(
       placeholder="Escribe tu pregunta sobre emprendimiento aquí...",
       label="Tu pregunta"
   ),
   outputs=gr.Textbox(label="Respuesta de BITER"),
   title="BITER - Tu Mentor en Tiempo Real para Decisiones de Negocio",
   description="BITER es un asistente de IA que responde dudas de emprendedores como si fuera un CEO experimentado.",
   examples=[
       ["¿Cómo puedo validar mi idea de negocio con poco presupuesto?"],
       ["¿Cuál es la mejor estrategia para conseguir mis primeros clientes?"],
       ["¿Debería invertir en publicidad en redes sociales o en SEO?"]
   ],
   allow_flagging="never",
   theme=gr.themes.Soft(primary_hue="blue")
)

# Lanzar la aplicación
if __name__ == "__main__":
   demo.queue(max_size=1).launch(share=False, debug=False)