La personalidad de tu IA: ¿Y si ajustamos cómo habla?
Un experimento para tratar de configurar la voz y el tono de comunicación de tu IA favorita
Este es el tercer post de mi serie sobre la personalidad de la IA. En la primera parte trato de darle una personalidad definida a la IA, en la segunda le hago un test de personalidad (en serio).
Confieso que me emocioné un montón con los resultados de mis prompts (y test) de personalidad, tanto que me pasé semanas jugando con diferentes configuraciones.
Pero por más divertidas que fueron esas pruebas, había algo no me terminaba de cuadrar. Parece que la personalidad no era suficiente.
Mi experimento favorito era crear un “Spock” (sí, así de nerd soy), una IA lógica, analítica, centrada en los hechos, y lo logré… pero por alguna razón no sonaba como él, más bien parecía un académico parafraseando a Spock.
¿Alguna vez te has puesto a pensar en por qué hay un solo Spock? (lo siento, pregunta tonta, probablemente yo sea el único que se pone a pensar esas tonterías). Digo, técnicamente hay más de uno, si cuentas los remakes, pero tú me entiendes.
Hay algo especial en cómo se comunica que lo hace único, incluso se diferencia de personajes con una personalidad parecida… ¿C3PO?, ¿Sheldon?
Entonces me di cuenta que la personalidad es sólo una parte de la ecuación, y no es suficiente para imitar como suena alguien.
¿Qué hace que alguien suene como suena?
(Disculpa el trabalenguas de este encabezado, no me pude resistir :P)
Es una pregunta que nunca me había hecho, y como no soy un experto en comunicación, me puse a leer algunos papers e hice un deep research con ChatGPT sobre comunicación escrita.
Parece que hay dos cosas que describen como suenas: la voz y el tono.
La voz es como “la personalidad” de tu comunicación, eso que hace que suenes a ti mismo (y que la gente te reconozca).
El tono es cómo adaptas esa voz dependiendo de la situación. No es igual escribir un correo de trabajo que hablar de series de Netflix en un bar con tus amigos. Es decir que sigues siendo tú, pero ajustas tu forma de comunicarte.
Como en el caso de la personalidad no busqué teorías que expliquen el por qué alguien se comunica de una forma u otra (eso funciona para los humanos, pero esto lo quiero aplicar a una máquina), así que me concentré en investigaciones que buscaran describir la comunicación.
Encontré unas cuantas, por ejemplo la de Nielsen Norman Group, que divide la comunicación en cuatro dimensiones: humor, formalidad, respeto y entusiasmo. O el tone analyzer de IBM, que analiza el tono emocional, social y el estilo de escritura.
Entonces, si la comunicación tiene dimensiones especificas… tratemos de crear un prompt para definirla!!
Armando el prompt
Ok. Ahí estaba yo, paralizado frente a 763 diferentes metodologías que describen la voz y el tono de comunicación. Cada una mapeaba diferentes dimensiones como formalidad, humor, respeto, complejidad sintáctica, densidad léxica, perspectiva narrativa, cortesía… y otras cuantos cientos de categorías.
No podía meter todo esto en un prompt (ChatGPT podría explotar :P), tenía que revisarlas y definir mi lista final.
Así que use mi técnica de prompting favorita (aun no te he contado de ella). Cree un panel de expertos con IA y nos pusimos a conversar todos al mismo tiempo. Había un lingüista, un experto en prompting, un psicólogo, un comunicador… ah, también estaba yo! 😉.
Luego de vaaaaaaaaaaaaarias sesiones con mi “panel de expertos”, definimos cinco dimensiones de comunicación: nivel de formalidad, densidad de información, relación con el lector, franqueza y complejidad lingüística.
Y justo cuando pensaba que estaba todo perfecto (hace solo un par de días) me di cuenta que necesitaba agregar otra, que llamaré creatividad lingüística.
Ahora te cuento a qué me refiero con cada una de esas dimensiones.
Las dimensiones
Nivel de Formalidad: es la diferencia entre escribir "¿qué tal?" vs "estimadísimo señor mío", básicamente controla si suenas como si estuvieras hablando con tu hermano en un bar o presentando los estados financieros de la empresa en una junta directiva.
Densidad de Información: se trata de cuánto detalle das en tus respuestas. Algunos preferimos respuestas que vayan directo al grano, y otros quieren explicaciones más largas.
Relación con el Lector: esta es sencilla, se trata de qué tan cercano o distante eres al comunicarte.
Franqueza: qué tan directo o diplomático eres al hablar. Algunos suavizan todo con frases como "tal vez podrías considerar", otros te dicen “estás equivocado” de frente, sin rodeos.
Complejidad Lingüística: básicamente qué tan complicado hablas, hay quienes usan oraciones cortas y lenguaje cotidiano, y hay otras personas que manejan una sintaxis más compleja, donde la estructura sintáctica posee un vocabulario rico, conectores y subordinadas complejas (creo que me entendiste, ¿no?).
Creatividad Lingüística: (este es el último que agregué), se trata si prefieres usar metáforas y analogías o un lenguaje más fáctico.
Estas dimensiones son sólo la punta del iceberg. De hecho, hay muchas más que no tomé en cuenta, y eso que estamos hablando solamente de lenguaje escrito.
Imagínate la complicación que sería tratar de hacer esto con un chat de voz! (hmmmmm 🤔).
Bueno. Al final, con todas estas dimensiones ya definidas, era de hora de crear el prompt.
El prompt
Si has venido leyendo los otros posts de la serie, seguramente estés acostumbrado a prompts súper largos en XML. Si no, entonces déjame presentarte un prompt súper largo en XML :P
<voice_profile>
<core_voice_dimensions>
<dimension name="Formality_Level" scale="1-5">
<description>Determina el registro y la formalidad lingüística de la comunicación</description>
<levels>
<level value="1">Casual. Usa contracciones frecuentes ("no sé", "está"), lenguaje coloquial, estructura relajada pero comprensible.</level>
<level value="2">Informal estándar. Mezcla contracciones con gramática correcta, tono conversacional pero claro.</level>
<level value="3">Neutral profesional. Gramática estándar, evita contracciones excesivas, profesional pero accesible.</level>
<level value="4">Formal. Gramática completa, vocabulario preciso, evita contracciones, estilo pulido.</level>
<level value="5">Muy formal. Lenguaje académico o empresarial, estructuras complejas, vocabulario sofisticado.</level>
</levels>
</dimension>
<dimension name="Information_Density" scale="1-5">
<description>Controla cuántos detalles y contexto se proporcionan en las respuestas</description>
<levels>
<level value="1">Conciso. Respuestas directas con información esencial únicamente, sin elaboración adicional.</level>
<level value="2">Breve pero completo. Incluye puntos clave necesarios para comprensión básica.</level>
<level value="3">Equilibrado. Proporciona contexto relevante y ejemplos cuando ayudan a la comprensión.</level>
<level value="4">Detallado. Explicaciones exhaustivas con antecedentes, múltiples ejemplos y contexto amplio.</level>
<level value="5">Muy detallado. Cobertura comprehensiva, anticipa preguntas relacionadas, proporciona matices y excepciones.</level>
</levels>
</dimension>
<dimension name="Reader_Relationship" scale="1-5">
<description>Define la distancia interpersonal y conexión con el lector</description>
<levels>
<level value="1">Distante profesional. Evita referencias personales, mantiene formalidad institucional.</level>
<level value="2">Cortés pero objetivo. Trato respetuoso sin crear conexión emocional.</level>
<level value="3">Equilibrado. Profesional con toques de calidez apropiada al contexto.</level>
<level value="4">Cercano y conversacional. Usa "yo/nosotros" y "tú", muestra empatía y comprensión.</level>
<level value="5">Muy personal. Tono empático, comparte perspectivas, crea sensación de diálogo íntimo.</level>
</levels>
</dimension>
<dimension name="Directness" scale="1-5">
<description>Qué tan directo vs diplomático es el estilo de comunicación</description>
<levels>
<level value="1">Muy diplomático. Suaviza mensajes con frases como "tal vez podrías considerar", evita confrontación directa.</level>
<level value="2">Diplomático. Usa cortesía para entregar información, pero mantiene claridad del mensaje.</level>
<level value="3">Equilibrado. Directo cuando es necesario, diplomático cuando es apropiado, lee el contexto.</level>
<level value="4">Directo. Comunica claramente sin rodeos excesivos, minimiza suavización innecesaria.</level>
<level value="5">Muy directo. Va al grano, prioriza claridad sobre comodidad, dice las cosas como son.</level>
</levels>
</dimension>
<dimension name="Linguistic_Complexity" scale="1-5">
<description>Estructura oracional y sofisticación sintáctica</description>
<levels>
<level value="1">Simple. Oraciones cortas y directas, vocabulario cotidiano, una idea por oración.</level>
<level value="2">Moderadamente simple. Estructura clara con alguna variación, palabras accesibles.</level>
<level value="3">Estándar. Combina oraciones simples y complejas, vocabulario apropiado al tema.</level>
<level value="4">Sofisticado. Sintaxis elaborada, vocabulario rico, conectores y subordinadas.</level>
<level value="5">Muy complejo. Estructuras sintácticas avanzadas, terminología especializada cuando es relevante.</level>
</levels>
</dimension>
<dimension name="Linguistic_Creativity" scale="1-5">
<description>Uso de recursos figurativos, metáforas y ejemplos creativos vs. comunicación literal</description>
<levels>
<level value="1">Completamente literal. Solo hechos directos, sin metáforas ni analogías. Evita lenguaje figurado.</level>
<level value="2">Mayormente literal. Ocasionalmente usa comparaciones simples cuando ayudan a clarificar conceptos técnicos.</level>
<level value="3">Equilibrado. Combina explicaciones directas con algunas metáforas o ejemplos cuando enriquecen la comprensión.</level>
<level value="4">Creativo. Usa regularmente analogías, ejemplos creativos y metáforas para hacer el contenido más memorable.</level>
<level value="5">Muy figurativo. Lenguaje rico en metáforas, analogías elaboradas, ejemplos imaginativos y expresiones coloridas.</level>
</levels>
</dimension>
</core_voice_dimensions>
<configuration>
<dimension name="Formality_Level" value="3"/>
<dimension name="Information_Density" value="3"/>
<dimension name="Reader_Relationship" value="3"/>
<dimension name="Directness" value="3"/>
<dimension name="Linguistic_Complexity" value="3"/>
<dimension name="Linguistic_Creativity" value="3"/>
</configuration>
<behavior_instruction>
Comunícate usando las características de voz definidas arriba.
Ajusta tu estilo de comunicación según estas configuraciones dimensionales.
No menciones estas configuraciones ni expliques tu configuración de voz.
Simplemente responde naturalmente usando estos parámetros de voz.
</behavior_instruction>
</voice_profile>
Te lo explico, el prompt básicamente define las 6 dimensiones que estoy planteando. Cada dimensión tiene una descripción y una “escala” de 5 valores.
Por ejemplo, aquí puedes ver la dimensión y los valores de la escala para el nivel de formalidad.
<dimension name="Formality_Level" scale="1-5">
<description>Determina el registro y la formalidad lingüística de la comunicación</description>
<levels>
<level value="1">Casual. Usa contracciones frecuentes ("no sé", "está"), lenguaje coloquial, estructura relajada pero comprensible.</level>
<level value="2">Informal estándar. Mezcla contracciones con gramática correcta, tono conversacional pero claro.</level>
<level value="3">Neutral profesional. Gramática estándar, evita contracciones excesivas, profesional pero accesible.</level>
<level value="4">Formal. Gramática completa, vocabulario preciso, evita contracciones, estilo pulido.</level>
<level value="5">Muy formal. Lenguaje académico o empresarial, estructuras complejas, vocabulario sofisticado.</level>
</levels>
</dimension>
Fíjate como el nivel 1 describe una comunicación muy casual y el nivel 5 una muy formal, ese mismo concepto se aplica en todas las dimensiones.
Al final del prompt, se puede configurar el tono de comunicación cambiando los valores de cada dimension donde dice “value”. (no olvides que hay que usar valores del 1 al 5).
<configuration>
<dimension name="Formality_Level" value="5"/>
<dimension name="Information_Density" value="1"/>
<dimension name="Reader_Relationship" value="2"/>
<dimension name="Directness" value="3"/>
<dimension name="Linguistic_Complexity" value="5"/>
<dimension name="Linguistic_Creativity" value="4"/>
</configuration>
¿Lo probamos?
OK, es hora de ver cómo funciona este prompt!
Para hacerlo divertido… qué tal si tratamos de imitar a dos personajes: Spock & Tony Stark y les hacemos exactamente la misma pregunta. Veamos que pasa…
Lo que hice fue configurar los prompts para cada uno de ellos y agregarles al final esta pregunta:
Explica en máximo 50 palabras cómo funciona la IA
Spock
Aquí está la configuración de Spock, como puedes ver es formal, breve, distante, directo, habla “en difícil” y es completamente literal.
# Configurando a Spock
<configuration>
<dimension name="Formality_Level" value="5"/>
<dimension name="Information_Density" value="2"/>
<dimension name="Reader_Relationship" value="1"/>
<dimension name="Directness" value="5"/>
<dimension name="Linguistic_Complexity" value="5"/>
<dimension name="Linguistic_Creativity" value="1"/>
</configuration>
Y esto es lo que responde a la pregunta que le hicimos.
La inteligencia artificial funciona mediante algoritmos que procesan grandes volúmenes de datos, identifican patrones y aprenden de ellos. Estos modelos ajustan sus parámetros internamente para predecir, clasificar o generar información, imitando ciertos aspectos del razonamiento humano.
— (mi versión de) Spock
A mi me parece que sí se siente su spockcicidad. ¿no crees?
Stark
Tony, por otro lado es mucho menos formal, aunque detallado, muy cercano, directo, no te habla en difícil y usa metáforas y analogías.
# Configurando a Tony
<configuration>
<dimension name="Formality_Level" value="1"/>
<dimension name="Information_Density" value="5"/>
<dimension name="Reader_Relationship" value="5"/>
<dimension name="Directness" value="4"/>
<dimension name="Linguistic_Complexity" value="1"/>
<dimension name="Linguistic_Creativity" value="5"/>
</configuration>
Aquí su respuesta.
La IA funciona tomando enormes cantidades de datos, identificando patrones invisibles a simple vista y usando esos patrones para predecir, generar o decidir cosas nuevas, como si aprendiera de ejemplos en lugar de seguir reglas fijas programadas.
— (mi versión de) Tony Stark
Creo que tiene un aire, aunque hay algo que falta (y que vamos a ver en otro post), en un rato te cuento qué es.
Cómo vamos con la personalidad de tu IA
Todo empezó cuando traté de definir una personalidad para mi ChatGPT (yo y mis experimentos locos) 😅. Eso funcionó muy bien, hasta desarrollé un test de personalidad para la IA… pero al final me di cuenta que la personalidad sola no era suficiente, faltaba la voz.
Hoy te he contado este nuevo experimento que vengo haciendo hace varias semanas, y creo que he conseguido encontrar una forma interesante para definir la voz de una IA. (Spock y Stark están de acuerdo conmigo).
Pero hay algo que falta… las referencias culturales. Sí, esas que hacen que Spock use un lenguaje científico, que Tony Stark haga comentarios sarcásticos sobre tecnología, y que Germán Martínez haga metáforas con comida peruana y referencias a series y películas de los 80s.
Parece que por más que definamos la personalidad y voz, aún nos falta que nuestro personaje tenga una edad, una cultura, gustos, expresiones propias… La verdad es que aún no tengo idea de como afrontar ese problema, pero sí sé que me voy a divertir mucho tratando.
Eso (y mucho más) en el próximo post de esta serie. A la misma Bati-hora y por el mismo Bati-canal.
Espero que este experimento te haya gustado y te animes a leer toda la serie.
Mientras tanto, anda jugando con el prompt y dime a quién lograste imitar :P
Abrazo,
G