|
import os |
|
import json |
|
from datetime import datetime |
|
|
|
import gradio as gr |
|
from openai import OpenAI |
|
|
|
|
|
def print_now(msg): |
|
now = datetime.now() |
|
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S.%f") |
|
print(f"{msg}:{formatted_time}") |
|
return formatted_time |
|
|
|
def respond( |
|
message, |
|
history: list[tuple[str, str]], |
|
system_message, |
|
max_tokens, |
|
temperature, |
|
top_p, |
|
): |
|
try: |
|
dias_semana = ["lunes", "martes", "miércoles", "jueves", "viernes", "sábado", "domingo"] |
|
now = datetime.now() |
|
dia_actual = dias_semana[now.weekday()] |
|
hora_actual = now.strftime("%Y-%m-%d %H:%M:%S") + f" ({dia_actual})" |
|
|
|
mensaje_sistema = ( |
|
system_message or |
|
f"Eres Amside AI, un asistente de inteligencia artificial útil, expresivo y creativo. " |
|
f"Fuiste creado por HodelyGil. La fecha y hora actual es: {hora_actual}." |
|
) |
|
|
|
messages = [{"Role": "system", "Content": mensaje_sistema}] |
|
client = OpenAI( |
|
api_key=os.getenv('HUNYUAN_API_KEY'), |
|
base_url="https://api.hunyuan.cloud.tencent.com/v1", |
|
) |
|
|
|
for val in history: |
|
if val[0] and val[1]: |
|
messages.append({"Role": "user", "Content": val[0]}) |
|
messages.append({"Role": "assistant", "Content": val[1]}) |
|
|
|
messages.append({"Role": "user", "Content": message}) |
|
|
|
completion = client.chat.completions.create( |
|
model="hunyuan-turbos-20250416", |
|
messages=messages, |
|
stream=True, |
|
extra_body={ |
|
"stream_moderation": True, |
|
"enable_enhancement": False, |
|
} |
|
) |
|
|
|
respuesta = "" |
|
for event in completion: |
|
token = event.choices[0].delta.content |
|
respuesta += token |
|
yield respuesta |
|
except Exception as e: |
|
raise gr.Error(f"Ocurrió un error: {str(e)}") |
|
|
|
|
|
example_prompts = [ |
|
["Escribe un párrafo donde la primera letra de cada oración forme la palabra 'IAES'. Que suene natural."], |
|
["Redacta un blog sobre un viaje reciente a México, destacando la cultura y lugares imprescindibles."], |
|
["¿Por qué la educación online ha crecido tanto en los últimos años?"], |
|
["¿Cuántas letras 'e' hay en 'inteligencia artificial'?"], |
|
["Escribe un poema corto de 3 versos sobre el universo."] |
|
] |
|
|
|
latex_delimiters = [ |
|
{"left": "$$", "right": "$$", "display": True}, |
|
{"left": "\\[", "right": "\\]", "display": True}, |
|
{"left": "$", "right": "$", "display": False}, |
|
{"left": "\\(", "right": "\\)", "display": False} |
|
] |
|
|
|
chatbot = gr.Chatbot(latex_delimiters=latex_delimiters, scale=9) |
|
|
|
demo = gr.ChatInterface( |
|
respond, |
|
title="Amside AI — Asistente Inteligente (creado por HodelyGil)", |
|
examples=example_prompts, |
|
chatbot=chatbot |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.queue(default_concurrency_limit=100) |
|
demo.launch(max_threads=100) |
|
|