Hodely commited on
Commit
101e4d5
·
verified ·
1 Parent(s): 0e6b318

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +93 -0
app.py ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import json
3
+ from datetime import datetime
4
+
5
+ import gradio as gr
6
+ from openai import OpenAI
7
+
8
+
9
+ def print_now(msg):
10
+ now = datetime.now()
11
+ formatted_time = now.strftime("%Y-%m-%d %H:%M:%S.%f")
12
+ print(f"{msg}:{formatted_time}")
13
+ return formatted_time
14
+
15
+ def respond(
16
+ message,
17
+ history: list[tuple[str, str]],
18
+ system_message,
19
+ max_tokens,
20
+ temperature,
21
+ top_p,
22
+ ):
23
+ try:
24
+ dias_semana = ["lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo"]
25
+ now = datetime.now()
26
+ dia_actual = dias_semana[now.weekday()]
27
+ hora_actual = now.strftime("%Y-%m-%d %H:%M:%S") + f" ({dia_actual})"
28
+
29
+ mensaje_sistema = (
30
+ system_message or
31
+ f"Eres Amside AI, un asistente de inteligencia artificial útil, expresivo y creativo. "
32
+ f"Fuiste creado por HodelyGil. La fecha y hora actual es: {hora_actual}."
33
+ )
34
+
35
+ messages = [{"Role": "system", "Content": mensaje_sistema}]
36
+ client = OpenAI(
37
+ api_key=os.getenv('HUNYUAN_API_KEY'),
38
+ base_url="https://api.hunyuan.cloud.tencent.com/v1",
39
+ )
40
+
41
+ for val in history:
42
+ if val[0] and val[1]:
43
+ messages.append({"Role": "user", "Content": val[0]})
44
+ messages.append({"Role": "assistant", "Content": val[1]})
45
+
46
+ messages.append({"Role": "user", "Content": message})
47
+
48
+ completion = client.chat.completions.create(
49
+ model="hunyuan-turbos-20250416",
50
+ messages=messages,
51
+ stream=True,
52
+ extra_body={
53
+ "stream_moderation": True,
54
+ "enable_enhancement": False,
55
+ }
56
+ )
57
+
58
+ respuesta = ""
59
+ for event in completion:
60
+ token = event.choices[0].delta.content
61
+ respuesta += token
62
+ yield respuesta
63
+ except Exception as e:
64
+ raise gr.Error(f"Ocurrió un error: {str(e)}")
65
+
66
+ # Textos de ejemplo en español
67
+ example_prompts = [
68
+ ["Escribe un párrafo donde la primera letra de cada oración forme la palabra 'IAES'. Que suene natural."],
69
+ ["Redacta un blog sobre un viaje reciente a México, destacando la cultura y lugares imprescindibles."],
70
+ ["¿Por qué la educación online ha crecido tanto en los últimos años?"],
71
+ ["¿Cuántas letras 'e' hay en 'inteligencia artificial'?"],
72
+ ["Escribe un poema corto de 3 versos sobre el universo."]
73
+ ]
74
+
75
+ latex_delimiters = [
76
+ {"left": "$$", "right": "$$", "display": True},
77
+ {"left": "\\[", "right": "\\]", "display": True},
78
+ {"left": "$", "right": "$", "display": False},
79
+ {"left": "\\(", "right": "\\)", "display": False}
80
+ ]
81
+
82
+ chatbot = gr.Chatbot(latex_delimiters=latex_delimiters, scale=9)
83
+
84
+ demo = gr.ChatInterface(
85
+ respond,
86
+ title="Amside AI — Asistente Inteligente (creado por HodelyGil)",
87
+ examples=example_prompts,
88
+ chatbot=chatbot
89
+ )
90
+
91
+ if __name__ == "__main__":
92
+ demo.queue(default_concurrency_limit=100)
93
+ demo.launch(max_threads=100)