GianTejada commited on
Commit
44b6564
·
verified ·
1 Parent(s): df35f65

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +38 -13
  2. app.py +151 -0
  3. requirements.txt +4 -0
README.md CHANGED
@@ -1,13 +1,38 @@
1
- ---
2
- title: Cosmobot Mistral
3
- emoji: 🏆
4
- colorFrom: red
5
- colorTo: green
6
- sdk: gradio
7
- sdk_version: 5.49.1
8
- app_file: app.py
9
- pinned: false
10
- license: mit
11
- ---
12
-
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: CosmoBot
3
+ emoji: 🚀
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: gradio
7
+ sdk_version: 4.0.0
8
+ app_file: app.py
9
+ pinned: false
10
+ ---
11
+
12
+ # 🚀 CosmoBot - Asistente Educativo Espacial
13
+
14
+ Chatbot educativo especializado en exploración espacial y astronomía, impulsado por **Mistral-7B-Grok**.
15
+
16
+ ## 🌌 Características
17
+
18
+ - **Asistente educativo** sobre temas espaciales
19
+ - **Modelo Mistral-7B-Grok** de Hugging Face
20
+ - **Interfaz conversacional** amigable
21
+ - **Respuestas precisas** y educativas
22
+
23
+ ## 🪐 Temas que puedo explicar
24
+
25
+ - Planetas y sistema solar
26
+ - Estrellas y astrofísica
27
+ - Galaxias y cosmología
28
+ - Exploración espacial
29
+ - Agujeros negros
30
+ - Teorías del universo
31
+
32
+ ## 🛠️ Tecnología
33
+
34
+ - **Modelo**: Mistral-7B-Grok
35
+ - **Framework**: Gradio
36
+ - **Plataforma**: Hugging Face Spaces
37
+
38
+ ¡Pregúntame sobre el cosmos! 🌠
app.py ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import pipeline
3
+ import gradio as gr
4
+ import time
5
+
6
+ # Cargar el modelo al iniciar
7
+ def load_model():
8
+ print("🚀 Cargando Mistral-7B-Grok...")
9
+ model = pipeline(
10
+ "text-generation",
11
+ model="HuggingFaceH4/mistral-7b-grok",
12
+ torch_dtype=torch.float16,
13
+ device_map="auto",
14
+ max_new_tokens=256,
15
+ temperature=0.7,
16
+ do_sample=True
17
+ )
18
+ print("✅ Modelo cargado exitosamente!")
19
+ return model
20
+
21
+ # Cargar modelo
22
+ model = load_model()
23
+
24
+ # Función para generar respuestas educativas
25
+ def cosmobot_response(message, history):
26
+ """Genera respuesta usando Mistral-7B con contexto educativo"""
27
+
28
+ # Crear prompt educativo
29
+ system_prompt = """Eres CosmoBot, un asistente educativo especializado en exploración espacial, astronomía y cosmología.
30
+
31
+ Tu misión es proporcionar explicaciones claras, precisas y accesibles para estudiantes de todos los niveles. Mantén un tono amigable y entusiasta sobre el cosmos.
32
+
33
+ Áreas de expertise:
34
+ - Planetas y sistema solar
35
+ - Estrellas y astrofísica
36
+ - Galaxias y cosmología
37
+ - Exploración espacial y misiones
38
+ - Agujeros negros y fenómenos cósmicos
39
+ - Historia de la astronomía
40
+
41
+ Responde de manera educativa e inspiradora:"""
42
+
43
+ # Construir conversación
44
+ conversation = system_prompt + "\n\n"
45
+
46
+ # Agregar historial de conversación
47
+ for user_msg, bot_msg in history:
48
+ conversation += f"Usuario: {user_msg}\nCosmoBot: {bot_msg}\n"
49
+
50
+ # Agregar mensaje actual
51
+ conversation += f"Usuario: {message}\nCosmoBot:"
52
+
53
+ try:
54
+ # Generar respuesta
55
+ start_time = time.time()
56
+ response = model(
57
+ conversation,
58
+ max_new_tokens=300,
59
+ temperature=0.7,
60
+ do_sample=True,
61
+ top_p=0.9
62
+ )[0]['generated_text']
63
+
64
+ # Extraer solo la última respuesta
65
+ bot_response = response.split("CosmoBot:")[-1].strip()
66
+
67
+ # Limpiar respuesta
68
+ if "Usuario:" in bot_response:
69
+ bot_response = bot_response.split("Usuario:")[0].strip()
70
+
71
+ response_time = time.time() - start_time
72
+ print(f"⏱️ Tiempo de respuesta: {response_time:.2f}s")
73
+
74
+ return bot_response
75
+
76
+ except Exception as e:
77
+ print(f"❌ Error: {e}")
78
+ return "🔧 Error temporal. Por favor, intenta nuevamente."
79
+
80
+ # Crear interfaz Gradio
81
+ with gr.Blocks(
82
+ theme=gr.themes.Soft(),
83
+ title="🚀 CosmoBot - Asistente Espacial con Mistral-7B"
84
+ ) as demo:
85
+
86
+ gr.Markdown(
87
+ """
88
+ # 🚀 CosmoBot
89
+ ### Asistente Educativo Espacial con Mistral-7B-Grok
90
+
91
+ ¡Hola! Soy **CosmoBot**, tu guía personal para explorar el universo.
92
+ Puedo explicarte sobre planetas, estrellas, galaxias, exploración espacial y más.
93
+
94
+ **Ejemplos de preguntas:**
95
+ - "Explícame qué son los agujeros negros"
96
+ - "Háblame sobre la exploración de Marte"
97
+ - "Qué es la materia oscura?"
98
+ - "Cuéntame sobre las misiones de la NASA"
99
+ """
100
+ )
101
+
102
+ # Chatbot interactivo
103
+ chatbot = gr.Chatbot(
104
+ label="Conversación con CosmoBot",
105
+ height=500,
106
+ show_copy_button=True
107
+ )
108
+
109
+ with gr.Row():
110
+ msg = gr.Textbox(
111
+ label="Escribe tu pregunta sobre el espacio",
112
+ placeholder="Pregunta sobre astronomía, planetas, estrellas...",
113
+ scale=4
114
+ )
115
+ submit = gr.Button("🚀 Enviar", scale=1)
116
+
117
+ # Ejemplos rápidos
118
+ gr.Examples(
119
+ examples=[
120
+ "Explícame qué son los agujeros negros",
121
+ "Háblame sobre la misión Artemis de la NASA",
122
+ "Cómo se forman las estrellas?",
123
+ "Qué sabemos sobre el planeta Marte?",
124
+ "Explica la teoría del Big Bang"
125
+ ],
126
+ inputs=msg
127
+ )
128
+
129
+ # Funcionalidad de limpiar
130
+ clear = gr.Button("🧹 Limpiar conversación")
131
+
132
+ # Manejar envío de mensajes
133
+ def respond(message, chat_history):
134
+ if not message.strip():
135
+ return "", chat_history
136
+
137
+ bot_message = cosmobot_response(message, chat_history)
138
+ chat_history.append((message, bot_message))
139
+ return "", chat_history
140
+
141
+ # Conectar eventos
142
+ msg.submit(respond, [msg, chatbot], [msg, chatbot])
143
+ submit.click(respond, [msg, chatbot], [msg, chatbot])
144
+ clear.click(lambda: None, None, chatbot, queue=False)
145
+
146
+ # Lanzar aplicación
147
+ if __name__ == "__main__":
148
+ demo.launch(
149
+ server_name="0.0.0.0",
150
+ share=False
151
+ )
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ torch>=2.0.0
2
+ transformers>=4.30.0
3
+ accelerate>=0.20.0
4
+ gradio>=4.0.0