For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme

Formato de las citas

Permite que los modelos generen citas confiables.

Las citas confiables ayudan a los lectores a confiar en las respuestas y a verificar su exactitud. Esta guía explica cómo preparar material que se pueda citar y cómo indicarle al modelo que dé formato a las citas con patrones que los modelos de OpenAI ya conocen.

Descripción general

Un sistema de citas consta de varias partes. Tú decides qué se puede citar, presentas ese material con claridad, le indicas al modelo cómo citarlo y validas el resultado antes de mostrárselo al usuario.

Esta guía abarca cinco elementos que intervienen directamente en la interacción con el modelo:

  1. Unidades citables: define qué puede citar el modelo.
  2. Representación del material: presenta el material de origen en un formato claro y estructurado.
  3. Formato de las citas: especifica el formato exacto que debe usar el modelo para las citas.
  4. Instrucciones del prompt: indícale al modelo cuándo citar y cómo hacerlo correctamente.
  5. Análisis de las citas: extrae las citas de la respuesta del modelo para usarlas en etapas posteriores.

Elegir las unidades citables

Antes de escribir los prompts, define con claridad qué puede citar el modelo. Estas son algunas opciones habituales:

Unidad citable Cuándo conviene usarla Desventaja Ejemplo
Documento Solo necesitas indicar de qué documento proviene la respuesta. Ofrece poca precisión. Cita todo el manual del empleado si solo necesitas indicar qué documento respalda la afirmación.
Bloque o fragmento Buscas un equilibrio entre simplicidad y precisión. No identifica las líneas exactas. Cita el párrafo específico del contrato o el fragmento recuperado que contiene la cláusula.
Rango de líneas Necesitas mostrar el texto exacto que respalda la afirmación. Al modelo le cuesta más citar con esta precisión. Cita las líneas L42-L47 cuando el usuario necesite verificar el pasaje exacto.

Una buena unidad citable debe cumplir estos criterios:

  • Identificación estable: una misma fuente debe conservar el mismo ID en cada ejecución.
  • Facilidad de revisión: cualquier persona debe poder leerla y entender el contexto que la rodea.
  • Tamaño adecuado: debe ser lo bastante extensa para que se entienda y lo bastante breve para que la cita sea precisa.

En la mayoría de los sistemas, citar por bloque es la mejor opción predeterminada. Para el modelo suele ser más fácil que citar por línea, y para los usuarios resulta más útil que citar el documento completo.

Representar el material citable

El modelo no puede citar material que no se le haya presentado con claridad. Tanto si el material proviene de una herramienta como si lo insertas directamente, asegúrate de que incluya lo siguiente:

  • ID de fuente estable: un identificador que se mantenga constante, como file1 o block1.
  • Texto legible: material de origen con un formato claro.
  • Metadatos (opcionales): URL, marcas de tiempo, títulos y otros datos de contexto similares.

ID de fuente y localizadores: un ID de fuente es un identificador estable que genera el modelo, como block1. Un localizador indica el fragmento exacto que la interfaz resalta, como lines L8-L13 o Paragraph 21. Por lo general, el modelo debe devolver el ID de fuente y tu sistema debe resolver o mostrar el localizador. Combinar ambos demasiado pronto suele provocar más errores de formato.

Definir el formato de las citas

Define el formato de las citas que generará el modelo. Usa un formato explícito y uniforme que el modelo pueda reproducir de manera confiable.

A continuación se muestran el formato y los marcadores de cita que recomendamos. Recomendamos especialmente estos marcadores porque son muy similares a los que se usaron para entrenar nuestros modelos. Si eliges otros valores para los marcadores, procura que el formato general de las citas sea lo más parecido posible al recomendado.

Elemento Función Valor recomendado
CITATION_START Abre el marcador de cita. \ue200
Familia de citas Identifica el tipo de cita. Usa cite para todas las fuentes admitidas. cite
CITATION_DELIMITER Separa los campos dentro del marcador. \ue202
ID de fuente Identifica la unidad citada. turn# indica el número de turno. item# identifica el archivo, el bloque o la URL que se cita. turn0file1, turn0block1, turn0url1
Localizador (opcional) Delimita el fragmento exacto que se cita. L8-L13
CITATION_STOP Cierra el marcador de cita. \ue201

En las llamadas a herramientas, turnN aumenta una vez por llamada, independientemente de cuántos resultados devuelva. Dentro de una misma llamada, las fuentes se distinguen por sufijos como file0, file1, etc. En un sistema que genera una sola respuesta, todas las referencias tendrán la forma turn0… solo si el modelo hace exactamente una llamada a una herramienta antes de responder. Si hace varias llamadas, puedes ver referencias como turn0fileX, turn1fileX, etc.

Plantilla

{CITATION_START}<citation_family>{CITATION_DELIMITER}<source_id>{CITATION_DELIMITER}<locator>{CITATION_STOP}

Ejemplo

{CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_DELIMITER}L8-L13{CITATION_STOP}

Si tu sistema no usa localizadores, omite ese campo:

{CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_STOP}

Redactar instrucciones eficaces para las citas

Para lograr la mayor precisión posible, usa patrones de cita que el modelo conozca. Los formatos personalizados o poco familiares exigen más esfuerzo al modelo, lo que puede provocar errores en las citas, sobre todo en estos casos:

  • Cuando el esfuerzo de razonamiento es bajo, el modelo dispone de menos recursos para corregir errores de formato.
  • En tareas de alta complejidad, el modelo dedica la mayor parte de su presupuesto de razonamiento a resolver la tarea en sí y le queda poco margen para corregir la sintaxis de las citas.

El formato de cita que recomendamos a continuación se asemeja a los patrones que el modelo ya conoce. Puedes usarlo tal como está o adaptarlo a tu sistema.

Si quieres redactar tu propio prompt, especifica lo siguiente:

  • La sintaxis exacta de los marcadores.
  • Dónde colocar las citas.
  • Cuándo citar y cuándo omitir las citas.
  • Cómo citar varias fuentes que respaldan una afirmación.
  • Qué formatos están prohibidos.
  • Qué hacer si no hay material que respalde una afirmación.

Analizar las citas

Una vez que el modelo genera las citas, debes extraerlas del texto de la respuesta para poder resolver los ID de fuente, mostrar enlaces o quitar los marcadores sin procesar antes de mostrarles la respuesta a los usuarios.

Puedes copiar directamente en tu aplicación la función auxiliar que se muestra a continuación. Analiza citas de una o varias fuentes y localizadores opcionales de rangos de líneas. Al hacerlo, conserva las posiciones de los caracteres en el texto original.

Este ejemplo solo admite localizadores de líneas. Si tu sistema usa otro formato de localizador, adapta el ejemplo.

Si tus ID de fuente tienen otro formato, actualiza SOURCE_ID_RE para que coincida con el de tu sistema.

Ejemplos

Los siguientes ejemplos muestran dos patrones habituales de cita:

  • Contexto recuperado con una herramienta: la herramienta devuelve material citable y sus ID.
  • Contexto insertado: proporcionas los bloques citables directamente en el prompt.

Dar formato a las citas de contexto recuperado con una herramienta

Usa este patrón cuando el modelo recupere contexto mediante una herramienta y lo cite en su respuesta.

Definir las unidades citables

Elige las unidades citables según el grado de precisión que requiera tu caso de uso. Los siguientes ejemplos muestran algunos resultados que podría devolver una herramienta.

Estos ejemplos ilustran algunos formatos de salida recomendados. La herramienta puede variar según la aplicación. Lo más importante es que presente los resultados con una estructura clara y estable, como en estos ejemplos.

Redactar las instrucciones del prompt

## Citas

La herramienta “tool_1” devuelve los resultados. Cada mensaje de `tool_1` se denomina “fuente”. Su ID de referencia corresponde a la primera coincidencia con el patrón `turn\\d+file\\d+` (por ejemplo, `turn0file0` o `turn2file1`). En este ejemplo, la cadena `turn0file0` sería el ID de referencia de la fuente.

Las citas hacen referencia a las fuentes de `tool_1`. Puedes citar una o varias fuentes.

Para citar una sola fuente, usa este formato:
{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_STOP}

Si se admiten citas por línea, usa este formato para citar un rango de líneas específico:
{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_DELIMITER}L\d+-L\d+{CITATION_STOP}

Para citar varias fuentes, genera un marcador de cita distinto para cada fuente que respalde la afirmación.

NO escribas literalmente en el texto de la respuesta ID de referencia como `turn0file0` sin colocarlos entre los delimitadores de {CITATION_START}...{CITATION_STOP}.

- Coloca las citas al final de la oración que respaldan. Si la oración es larga y contiene varias afirmaciones respaldadas por fuentes, puedes colocar cada cita junto a la afirmación correspondiente.
- Coloca las citas después del signo de puntuación.
- Cita solo las fuentes recuperadas que respalden directamente el texto citado.
- Nunca inventes ID de fuente, rangos de líneas ni localizadores de bloque que la herramienta no haya devuelto.
- Si varias fuentes recuperadas aportan respaldo sustancial a una afirmación, cítalas todas.
- Si las fuentes recuperadas discrepan, cita las fuentes en cuestión y describe con precisión en qué discrepan.

Ejemplo de salida:

The on-call handoff process is documented in the weekly support sync notes. \ue200cite\ue202turn0file0\ue202L8-L13\ue201

Dar formato a las citas de contexto insertado

Usa este patrón cuando recuperes o prepares el contexto de antemano y lo insertes directamente en el prompt.

Definir las unidades citables

Una práctica habitual al insertar contexto es delimitar los fragmentos de las fuentes con etiquetas explícitas que tengan ID de referencia estables.

<BLOCK id="block1">
The service agreement states that termination for convenience requires thirty (30) days’ written notice, unless superseded by a customer-specific addendum.
In practice, renewal terms auto-extend for successive one-year periods when no written non-renewal notice is received before the deadline.
Appendix B further clarifies that pricing exceptions must be approved in writing by both Finance and the account owner.
</BLOCK>

<BLOCK id="block2">
Syllabus
</BLOCK>
...

Así, el modelo puede identificar con claridad la unidad citable y hacer referencia a ella con facilidad.

Redactar las instrucciones del prompt

## Citas

El prompt incluye directamente el contexto de apoyo en forma de unidades citables. Cada unidad se identifica por el valor de su atributo `id` en la primera aparición de una etiqueta como `<BLOCK id="block5"> ... </BLOCK>`. En este ejemplo, `block5` sería el ID de referencia de la fuente.

Como este patrón no requiere llamadas a herramientas, no hay un contador de turnos de herramienta que incrementar. Por eso, no necesitas usar el prefijo `turn#` en el marcador de cita. Puedes conservar ID con el formato `turn0block5` si el resto de tu sistema lo usa, o usar ID simples como `block5`, tal como se muestra aquí. El ID que incluyas en el marcador de cita siempre debe coincidir exactamente con el ID del contexto insertado.

Las citas hacen referencia a las unidades citables proporcionadas. Puedes citar una o varias fuentes.

Para citar una sola fuente, usa este formato:
{CITATION_START}cite{CITATION_DELIMITER}<block_id>{CITATION_STOP}

Por ejemplo:
{CITATION_START}cite{CITATION_DELIMITER}block5{CITATION_STOP}

Para citar varias fuentes, genera un marcador de cita distinto para cada bloque que respalde la afirmación.

NO escribas literalmente los ID de bloque en el texto de la respuesta sin colocarlos entre los delimitadores de {CITATION_START}...{CITATION_STOP}.

- Coloca las citas al final de la oración que respaldan. Si la oración es larga y contiene varias afirmaciones respaldadas por fuentes, puedes colocar cada cita junto a la afirmación correspondiente.
- Coloca las citas después del signo de puntuación.
- Cita solo los bloques que aparezcan en el contexto proporcionado.
- Nunca inventes ID de bloque.
- Nunca cites conocimientos ni autoridades ajenos al contexto proporcionado.
- Si varios bloques aportan respaldo sustancial a una afirmación, cítalos todos.
- Si los bloques proporcionados se contradicen, cita los bloques en cuestión y describe con precisión la contradicción.

Ejemplo de salida:

The Court held that the District Court lacked personal jurisdiction over the petitioner. \ue200cite\ue202block5\ue201

Nota: las herramientas alojadas por OpenAI, como la búsqueda web, incluyen automáticamente las citas en el texto. Si prefieres usar herramientas alojadas, consulta la descripción general de las herramientas, la guía de búsqueda web y la guía de búsqueda de archivos.