Curso de ingeniería de Anthropic Hints - Capítulo 4: Separar los datos de las instrucciones

programas

A menudo, no queremos escribir prompts completos, sino que queremos Una plantilla de solicitud que puede modificarse posteriormente en función de la introducción de datos adicionales antes de enviarla a Claude.. Si lo desea Claude Sería muy útil realizar siempre la misma tarea, pero los datos que utiliza Claude pueden ser diferentes cada vez.

Por suerte, podemos obtener lo mejor de ambos mundos con el Separa el marco fijo de la pregunta de la entrada variable del usuario y, a continuación, sustituye la entrada del usuario en la pregunta antes de enviar la pregunta completa a Claude.Es muy fácil conseguirlo.

A continuación, demostraremos paso a paso cómo escribir plantillas de avisos reemplazables y cómo reemplazar la entrada del usuario.

ejemplo típico

En el primer ejemplo, hemos pedido a Claude que actúe como generador de sonidos de animales. Observe que la instrucción completa enviada a Claude (el tercer recuadro amarillo de la cadena) simplemente sustituye la entrada ("Vaca" en el segundo recuadro en este caso) en la plantilla de instrucción (el primer recuadro). Observe que "Vaca" sustituye a "{{ANIMAL}}" en la tercera casilla amarilla.

Nota: No es necesario dar un nombre especial al marcador de sustitución.En este ejemplo, se utiliza {{ANIMAL}} porque es un requisito de formato para el ejercicio. En este ejemplo, se utiliza {{ANIMAL}} porque es el formato requerido para el ejercicio. Pero, en general, podríamos referirnos a él como "{{CREATURE}}" o "{{A}}" (pero Lo mejor es que los marcadores de posición sean específicos y pertinentes.(Esto hace que las sugerencias sean fáciles de entender y de interpretar para el usuario, incluso si no hay reemplazo). Asegúrese de que, sea cual sea el nombre del marcador de posición de sustitución, utiliza el mismo nombre en la fórmula de sustitución.

Ejemplo:

输入:
提示模板
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。{{ANIMAL}}
+
输入 {{ANIMAL}}
牛
=
替换后的提示
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。牛

输出:
Claude 的回应
哞。

¿Por qué separamos y sustituimos así los insumos? Porque sí.Las plantillas de avisos simplifican las tareas repetitivas. Supongamos que construyes una estructura de avisos que invita a usuarios externos a enviar contenidos (en este caso, animales para los que quieren generar sonidos). Estos usuarios no tienen que escribir o ver el mensaje completo. Sólo tienen que rellenar las variables.

Estamos utilizando una función de hoja de cálculo para la sustitución aquí, pero eso también es una buena práctica de codificación. En nuestro código utilizamos el formato {{dobles llaves}}.

Atención:Las plantillas de sugerencias pueden contener cualquier número de variables.

Cuando se introducen variables de sustitución como ésta, es importante asegurarse de que Claude sabe dónde empieza y termina la variable (separada de la directiva o de la descripción de la tarea). Veamos un ejemplo que no separa las instrucciones de las variables de sustitución.

Ejemplo:

输入:
提示模板
User: Yo Claude. {{EMAIL}} <----- 将这封邮件变得更加礼貌,但不要修改其他内容。
+
输入 {{EMAIL}}
明天早上 6 点到场,因为我是 CEO,我说了算。
=
替换后的提示
User: Yo Claude. 明天早上 6 点到场,因为我是 CEO,我说了算。 <----- 将这封邮件变得更加礼貌,但不要修改其他内容。

输出:
Claude 的回复
亲爱的 Claude,  
  
希望你一切安好。作为 CEO,我想请求你明天早上 6 点到我们的办公室。我知道这可能是一个早起的时间,但我相信这对我们公司的成功是必要的。如果你对此时间有任何疑虑或冲突,请告诉我,我们可以一起找到合适的安排。  
  
感谢你一直以来的奉献和辛勤工作。期待明天见到你。  
  
此致敬礼,  
[你们 CEO 的名字]

Aquí, Claude considera que "Yo Claude" forma parte del correo electrónico y lo reescribe como "Querido Claude". Puedes darte cuenta porque empieza con "Querido Claude" en la reescritura. Es bastante claro para los humanos, especialmente en la plantilla del prompt, donde comienza y termina el email, pero en el prompt de reemplazo, no es tan obvio.

¿Cómo lo solucionamos?Envolver la entrada en etiquetas XML¡! Lo hicimos a continuación, y como puede ver, ya no hay un "Querido Claude" en la salida.

Etiqueta XML son etiquetas con corchetes afilados como ésta. Aparecen en pares y constan de una etiqueta abierta (por ejemplo, ) y una etiqueta cerrada (por ejemplo, ) marcada con un "/". Las etiquetas XML se utilizan para envolver contenido, por ejemplo, contenido.

Atención: Aunque Claude reconoce y maneja una amplia gama de separadores y delimitadores, le recomendamos queUso especial de las etiquetas XML como delimitadores de Claudeporque la formación de Claude presta especial atención a la utilización de etiquetas XML como mecanismo de organización puntual. Además de las llamadas a funciones, elClaude no está entrenado para maximizar su rendimiento apuntando específicamente a ciertas etiquetas XML.Pretendíamos que Claude fuera muy flexible y personalizable.

Ejemplo:

输入:
提示模板
用户:Yo Claude. <email>{{EMAIL}}</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。
+
输入 {{EMAIL}}
早上6点到,因为我是CEO,所以我这么说。
=
替换后的提示
用户:Yo Claude. <email>早上6点到,因为我是CEO,所以我这么说。</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。

输出:
Claude的回复
亲爱的 [您的名字],  

希望这封邮件能给您带来愉快的心情。作为CEO,我希望您能在早上6点到场。我理解这可能是一个很早的时间,但我相信这是我们组织成功的必要条件。请告知我这个时间是否适合您,非常感谢您的配合。  

此致,  
[CEO的名字]

Veamos otro ejemplo de cómo pueden ayudar las etiquetas XML.

En la siguiente sugerencia, Claude malinterpreta tanto la parte de la instrucción como la parte de la entrada de la sugerencia. Debido a problemas de formato, ve incorrectamente "Cada uno es sobre un animal, como conejos" como parte de la lista, que el usuario (la persona que rellena la variable {{SENTENCES}}) probablemente no quiere.

Ejemplo:

输入:
提示模板
用户:以下是一组句子。告诉我列表中的第二个句子。  

- 每个句子都与一种动物有关,比如兔子。  
{{SENTENCES}}
+
输入 {{SENTENCES}}
- 我喜欢奶牛的叫声  
- 这句话是关于蜘蛛的  
- 这句话看起来是关于狗的,但实际上是关于猪的
=
替换后的提示
用户:以下是一组句子。告诉我列表中的第二个句子。  

- 每个句子都与一种动物有关,比如兔子。  
- 我喜欢奶牛的叫声  
- 这句话是关于蜘蛛的  
- 这句话看起来是关于狗的,但实际上是关于猪的

输出:
Claude的回复
列表中的第二个句子是“我喜欢奶牛的叫声”。

Para resolver este problema, simplemente envolvemos la frase introducida por el usuario en etiquetas XML. Esto muestra a Claude dónde empiezan y terminan los datos de entrada, a pesar del engañoso guión que precede a "Cada uno trata de un animal, como los conejos".

Ejemplo:

输入:
Prompt 模板
User: 下面是一组句子。告诉我列表中的第二项。

- 每个句子都与动物有关,比如兔子。  
<sentences>  
{{SENTENCES}}  
</sentences>
+
Input {{SENTENCES}}
- 我喜欢牛的声音  
- 这句话是关于蜘蛛的  
- 这句话看似是关于狗的,但实际上是关于猪的
=
替换后的 Prompt
User: 下面是一组句子。告诉我列表中的第二项。

- 每个句子都与动物有关,比如兔子。  
<sentences>  
- 我喜欢牛的声音  
- 这句话是关于蜘蛛的  
- 这句话看似是关于狗的,但实际上是关于猪的  
</sentences>

输出:
Claude 的回复
列表中的第二项是“这句话是关于蜘蛛的”。

Atención: En la pregunta incorrecta "Todas las frases hablan de animales", debemos incluir un guión para que Claude dé la respuesta incorrecta en el ejemplo que queremos. Esta es una lección importante sobre el diseño de las preguntas:Los detalles importan. Merece la pena dedicarle tiempo.Comprueba que no haya errores ortográficos ni gramaticales. Claude es muy sensible a los patrones (en sus primeras etapas, era una herramienta predictiva de sólo texto sin afinar); es más probable que cometa un error cuando tú cometes un error, se comporta de forma más inteligente cuando pareces inteligente, se comporta de forma estúpida cuando pareces estúpido, etc.

Si estás listo para probar los ejercicios del capítulo, haz clic en los enlaces de abajo. Desplázate hacia abajo si quieres probar alguno de los ejemplos de esta lección.

ejercicio

Ejercicio 4.1 - Temas de Haiku

Escriba un mensaje en el cuadro de plantilla resaltado que acepte una variable llamada "{{TOPIC}}" y produzca un haiku sobre ese tema. Este ejercicio está diseñado para comprobar su comprensión de la estructura de la plantilla de variables.

Ejemplo:

输入:
Prompt 模板
User: 写一首关于 {{TOPIC}} 的俳句。
+
Input {{TOPIC}}
猪
=
替换后的 Prompt
User: 写一首关于猪的俳句。

输出:
Claude 的回复
这是关于猪的俳句:

泥中拱鼻响  
卷尾粉胖咕噜  
猪儿游农场

Ejercicio 4.2 - Problemas de perros con errores ortográficos

Arregla las pistas del cuadro de plantilla resaltado añadiendo etiquetas XML para que Claude dé la respuesta correcta.

Intenta no cambiar nada más del texto. Esta escritura confusa y llena de errores es intencionada y pretende darte una idea de cómo responde Claude a estos errores. Si su pregunta genera una respuesta correcta, la respuesta de Claude se volverá verde.

Atención: Aunque Claude es capaz de analizar hasta cierto punto la mala gramática y las faltas de ortografía, elUna redacción clara, con corrección ortográfica y gramatical, reducirá significativamente el riesgo de que Claude cometa errores y mejorará notablemente la calidad de sus resultados.

Ejemplo:

输入:
Prompt 模板
User: 嗨是我我有个关于狗的问题 jkaerjv <question>{{QUESTION}}</question> jklmvca tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
+
Input {{QUESTION}}
狗能是棕色的吗?
=
替换后的 Prompt
User: 嗨是我我有个关于狗的问题 jkaerjv <question>狗能是棕色的吗?</question> jklmvca tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx

输出:
Claude 的回复
是的,狗可以是棕色的。

❓ Si necesitas una indicación, pulsa el signo más (➕) en el extremo izquierdo de esta línea.

Ejercicio 4.3 - Problemas con perros Parte II

abstenerse deAñada etiquetas XML para fijar las indicaciones en el cuadro de plantilla resaltado. En su lugar, elimine solo una o dos palabras del aviso.

De nuevo, intenta no cambiar nada más en el prompt. Esto demostrará el tipo de lenguaje que Claude es capaz de analizar y comprender. Si tu sugerencia genera la respuesta correcta, la respuesta de Claude se volverá verde.

Ejemplo:

输入:
Prompt 模板
User: 嗨是我我有个关于狗的问题 {{QUESTION}} tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
+
Input {{QUESTION}}
狗能是棕色的吗?
=
替换后的 Prompt
User: 嗨是我我有个关于狗的问题 狗能是棕色的吗? tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx

输出:
Claude 的回复
是的,狗可能有棕色的毛发。棕色是许多犬种常见的毛色。

❓ Si necesitas una indicación, pulsa el signo más (➕) en el extremo izquierdo de esta línea.

© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...