eyes-mdfjbots125 commited on
Commit
67d33d5
Β·
verified Β·
1 Parent(s): e9c7d43

Add README.md with Apache-2.0 license metadata

Browse files
Files changed (1) hide show
  1. README.md +30 -158
README.md CHANGED
@@ -1,169 +1,41 @@
1
- # NEO-1 / NEO-2 β€” mdfjbots
2
-
3
- > Chatbot conversacional de cΓ³digo abierto con base de conocimiento, bΓΊsqueda web con filtrado de licencias, API Roblox, calculadora y ediciΓ³n cerrada cifrada.
4
-
5
- [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
6
- [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
7
- [![Gradio](https://img.shields.io/badge/gradio-4.44%2B-orange)](https://gradio.app/)
8
- [![Node.js](https://img.shields.io/badge/node-18%2B-green)](https://nodejs.org/)
9
-
10
  ---
11
-
12
- ## DescripciΓ³n
13
-
14
- **NEO-1** es un chatbot basado en reglas con una base de conocimiento JSON, coincidencia de tokens con similitud ponderada y variaciΓ³n de respuestas para evitar repeticiones.
15
-
16
- **NEO-2** extiende NEO-1 con bΓΊsqueda web real (DuckDuckGo) que filtra automΓ‘ticamente las fuentes por licencia, usando solo contenido bajo **CC BY**, **CC0** o dominio pΓΊblico. Las fuentes con licencias restrictivas (All Rights Reserved, CC BY-ND, CC BY-NC, etc.) son descartadas.
17
-
18
- Ambas ediciones incluyen integraciΓ³n con la API de Roblox, una calculadora matemΓ‘tica y una REST API (NeoAPI) para integraciΓ³n con bots externos.
19
-
 
 
 
20
  ---
21
 
22
- ## CaracterΓ­sticas
23
-
24
- ### NEO-1 (base)
25
- - **Base de conocimiento JSON** β€” respuestas editables sin tocar cΓ³digo
26
- - **TokenizaciΓ³n con stopwords** β€” evita falsos positivos en palabras vacΓ­as del espaΓ±ol
27
- - **Similitud ponderada** β€” encuentra la mejor coincidencia entre la pregunta y las respuestas conocidas
28
- - **VariaciΓ³n de respuestas** β€” reformula las respuestas para evitar repetirlas verbatim
29
- - **Streaming palabra por palabra** β€” efecto de escritura en tiempo real
30
- - **Calculadora integrada** β€” resuelve operaciones matemΓ‘ticas (`2 + 2`, `raΓ­z de 144`, etc.)
31
- - **API Roblox** β€” busca jugadores y juegos por nombre usando la API oficial
32
-
33
- ### NEO-2 (+ bΓΊsqueda web)
34
- - **BΓΊsqueda DuckDuckGo** β€” consultas reales a internet cuando la base de conocimiento no responde
35
- - **Filtrado de licencias** β€” solo usa fuentes bajo CC BY, CC0 o dominio pΓΊblico
36
- - **Resumen abstractivo** β€” genera prosa propia a partir de los resultados, no copia textualmente
37
- - **CachΓ© de sesiΓ³n** β€” evita bΓΊsquedas repetidas para la misma query (hasta 50 entradas)
38
- - **Reintentos automΓ‘ticos** β€” reintenta hasta 2 veces con pausa ante fallos de red
39
- - **Errores tipificados** β€” distingue entre fallo de red, rate-limit y sin resultados
40
-
41
- ### EdiciΓ³n cerrada
42
- - **Cifrado de respuestas** β€” `respuestas.dat` generado con XOR + zlib + base64
43
- - **Compilador incluido** β€” `compilar_respuestas.py` convierte `respuestas.json` a `.dat`
44
- - **Clave por variable de entorno** β€” `NEO_DATA_KEY` nunca aparece en el cΓ³digo
45
-
46
- ### NeoAPI (REST)
47
- - Servidor Node.js/Express independiente en puerto 8080
48
- - AutenticaciΓ³n por API key con prefijo `neo1-`
49
- - Endpoints para consultar el chatbot desde servicios externos
50
- - Panel de administraciΓ³n de claves protegido por `NEO_ADMIN_SECRET`
51
-
52
- ---
53
-
54
- ## Estructura del proyecto
55
-
56
- ```
57
- /
58
- β”œβ”€β”€ chat-app/
59
- β”‚ β”œβ”€β”€ app.py # AplicaciΓ³n Gradio principal (NEO-1 + NEO-2)
60
- β”‚ β”œβ”€β”€ logica.py # Motor de coincidencia y tokenizaciΓ³n
61
- β”‚ β”œβ”€β”€ buscador.py # BΓΊsqueda web con filtrado de licencias (NEO-2)
62
- β”‚ β”œβ”€β”€ resumidor.py # Resumen abstractivo de resultados web
63
- β”‚ β”œβ”€β”€ matematicas.py # Calculadora de operaciones matemΓ‘ticas
64
- β”‚ β”œβ”€β”€ roblox_api.py # Cliente de la API pΓΊblica de Roblox
65
- β”‚ β”œβ”€β”€ neo_rest.py # Servidor REST en puerto 5001
66
- β”‚ β”œβ”€β”€ compilar_respuestas.py # Compilador de ediciΓ³n cerrada
67
- β”‚ β”œβ”€β”€ respuestas.json # Base de conocimiento (editable)
68
- β”‚ β”œβ”€β”€ respuestas.dat # Base de conocimiento cifrada (ediciΓ³n cerrada)
69
- β”‚ └── requirements.txt
70
- β”‚
71
- └── artifacts/
72
- β”œβ”€β”€ api-server/ # NeoAPI β€” REST API en Node.js/TypeScript
73
- └── neo1-chat/ # Frontend web (React + Vite)
74
- ```
75
-
76
- ---
77
-
78
- ## InstalaciΓ³n
79
-
80
- ### Requisitos
81
- - Python 3.10+
82
- - Node.js 18+ y pnpm (para NeoAPI y frontend)
83
-
84
- ### Chatbot (NEO-1 / NEO-2)
85
-
86
- ```bash
87
- cd chat-app
88
- pip install -r requirements.txt
89
- ```
90
 
91
- Variables de entorno opcionales:
92
 
93
- | Variable | DescripciΓ³n |
94
- |---|---|
95
- | `NEO_DATA_KEY` | Clave de cifrado para ediciΓ³n cerrada |
96
- | `NEO_ADMIN_SECRET` | ContraseΓ±a de administraciΓ³n de NeoAPI |
97
-
98
- ### Ejecutar
99
-
100
- ```bash
101
- # Chatbot Gradio en puerto 5000 + REST en 5001
102
- PORT=5000 python app.py
103
-
104
- # NeoAPI (desde raΓ­z del proyecto)
105
- pnpm --filter @workspace/api-server run dev
106
- ```
107
-
108
- ---
109
-
110
- ## Uso
111
-
112
- ### Interfaz web (Gradio)
113
- Navega a `http://localhost:5000` β€” escribe cualquier pregunta en el chat.
114
-
115
- **Ejemplos de consultas:**
116
- - `ΒΏQuΓ© es una supernova?` β†’ busca en base de conocimiento o internet
117
- - `cuΓ‘nto es 15 * 7 + 3` β†’ calculadora
118
- - `busca el jugador Builderman en Roblox` β†’ API Roblox
119
- - `quΓ© juegos de Roblox tienen mΓ‘s visitas` β†’ API Roblox
120
-
121
- ### NeoAPI (REST)
122
-
123
- ```bash
124
- # Consultar el chatbot
125
- curl -X POST http://localhost:8080/api/chat \
126
- -H "Authorization: Bearer neo1-<tu_api_key>" \
127
- -H "Content-Type: application/json" \
128
- -d '{"message": "Hola, ΒΏquΓ© eres?"}'
129
-
130
- # Crear una API key (requiere NEO_ADMIN_SECRET)
131
- curl -X POST http://localhost:8080/api/keys \
132
- -H "Authorization: Bearer <NEO_ADMIN_SECRET>" \
133
- -H "Content-Type: application/json" \
134
- -d '{"name": "mi-servicio"}'
135
- ```
136
-
137
- ### Compilar ediciΓ³n cerrada
138
-
139
- ```bash
140
- export NEO_DATA_KEY="mi_clave_secreta"
141
- python compilar_respuestas.py
142
- # genera respuestas.dat cifrado con XOR + zlib + base64
143
- ```
144
-
145
- ---
146
-
147
- ## Filtrado de licencias (NEO-2)
148
-
149
- NEO-2 clasifica las fuentes encontradas en tres categorΓ­as:
150
-
151
- | CategorΓ­a | Ejemplos | AcciΓ³n |
152
- |---|---|---|
153
- | βœ… Permitida | Wikipedia, Archive.org, datos.gob.es | Usa el contenido |
154
- | ❓ Desconocida | Dominios sin licencia declarada | Usa como fallback |
155
- | ❌ Bloqueada | Sitios con CC BY-SA, BY-NC, ARR | Descarta silenciosamente |
156
-
157
- Si solo se encuentran fuentes bloqueadas, NEO muestra un mensaje explicativo en lugar de usar contenido no autorizado.
158
 
159
- ---
160
 
161
- ## Licencia
 
 
 
 
 
 
 
162
 
163
- Distribuido bajo la licencia **Apache 2.0**. Consulta el archivo [LICENSE](LICENSE) para mΓ‘s detalles.
164
 
165
- ---
166
 
167
- ## Autor
168
 
169
- **mdfjbotss** β€” [github.com/mdfjbotss](https://github.com/mdfjbotss)
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ - es
6
+ tags:
7
+ - chatbot
8
+ - rule-based
9
+ - roblox
10
+ - calculator
11
+ - gradio
12
+ - conversational
13
+ pipeline_tag: conversational
14
  ---
15
 
16
+ # NEO-1 β€” mdfjbots
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ > Rule-based conversational chatbot with a JSON knowledge base, Roblox API, math calculator, response variation and token-similarity matching.
19
 
20
+ [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
21
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
22
+ [![Gradio](https://img.shields.io/badge/gradio-4.44%2B-orange)](https://gradio.app/)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
+ ## Features
25
 
26
+ - **JSON knowledge base** β€” editable responses without touching code
27
+ - **Token similarity matching** β€” Spanish stopword filtering to avoid false positives
28
+ - **Response variation** β€” auto-reformulates answers to avoid repetition
29
+ - **Word-by-word streaming** β€” simulates real LLM output
30
+ - **Math calculator** β€” solves operations like `15 * 7 + 3`, `2 ** 8`
31
+ - **Roblox API** β€” searches players and games by name
32
+ - **Closed edition** β€” encrypted `respuestas.dat` via XOR + zlib + base64
33
+ - **NeoAPI REST** β€” Node.js/Express server for external integrations
34
 
35
+ ## Repository
36
 
37
+ Source code: [github.com/mdfjbotss/neo-1](https://github.com/mdfjbotss/neo-1)
38
 
39
+ ## License
40
 
41
+ Apache 2.0 β€” see [LICENSE](LICENSE)