> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# A/B testing de prompts LLM con feature flags

> Utilice los feature flags de Kameleoon para comparar variaciones de prompts de su aplicación basada en un LLM frente a métricas reales de engagement de los usuarios, sin volver a implementar su aplicación.

El prompt engineering no sigue ninguna fórmula fiable. Reformular un prompt para pedirle a un modelo de lenguaje extenso (LLM) un "resumen detallado y preciso" en lugar de una "descripción breve" cambia la forma en que el modelo responde, pero no tiene forma de saber si ese cambio realmente ayuda a sus usuarios hasta que lo mide frente a un comportamiento real. Los frameworks de evaluación como RAGAS puntúan si su aplicación LLM responde correctamente. No le indican si un cambio de prompt ayuda a los usuarios a lograr aquello para lo que llegaron a su producto.

Feature Experimentation cierra esa brecha. Almacena cada prompt candidato como una variable de feature, reparte el tráfico entre las variaciones y hace seguimiento de la métrica de engagement o de negocio que le interesa. Como el prompt vive en un feature flag en lugar de en su código fuente, puede añadir, editar o revertir una variación desde la plataforma Kameleoon sin volver a implementar su aplicación.

## Cómo funciona

Un feature flag almacena cada prompt como el valor de una variable de feature, con una variación por cada prompt que quiera probar. Cuando un visitante llega a su aplicación, el SDK de Kameleoon le asigna una variación y devuelve el prompt correspondiente, que su código de aplicación envía al LLM. Un objetivo adjunto al feature flag registra una conversión cuando el visitante interactúa con su función basada en un LLM, por ejemplo al hacer una pregunta de seguimiento o al completar una tarea con la ayuda del asistente. Cuando haya reunido suficiente tráfico, compare la tasa de conversión de cada variación para decidir qué prompt funciona mejor.

## Requisitos previos

* Una cuenta de Kameleoon con un proyecto configurado para Feature Experimentation.
* El ID de cliente y el secreto de cliente de su cuenta. Para encontrar estos valores, consulte [Credenciales de API](/es/user-manual/account-and-team-management/users-and-teams/api-credentials).
* Una aplicación Python en la que pueda instalar el SDK de Kameleoon.

## Configurar su experimento de prompts en Kameleoon

Configure el feature flag, las variaciones de prompt y el objetivo de seguimiento en la plataforma Kameleoon antes de tocar su código de aplicación.

### Crear el feature flag

Cree un feature flag para contener sus variaciones de prompt y controlar el despliegue de su experimento.

1. En la aplicación Kameleoon, haga clic en **Features** > **Flags & Experiments** > **New feature flag**.
2. Introduzca un nombre, por ejemplo `LLM prompt test`, y seleccione el proyecto para el flag.
3. En el campo **Description**, indique qué controla el flag, para que otros miembros de su equipo entiendan su propósito.
4. Haga clic en **Validate**.

Para más detalles, consulte [Crear un feature flag](/es/user-manual/experimentation/feature-experimentation/create-and-manage-flags/create-a-feature-flag).

### Almacenar el prompt en una variable de feature

Añada una variable de feature para contener el texto del prompt, de modo que pueda cambiarlo desde la plataforma Kameleoon sin editar su código de aplicación.

1. En la página del flag, en la barra lateral izquierda, haga clic en **Set Up** > **Variables** > **Add Variable**.
2. Establezca el **Type** de la variable en **String**.
3. Introduzca una **Variable Key**, por ejemplo `prompt_template`.
4. Establezca el **Default Value** con el prompt que su aplicación utiliza actualmente. Kameleoon entrega este valor a los visitantes que no forman parte de su experimento.
5. Haga clic en **Save**.

<Frame>
  ![La pantalla de configuración de Variables mostrando una variable de tipo String llamada prompt\_template con un valor predeterminado de ejemplo para el texto del prompt.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/variables.png)
</Frame>

Para más detalles, consulte [Definir variables de feature](/es/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variables).

### Crear una variación por cada prompt

Cree una variación por cada prompt que quiera probar, y establezca la variable `prompt_template` con el texto correspondiente en cada una.

1. En la barra lateral izquierda, haga clic en **Set Up** > **Variations** > **Add variation**.
2. Introduzca un **Name** para la variación, por ejemplo `Detailed summary`.
3. Establezca la variable `prompt_template` con el texto del prompt para esta variación.
4. Haga clic en **Save**.
5. Repita estos pasos para cada prompt adicional que quiera probar.

<Frame>
  ![La pantalla de configuración de Variations mostrando una variación llamada Detailed summary con la variable prompt\_template establecida en un valor de prompt.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/fe-variations.png)
</Frame>

Para más detalles, consulte [Definir variaciones de feature](/es/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variations).

### Adjuntar un objetivo para medir el engagement

Adjunte un objetivo al feature flag para que Kameleoon pueda medir qué variación de prompt genera más engagement. Como Kameleoon es una plataforma unificada, puede adjuntar cualquier objetivo que ya exista en su organización, como un objetivo de transacción definido por otro equipo, o crear un objetivo específico para su función basada en un LLM.

1. En la página del flag, en el menú **Set Up**, haga clic en **Goals** > **Add goal**.
2. Seleccione un objetivo existente, o haga clic en **Create a new goal** para definir uno, como un objetivo personalizado que se active cuando un visitante interactúe con su función basada en un LLM.
3. Haga clic en **Save**.

<Frame>
  ![La pantalla de configuración de Goals mostrando un objetivo adjunto al feature flag, con opciones para añadir un objetivo existente o crear uno nuevo.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/fe-goals.png)
</Frame>

Para más detalles sobre los tipos de objetivos, incluido cómo activar un objetivo personalizado desde su backend, consulte [Crear un objetivo](/es/user-manual/assets/goals/create-a-goal#objetivo-personalizado).

### Desplegar el experimento

Cree una regla de experimento que reparta el tráfico entre sus variaciones de prompt y, después, active el entorno para empezar a recopilar datos.

1. En el **Rollout Planner**, seleccione el entorno que quiera segmentar, por ejemplo **Production**.
2. Haga clic en **Add a rule** > **Experiment**.
3. En **Variations to serve**, añada cada variación de prompt y establezca su porcentaje de exposición. Por ejemplo, reparta el tráfico de manera uniforme entre dos variaciones al 50 % cada una.
4. Establezca el targeting de la regla para incluir a los visitantes que quiera probar, por ejemplo todos los visitantes que lleguen a la aplicación.
5. Active el interruptor **ON/OFF** del entorno en **ON**.
6. Haga clic en **Save**.

<Frame>
  ![El Rollout Planner del entorno Production mostrando una regla de experimento que segmenta a todos los visitantes y reparte el tráfico 50/50 entre dos variaciones.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/environments.png)
</Frame>

Para más detalles, consulte [Crear feature experiments](/es/user-manual/experimentation/feature-experimentation/using-the-rollout-planner/optimizations-and-scheduling/create-feature-experiments).

Una vez que guarde la regla, Kameleoon empieza a asignar visitantes a una variación y a servir el prompt correspondiente. Para cambiar un prompt o añadir una variación más adelante, edítelo directamente en la plataforma Kameleoon. No necesita volver a implementar su aplicación para aplicar estos cambios.

## Recuperar el prompt en su aplicación

Instale el SDK de Python de Kameleoon, después recupere el prompt asignado al visitante y haga seguimiento de una conversión cuando el visitante interactúe con su función basada en un LLM. El mismo patrón se aplica a cualquier [SDK de Kameleoon del lado del servidor](../get-started/overview#sdks-del-lado-del-servidor), incluidos Node.js, Java y Go.

1. Instale el SDK como dependencia:

   ```bash theme={null}
   pip install kameleoon-client-python
   ```

2. Inicialice el cliente con su site code y sus credenciales:

   ```python theme={null}
   from kameleoon import KameleoonClient, KameleoonClientConfig, KameleoonClientFactory

   SITE_CODE = "a8st4f59bj"
   FEATURE_KEY = "llm_prompt_test"
   GOAL_ID = 12345  # Sustitúyalo por el ID del objetivo que adjuntó al flag

   configuration = KameleoonClientConfig(
       client_id="your-client-id",
       client_secret="your-client-secret",
   )
   kameleoon_client = KameleoonClientFactory.create(SITE_CODE, configuration)
   await kameleoon_client.wait_init_async()
   ```

3. Recupere el prompt asignado antes de llamar a su LLM, y haga seguimiento de una conversión cuando el visitante interactúe con la función basada en un LLM:

   ```python theme={null}
   def get_prompt_for_visitor(visitor_code: str) -> str:
       variation = kameleoon_client.get_variation(visitor_code, FEATURE_KEY)
       return variation.variables["prompt_template"].value


   def track_llm_interaction(visitor_code: str) -> None:
       kameleoon_client.track_conversion(visitor_code, GOAL_ID)
   ```

   Llame a `get_prompt_for_visitor()` con el `visitor_code` del visitante antes de enviar una solicitud a su LLM, y utilice el valor devuelto como prompt. Llame a `track_llm_interaction()` cuando el visitante interactúe con la función basada en un LLM, por ejemplo al enviar una pregunta o al recibir una respuesta.

<Note>
  Utilice [`get_visitor_code()`](../../sdks/web-sdks/python-sdk#get_visitor_code) para asignar un ID único a cada visitante, y [`set_legal_consent()`](../../sdks/web-sdks/python-sdk#set_legal_consent) si su aplicación requiere el consentimiento del visitante antes de hacer seguimiento de datos. Para la referencia completa de inicialización y configuración del cliente, consulte la [guía del desarrollador del SDK de Python](../../sdks/web-sdks/python-sdk#guía-del-desarrollador).
</Note>

## Supervisar e iterar

Abra la página de resultados del feature flag para comparar la tasa de conversión de cada variación de prompt frente al objetivo adjunto. Kameleoon hace seguimiento de las exposiciones y las conversiones automáticamente en cuanto su aplicación llama a `get_variation()` y `track_conversion()`, por lo que no necesita instrumentación adicional.

Para más detalles, consulte [Ver los resultados generales de su feature flag](/es/user-manual/experiment-analytics/analyze-results/feature-flag-results/analyze-a-feature-flags-overall-results).

## Próximos pasos

* Lea la [referencia del SDK de Python](../../sdks/web-sdks/python-sdk) para conocer opciones avanzadas como el custom data, la experimentación cross-device y las condiciones de targeting.
* Adjunte [criterios de segmentación precisos](../targeting-and-segmentation/native-segmentation) para segmentar el experimento hacia una audiencia específica.
* Explore las [variables de feature](/es/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variables) para variabilizar otras partes de su función basada en un LLM, como los parámetros del modelo o los ajustes de recuperación.
