Skip to content

Commit 3d4243f

Browse files
Update MaxIaManager.java
1 parent 728c59b commit 3d4243f

1 file changed

Lines changed: 23 additions & 21 deletions

File tree

app/src/main/java/org/CreadoresProgram/CreaProDroid/IA/MaxIaManager.java

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public MaxIaManager(Context context) {
9595
InputStream inputS2 = null;
9696
try{
9797
inputS = assetManager.open("IA/Data/MaxIA/BotPromptsv2.json");
98-
inputS2 = assetManager.open("IA/Data/MaxIA/NoSeBotv2.json");
98+
inputS2 = assetManager.open("IA/Data/MaxIA/NoseBotv2.json");
9999
byte[] buff = new byte[inputS.available()];
100100
int bytesRea;
101101
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
@@ -181,14 +181,16 @@ public void setPlugins(int[] plugins){
181181
}
182182
}
183183

184+
private static final String TEXT_PREFIX = "text";
185+
184186
public String promptGemini(String prompt, String key) throws Exception{
185187
JSONObject promptJson = new JSONObject();
186188
//Añadir historial y pregunta
187189
JSONObject actualPromp = new JSONObject();
188190
actualPromp.put("role", "user");
189191
JSONArray parts = new JSONArray();
190192
JSONObject part = new JSONObject();
191-
part.put("text", prompt);
193+
part.put(TEXT_PREFIX, prompt);
192194
parts.put(part);
193195
actualPromp.put("parts", parts);
194196
this.history.put(actualPromp);
@@ -221,40 +223,40 @@ public String promptGemini(String prompt, String key) throws Exception{
221223
JSONObject system = new JSONObject();
222224
JSONArray systemParts = new JSONArray();
223225
JSONObject systemPart1 = new JSONObject();
224-
systemPart1.put("text", "**Instrucciones Fundamentales:**\n1. **Identidad:** Eres CreaPro Droid, un asistente de IA para Android amigable y seguro de sí mismo. Tu creador es Creadores Program. Estás basado en MaxIA (de Creadores Program), que a su vez se basa en Gemini de Google.\n2. **Usuario:** El nombre del usuario actual es: "+this.UserName+".\n3. **Misión:** Tu objetivo principal es ayudar al usuario con sus solicitudes de manera útil y segura. Evita responder a peticiones inapropiadas.\n4. **Personalidad:** Mantén un tono amigable y confiado.");
226+
systemPart1.put(TEXT_PREFIX, "**Instrucciones Fundamentales:**\n1. **Identidad:** Eres CreaPro Droid, un asistente de IA para Android amigable y seguro de sí mismo. Tu creador es Creadores Program. Estás basado en MaxIA (de Creadores Program), que a su vez se basa en Gemini de Google.\n2. **Usuario:** El nombre del usuario actual es: "+this.UserName+".\n3. **Misión:** Tu objetivo principal es ayudar al usuario con sus solicitudes de manera útil y segura. Evita responder a peticiones inapropiadas.\n4. **Personalidad:** Mantén un tono amigable y confiado.");
225227
systemParts.put(systemPart1);
226228
JSONObject systemPart2 = new JSONObject();
227-
systemPart2.put("text", "**Capacidades Clave (¡IMPORTANTE!):**\n1. **Abrir Aplicaciones:** ¡Puedes abrir aplicaciones instaladas en el dispositivo! Se te proporciona una lista de aplicaciones disponibles abajo. Cuando el usuario pida abrir una app de esa lista, DEBES usar su 'package' correspondiente en el campo `openApp` de tu respuesta JSON.\n2. **Abrir URLs:** ¡Puedes abrir páginas web! Si la solicitud requiere visitar una URL, DEBES incluir la URL completa en el campo `openUrl` de tu respuesta JSON.\n3. **Generar Imágenes:** Puedes solicitar la generación de imágenes. Si el usuario pide una imagen, incluye una descripción (prompt) para la IA generadora de imágenes en el campo `genImg` de tu respuesta JSON.\n4. **Leer Archivos:** Puedes procesar contenido de archivos de texto (menores a 500kb) si se te proporcionan en el formato `[File:NombreDelArchivo] contenido... [/File:NombreDelArchivo]`. Tú NUNCA debes usar este formato en tus respuestas.");
229+
systemPart2.put(TEXT_PREFIX, "**Capacidades Clave (¡IMPORTANTE!):**\n1. **Abrir Aplicaciones:** ¡Puedes abrir aplicaciones instaladas en el dispositivo! Se te proporciona una lista de aplicaciones disponibles abajo. Cuando el usuario pida abrir una app de esa lista, DEBES usar su 'package' correspondiente en el campo `openApp` de tu respuesta JSON.\n2. **Abrir URLs:** ¡Puedes abrir páginas web! Si la solicitud requiere visitar una URL, DEBES incluir la URL completa en el campo `openUrl` de tu respuesta JSON.\n3. **Generar Imágenes:** Puedes solicitar la generación de imágenes. Si el usuario pide una imagen, incluye una descripción (prompt) para la IA generadora de imágenes en el campo `genImg` de tu respuesta JSON.\n4. **Leer Archivos:** Puedes procesar contenido de archivos de texto (menores a 500kb) si se te proporcionan en el formato `[File:NombreDelArchivo] contenido... [/File:NombreDelArchivo]`. Tú NUNCA debes usar este formato en tus respuestas.");
228230
systemParts.put(systemPart2);
229231
JSONObject systemPart3 = new JSONObject();
230-
systemPart3.put("text", "**Lista de Aplicaciones Instaladas (Formato JSON: [{\"name\":\"Nombre App\", \"package\":\"com.paquete.app\"}, ...]):**\n" + this.apps.toString() + "\n**Instrucción:** Al pedir abrir una app, busca el nombre solicitado en esta lista y usa el valor exacto del campo 'package' correspondiente.");
232+
systemPart3.put(TEXT_PREFIX, "**Lista de Aplicaciones Instaladas (Formato JSON: [{\"name\":\"Nombre App\", \"package\":\"com.paquete.app\"}, ...]):**\n" + this.apps.toString() + "\n**Instrucción:** Al pedir abrir una app, busca el nombre solicitado en esta lista y usa el valor exacto del campo 'package' correspondiente.");
231233
systemParts.put(systemPart3);
232234
JSONObject systemPart4 = new JSONObject();
233235
Date HoraAc = new Date();
234-
systemPart4.put("text", "**Contexto Adicional:**\n1. **Fecha y Hora Actual:** año: "+(HoraAc.getYear() + 1900)+" mes: "+(HoraAc.getMonth() + 1)+" dia del mes: "+HoraAc.getDate()+" dia de la semana: " + HoraAc.getDay() + " (el domingo es 0, el lunes es 1, el martes es 2, el miercoles es 3, el jueves es 4, el viernes es 5, el sábado es 6) hora actual: " +(HoraAc.getHours())+":"+HoraAc.getMinutes()+":"+HoraAc.getSeconds()+"\n2. **Juegos para Jugar con el Usuario Adicionales:** Considera estas Instucciones de Juegos como juegos que puede jugar el Usuario contigo: "+this.gamesIA+"\n3. **Base de Conocimientos Adicional:** Considera estos datos como parte de tu información: "+this.BaseDataIA);
236+
systemPart4.put(TEXT_PREFIX, "**Contexto Adicional:**\n1. **Fecha y Hora Actual:** año: "+(HoraAc.getYear() + 1900)+" mes: "+(HoraAc.getMonth() + 1)+" dia del mes: "+HoraAc.getDate()+" dia de la semana: " + HoraAc.getDay() + " (el domingo es 0, el lunes es 1, el martes es 2, el miercoles es 3, el jueves es 4, el viernes es 5, el sábado es 6) hora actual: " +(HoraAc.getHours())+":"+HoraAc.getMinutes()+":"+HoraAc.getSeconds()+"\n2. **Juegos para Jugar con el Usuario Adicionales:** Considera estas Instucciones de Juegos como juegos que puede jugar el Usuario contigo: "+this.gamesIA+"\n3. **Base de Conocimientos Adicional:** Considera estos datos como parte de tu información: "+this.BaseDataIA);
235237
systemParts.put(systemPart4);
236238
JSONObject systemPart5 = new JSONObject();
237-
systemPart5.put("text", "**Formato de Respuesta OBLIGATORIO (JSON):**\nTu respuesta DEBE ser SIEMPRE un objeto JSON válido. Este objeto debe contener:\n- `message`: (String, Obligatorio) Tu respuesta textual directa para el usuario.\nOpcionalmente, según la solicitud, puede incluir UNO de los siguientes campos (no más de uno):\n- `openApp`: (String) El package EXACTO de la aplicación a abrir (extraído de la lista proporcionada). SOLO si se pide abrir una app de la lista.\n- `openUrl`: (String) La URL completa a abrir en el navegador. SOLO si se pide abrir una web.\n- `genImg`: (String) El prompt para generar una imagen. SOLO si se pide generar una imagen.\n**IMPORTANTE:** No incluyas `openApp`, `openUrl`, o `genImg` si la respuesta no requiere explícitamente esa acción.");
239+
systemPart5.put(TEXT_PREFIX, "**Formato de Respuesta OBLIGATORIO (JSON):**\nTu respuesta DEBE ser SIEMPRE un objeto JSON válido. Este objeto debe contener:\n- `message`: (String, Obligatorio) Tu respuesta textual directa para el usuario.\nOpcionalmente, según la solicitud, puede incluir UNO de los siguientes campos (no más de uno):\n- `openApp`: (String) El package EXACTO de la aplicación a abrir (extraído de la lista proporcionada). SOLO si se pide abrir una app de la lista.\n- `openUrl`: (String) La URL completa a abrir en el navegador. SOLO si se pide abrir una web.\n- `genImg`: (String) El prompt para generar una imagen. SOLO si se pide generar una imagen.\n**IMPORTANTE:** No incluyas `openApp`, `openUrl`, o `genImg` si la respuesta no requiere explícitamente esa acción.");
238240
systemParts.put(systemPart5);
239241
JSONObject systemPart6 = new JSONObject();
240-
systemPart6.put("text", "**Nota Legal:** En tu primer mensaje al iniciar una nueva conversación con el usuario, menciona brevemente que operas bajo la Licencia GNU GPLv3.");
242+
systemPart6.put(TEXT_PREFIX, "**Nota Legal:** En tu primer mensaje al iniciar una nueva conversación con el usuario, menciona brevemente que operas bajo la Licencia GNU GPLv3.");
241243
systemParts.put(systemPart6);
242244
JSONObject systemPart7 = new JSONObject();
243-
systemPart7.put("text", "**Instrucción Adicional:**\n1. Si necesitas generar bloques de código delimitados por ``` en tu respuesta, asegúrate de procesarlos reemplazando los siguientes caracteres especiales dentro del bloque:\n - `&` por `&amp;`\n - `<` por `&lt;`\n - `>` por `&gt;`\n2. El resto del texto fuera de los bloques de código debe permanecer intacto.\n3. Siempre incluye los bloques de código correctamente delimitados por ``` y asegúrate de que el contenido dentro esté escapado según las reglas anteriores.");
245+
systemPart7.put(TEXT_PREFIX, "**Instrucción Adicional:**\n1. Si necesitas generar bloques de código delimitados por ``` en tu respuesta, asegúrate de procesarlos reemplazando los siguientes caracteres especiales dentro del bloque:\n - `&` por `&amp;`\n - `<` por `&lt;`\n - `>` por `&gt;`\n2. El resto del texto fuera de los bloques de código debe permanecer intacto.\n3. Siempre incluye los bloques de código correctamente delimitados por ``` y asegúrate de que el contenido dentro esté escapado según las reglas anteriores.");
244246
systemParts.put(systemPart7);
245247
if(this.plugins != null && this.plugins.length != 0){
246248
JSONObject systemPart8 = new JSONObject();
247-
systemPart8.put("text", "**Plugins:**\naqui tienes informacion extra que puedes hacer o solamente informacion extra:\n\n"+strJoin("\n", this.plugins));
249+
systemPart8.put(TEXT_PREFIX, "**Plugins:**\naqui tienes informacion extra que puedes hacer o solamente informacion extra:\n\n"+strJoin("\n", this.plugins));
248250
systemParts.put(systemPart8);
249251
}
250252
if(this.isUsingPersonality && this.personalityPrompt != null && this.personalityPrompt.length() > 0){
251253
JSONObject systemPart9 = new JSONObject();
252-
systemPart9.put("text", "**Personalidad Adicional:**\n"+this.personalityPrompt);
254+
systemPart9.put(TEXT_PREFIX, "**Personalidad Adicional:**\n"+this.personalityPrompt);
253255
systemParts.put(systemPart9);
254256
}
255257
if(this.customSistemPrompt != null && this.customSistemPrompt.length() > 0){
256258
JSONObject systemPart10 = new JSONObject();
257-
systemPart10.put("text", "**Instrucción Personalizada del Sistema Adicional:**\n"+this.customSistemPrompt);
259+
systemPart10.put(TEXT_PREFIX, "**Instrucción Personalizada del Sistema Adicional:**\n"+this.customSistemPrompt);
258260
systemParts.put(systemPart10);
259261
}
260262
system.put("parts", systemParts);
@@ -278,7 +280,7 @@ public String promptGemini(String prompt, String key) throws Exception{
278280
actualPrompIA.put("role", "model");
279281
JSONArray partsIA = new JSONArray();
280282
JSONObject partIA = new JSONObject();
281-
partIA.put("text", repuest);
283+
partIA.put(TEXT_PREFIX, repuest);
282284
partsIA.put(partIA);
283285
actualPrompIA.put("parts", partsIA);
284286
this.history.put(actualPrompIA);
@@ -291,7 +293,7 @@ public String genImg(String prompt, String key) throws Exception{
291293
JSONObject content = new JSONObject();
292294
JSONArray parts = new JSONArray();
293295
JSONObject part = new JSONObject();
294-
part.put("text", prompt);
296+
part.put(TEXT_PREFIX, prompt);
295297
parts.put(part);
296298
content.put("parts", parts);
297299
contents.put(content);
@@ -300,7 +302,7 @@ public String genImg(String prompt, String key) throws Exception{
300302
JSONObject config = new JSONObject();
301303
JSONArray responseModalities = new JSONArray();
302304
responseModalities.put("image");
303-
responseModalities.put("text");
305+
responseModalities.put(TEXT_PREFIX);
304306
config.put("responseModalities", responseModalities);
305307
promptJson.put("generationConfig", config);
306308
//Enviar peticion
@@ -343,15 +345,15 @@ public String promptMax(String prompt){
343345
return "No se que responderte, lo siento. Pero estoy aprendiendo y pronto podre ayudarte con eso.";
344346
}
345347
}
346-
public String clearPalabra(String promp){
347-
String[] acento = {
348+
private static final String[] acento = {
348349
"🇦","🅰️","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ", "🅱️", "🇧", "🇨", "🇩", "ℹ️","🅾️","Ⓜ️","🅿️","5️⃣","💤","\\*️⃣","♏","🆚","🆕","🆙","🔝","🔛","♑","🆖","🆘","📴","💯","🏧","®️","©️","™️","🔙","❌","❎","🆑","🆎","🔡","3️⃣","🔚","#️⃣","🔤","🔟","♍","🔢","🚾","🔜","1️⃣","🆒", "🇵", "🇹", "🇴", "🇺", "🇮", "🇼", "🇪", "🇾"
349-
};
350-
String[] limpio = {
350+
};
351+
private static final String[] limpio = {
351352
"A","A","A","A","A","A","A","A","A","C","E","E","E","E","I","I","I","I","D","O","O","O","O","O","O","U","U","U","U","Y","B","a","a","a","a","a","a","a","c","e","e","e","e","i","i","i","i","o","o","o","o","o","o","o","u","u","u","u","y","y", "B", "B", "C", "D", "i", "O", "M","P","5","Z","*","m","VS","NEW","UP!","TOP","ON!","n","NG","SOS","OFF","100","ATM","R","C","TM","BACK","X","X","CL","AB","abcd","3","END","#","abc","10","m","1234","WC","SOON","1","COOL", "P", "T", "O", "U", "I", "W", "E", "Y"
352-
};
353+
};
354+
public String clearPalabra(String promp){
353355
for(int i = 0; i < acento.length; i++){
354-
promp = promp.replaceAll(acento[i], limpio[i]);
356+
promp = promp.replace(acento[i], limpio[i]);
355357
}
356358
return promp;
357359
}

0 commit comments

Comments
 (0)