0Pricing
AI Prompt Engineering · Lección

Texto sin formato frente a resultados con formato

Cuándo solicitar texto limpio sin formato y cuándo resultados enriquecidos en Markdown.

Texto sin formato frente a resultados con formato es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.

El caso del texto sin formato

El formato Markdown es potente, pero no siempre es la opción adecuada. Muchas aplicaciones del mundo real necesitan texto limpio y sin formato, en el que los símbolos de Markdown aparezcan como caracteres literales en lugar de mostrarse como formato.

Saber cuándo solicitar texto sin formato es tan importante como saber cómo solicitar un formato enriquecido.

Cuándo se requiere texto sin formato

Utilice una salida de texto sin formato cuando el entorno no renderice Markdown:

  • Texto para correos electrónicos: la mayoría de los clientes de correo muestran los asteriscos sin procesar
  • SMS y notificaciones push: no admiten formato
  • Salidas de voz: el texto a voz lee '** bold **' literalmente
  • Campos de CRM y mesas de ayuda: muchos no renderizan Markdown
  • Procesamiento de datos mediante API: cuando el texto se almacenará o se procesará posteriormente
  • Campos de entrada de sistemas heredados: solo texto sin formato
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=200,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 120-character push notification for a flash sale ending in 2 hours. '
            'Plain text only — no emojis, no markdown, no asterisks, no special characters. '
            'Must include: urgency, discount percentage (30%), and category (electronics). '
            'Output the notification text only — nothing else.'
        )
    }]
)
print(response.content[0].text)

Solicitar texto sin formato explícitamente

En muchos contextos, los modelos de IA generan de forma predeterminada salidas con mucho Markdown. Para obtener texto verdaderamente sin formato, debe indicarlo explícitamente y, a menudo, mencionar los símbolos específicos que deben evitarse:

  • 'Solo texto sin formato: sin formato Markdown'
  • 'Sin asteriscos, sin símbolos de almohadilla y sin símbolos de viñeta'
  • 'Sin encabezados, sin negrita y sin listas; únicamente párrafos de prosa fluida'
  • 'Elimine todo el formato; genere la salida como si estuviera escribiendo en el Bloc de notas'
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Without plain text instruction — likely gets markdown
default_prompt = 'Explain what a webhook is in 100 words.'

# With explicit plain text instruction
plain_prompt = (
    'Explain what a webhook is in 100 words. '
    'Output format: plain text only. No markdown. No asterisks. No headers. '
    'No bullet points. Just continuous prose paragraphs.'
)

for label, prompt in [('DEFAULT (likely markdown)', default_prompt), ('EXPLICIT PLAIN TEXT', plain_prompt)]:
    response = client.chat.completions.create(
        model='gpt-4o', max_tokens=150,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.choices[0].message.content)
    print()

Texto sin formato para correos electrónicos

La redacción de correos electrónicos es uno de los casos de uso más comunes del texto sin formato. Aunque algunos clientes de correo admiten formato HTML, el texto generado por IA para un correo debería presentarse como una prosa limpia que un editor pueda pegar directamente en un cliente de correo o CRM sin tener que limpiarla.

Especifique: 'Escriba el cuerpo del correo como texto sin formato. Sin Markdown. Sin asteriscos para la negrita. Sin guiones para las listas. Utilice oraciones numeradas o saltos de línea en lugar de listas.'

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 3-paragraph re-engagement email for inactive newsletter subscribers. '
            'Context: SaaS analytics tool, subscriber inactive for 60 days.\n'
            'Format requirements:\n'
            '- Plain text only — no asterisks, no pound signs, no bullet symbols\n'
            '- Paragraph 1: acknowledge absence, create curiosity\n'
            '- Paragraph 2: one new feature they missed\n'
            '- Paragraph 3: CTA with a direct link placeholder [LINK]\n'
            '- No subject line — body only'
        )
    }]
)
print(response.content[0].text)

Párrafos de prosa clara

Además de evitar los símbolos de Markdown, la «prosa clara» consiste en estructurar las ideas como oraciones fluidas en lugar de fragmentarlas en viñetas.

Una buena prosa:

  • Utiliza palabras de transición para conectar las ideas (sin embargo, además, como resultado)
  • Varía la longitud de las oraciones para aportar ritmo
  • Agrupa las ideas relacionadas en párrafos coherentes
  • Evita comenzar todas las oraciones con un sustantivo

Solicitud: 'Escriba párrafos de prosa clara; sin listas ni encabezados, con oraciones fluidas y palabras de transición.'

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

prose_prompt = (
    'Explain the advantages of using Docker for development environments. '
    'Write in 3 clean prose paragraphs. '
    'Requirements:\n'
    '- No bullet points or numbered lists\n'
    '- No markdown headers\n'
    '- Use transition words between sentences and paragraphs\n'
    '- Vary sentence length — mix short and long\n'
    '- 150 words total maximum'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': prose_prompt}]
)
print(response.choices[0].message.content)

Texto sin formato para salida de voz

Los sistemas de texto a voz leen todo literalmente. Si la salida de la IA se expresará en voz alta:

  • Evite todos los símbolos de Markdown
  • Evite las abreviaturas (es posible que TTS no las desarrolle)
  • Escriba los números completos cuando corresponda
  • Utilice comas para marcar pausas naturales
  • Evite los paréntesis; TTS suele leerlos de forma poco natural
  • Escriba con palabras los caracteres especiales ('@' → 'arroba')
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=200,
    messages=[{
        'role': 'user',
        'content': (
            'Write a 45-second spoken weather briefing for London today. '
            'Conditions: 12 degrees Celsius, light rain, wind 15 km/h from the southwest.\n'
            'Format for voice output:\n'
            '- No markdown symbols of any kind\n'
            '- No parentheses\n'
            '- No abbreviations (write "kilometres per hour" not "km/h")\n'
            '- Natural spoken rhythm — use commas for pause points\n'
            '- Write numbers as words when under ten'
        )
    }]
)
print(response.content[0].text)

Eliminar Markdown de una salida existente

A veces recibe una salida de Markdown de una llamada a la IA y necesita limpiarla para utilizarla en otro contexto. Puede utilizar una segunda llamada a la IA específicamente para eliminarlo:

'Elimine todo el formato Markdown del siguiente texto. Reemplace **negrita** por texto sin formato, elimine los encabezados #, convierta las viñetas en oraciones numeradas y elimine todos los asteriscos y símbolos de almohadilla. Genere únicamente texto limpio y sin formato.'

import openai
import re

client = openai.OpenAI(api_key='sk-your-key-here')

markdown_text = (
    '## Key Benefits\n'
    '- **Faster deployment** with Docker containers\n'
    '- **Consistent environments** across dev and prod\n'
    '- Reduced *configuration drift* between machines\n'
    '### Getting Started\n'
    'Run docker-compose up to start all services.'
)

# Option 1: Ask AI to strip
response = client.chat.completions.create(
    model='gpt-4o',
    max_tokens=150,
    messages=[{
        'role': 'user',
        'content': (
            'Remove all markdown formatting from the text below. '
            'Keep all the information but strip: **, ##, ###, -, *, backticks. '
            'Convert bullet lists to flowing sentences. Output plain text only.\n\n'
            + markdown_text
        )
    }]
)
print('AI-stripped:', response.choices[0].message.content.strip())

# Option 2: Simple regex strip (for code-based pipelines)
import re
clean = re.sub(r'[#*]', '', markdown_text).strip()
print('Regex-stripped:', clean)

Texto sin formato en los mensajes del sistema

Para los asistentes de IA que generan constantemente salidas destinadas a entornos de texto sin formato, establezca la regla de formato una sola vez en el mensaje del sistema en lugar de repetirla en cada turno del usuario.

Este es el enfoque más limpio para aplicaciones de producción cuando conoce de antemano el entorno de renderizado.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# System message enforces plain text for all responses
plain_text_system = (
    'You are a helpful assistant embedded in a mobile push notification system. '
    'All your responses are displayed as plain text in mobile notifications. '
    'ALWAYS follow these formatting rules:\n'
    '- Never use markdown (no **, no #, no -, no backtick, no *, no _)\n'
    '- Never use bullet points or numbered lists\n'
    '- Write in 1-2 complete sentences only\n'
    '- Maximum 120 characters per response\n'
    '- No emojis'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=64,
    system=plain_text_system,
    messages=[
        {'role': 'user', 'content': 'Notify user their order has shipped and will arrive in 2 days.'}
    ]
)
print(response.content[0].text)

Marco para decidir el formato

Utilice este marco de decisión rápido antes de solicitar cualquier formato de salida:

  1. ¿A dónde se dirige la salida? Interfaz web, correo electrónico, terminal, voz o base de datos
  2. ¿Ese entorno renderiza Markdown? Sí → utilice Markdown. No → texto sin formato.
  3. ¿La leerá una persona? Sí → estructúrela para facilitar la lectura rápida. No → optimícela para el análisis sintáctico.
  4. ¿La procesará el código? Sí → JSON o CSV, sin prosa.
  5. ¿Se expresará en voz alta? Sí → texto sin formato adecuado para voz, sin abreviaturas.
def choose_format(environment, human_reads, code_processes, voice_output):
    '''Simple formatting decision tree.'''
    if voice_output:
        return 'PLAIN TEXT — voice safe, spell out numbers and units'
    if code_processes:
        return 'JSON or CSV — machine-parseable, no prose'
    renders_markdown = environment in ['web', 'notion', 'github', 'vscode', 'obsidian']
    if renders_markdown and human_reads:
        return 'MARKDOWN — headers, bold, code blocks, lists'
    return 'PLAIN TEXT — clean prose paragraphs, no markdown symbols'

scenarios = [
    ('web',         True,  False, False),
    ('email',       True,  False, False),
    ('api_pipeline',False, True,  False),
    ('voice_app',   False, False, True),
    ('terminal',    True,  False, False),
]
for env, human, code, voice in scenarios:
    result = choose_format(env, human, code, voice)
    print(f'{env:<15} -> {result}')

Texto sin formato estructurado

El texto sin formato no tiene por qué carecer de estructura. Puede crear una estructura sin Markdown mediante:

  • ETIQUETAS DE SECCIÓN EN MAYÚSCULAS (se muestran igual en cualquier lugar)
  • Saltos de línea entre secciones
  • Oraciones numeradas: '1. Primer punto. 2. Segundo punto.'
  • Rayas para separar: 'Idea clave — verifique siempre antes de actuar.'
  • Sangría uniforme mediante espacios (para la salida del terminal)
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a daily briefing for a developer — 3 sections: TASKS, BLOCKERS, NOTES. '
            'Format: plain text only. '
            'Use ALL CAPS section labels followed by a colon. '
            'Use a line break between sections. '
            'Number each item within a section. '
            'No markdown symbols of any kind. '
            'Use realistic placeholder content.'
        )
    }]
)
print(response.choices[0].message.content)

Detección del formato de salida

En las aplicaciones de producción, puede detectar mediante programación el entorno de salida e insertar automáticamente la instrucción de formato adecuada; así, nunca tendrá que especificarla manualmente en cada prompt.

Este es un patrón habitual en los sistemas de IA multicanal que ofrecen el mismo contenido a consumidores web, móviles y de API.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

def get_format_instruction(channel):
    formats = {
        'web':   'Use markdown formatting: headers, bold, bullet points, code blocks.',
        'email': 'Plain text only. No markdown symbols. Use line breaks between sections.',
        'sms':   'Plain text. Single paragraph. Max 160 characters.',
        'voice': 'Plain text. No symbols. Natural spoken sentences only. Spell out numbers.',
        'api':   'JSON output only. No prose.',
    }
    return formats.get(channel, 'Plain text only.')

def ask_with_channel(question, channel):
    fmt = get_format_instruction(channel)
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=100,
        system=f'Format instruction: {fmt}',
        messages=[{'role': 'user', 'content': question}]
    )
    return response.content[0].text

q = 'What are 3 benefits of regular code reviews?'
for ch in ['web', 'sms', 'voice']:
    print(f'[{ch.upper()}]:')
    print(ask_with_channel(q, ch)[:150])
    print()

Comprobación de conocimientos

Un desarrollador crea un chatbot de IA para atención al cliente que envía las respuestas a un CRM heredado que almacena texto sin formato. La IA sigue generando respuestas con ** para la negrita y - para las viñetas, que aparecen como caracteres sin procesar en el CRM. ¿Cuál es la solución más fiable?

Texto sin formato frente a salida con formato: resumen

La elección del formato adecuado depende del entorno de salida. Reglas principales:

  • Utilice Markdown cuando el entorno lo renderice: interfaces web, Notion, GitHub y documentación
  • Utilice texto sin formato para textos de correo electrónico, SMS, voz, CRM y flujos de API
  • Utilice JSON/CSV cuando el código vaya a procesar la salida
  • Solicite texto sin formato indicando explícitamente qué debe evitarse: sin asteriscos, sin símbolos de almohadilla y sin viñetas
  • Establezca las reglas de formato una sola vez en el mensaje del sistema para que el comportamiento de la aplicación sea uniforme
  • El texto sin formato también puede tener estructura mediante ETIQUETAS EN MAYÚSCULAS, saltos de línea y oraciones numeradas

Preguntas frecuentes

¿La lección «Texto sin formato frente a resultados con formato» es gratis?

Sí — el texto completo de «Texto sin formato frente a resultados con formato» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.

¿Qué aprenderé en «Texto sin formato frente a resultados con formato»?

Cuándo solicitar texto limpio sin formato y cuándo resultados enriquecidos en Markdown. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AI Prompt Engineering?

No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Texto sin formato frente a resultados con formato»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?

Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Solicitar listas y viñetas
  2. Solicitar tablas y datos estructurados
  3. Formato Markdown en prompts
  4. Texto sin formato frente a resultados con formato
← Volver a AI Prompt Engineering