chari / app.py
danielramos
fix: switch to unlimited 24/7 CPU Basic engine
fbf955a
Raw History Blame Contribute Delete
1.64 kB
import gradio as gr
from main import (
graph_app,
HumanMessage,
AIMessage,
SystemMessage,
DEFAULT_SYSTEM_PROMPT,
app as fastapi_app
)
def chat_fn(message, history):
messages = [SystemMessage(content=DEFAULT_SYSTEM_PROMPT)]
if history:
for turn in history:
if isinstance(turn, dict):
role = turn.get("role", "user")
content = turn.get("content", "")
if role == "assistant":
messages.append(AIMessage(content=content))
else:
messages.append(HumanMessage(content=content))
elif isinstance(turn, (list, tuple)) and len(turn) == 2:
if turn[0]:
messages.append(HumanMessage(content=str(turn[0])))
if turn[1]:
messages.append(AIMessage(content=str(turn[1])))
messages.append(HumanMessage(content=message))
output = graph_app.invoke({"messages": messages})
return output["messages"][-1].content
# Interfaz interactiva de Chat de Gradio (Modo Ilimitado 24/7 en CPU Basic)
demo = gr.ChatInterface(
fn=chat_fn,
title="⚡ Qwen 2.5 (0.5B) • Intelecto Conciso",
description="Chatbot superinteligente, hiperpreciso y conciso en español. Ilimitado 24/7 con LangGraph y llama-cpp-python en Hugging Face Spaces (16 GB RAM).",
examples=["¿Qué es la entropía?", "¿Por qué el cielo es azul?", "¿Qué es la vida?"],
)
# Integrar las rutas de FastAPI (/chat, /healthz, /docs) en la misma app
demo.app.include_router(fastapi_app.router)
if __name__ == "__main__":
demo.launch()