> ## 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-Tests für LLM-Prompts mit Feature Flags

> Verwenden Sie Kameleoon Feature Flags, um Prompt-Variationen für Ihre LLM-basierte Anwendung anhand echter Nutzerengagement-Metriken zu vergleichen, ohne Ihre Anwendung neu bereitzustellen.

Prompt Engineering folgt keiner verlässlichen Formel. Wenn Sie einen Prompt so umformulieren, dass er ein großes Sprachmodell (LLM) um eine „detaillierte und präzise Zusammenfassung“ statt um einen „knappen Überblick“ bittet, ändert sich, wie das Modell antwortet, aber Sie haben keine Möglichkeit zu wissen, ob diese Änderung Ihren Nutzern tatsächlich hilft, bevor Sie sie am realen Verhalten messen. Evaluierungs-Frameworks wie RAGAS bewerten, ob Ihre LLM-Anwendung korrekt antwortet. Sie sagen Ihnen nicht, ob eine Prompt-Änderung den Nutzern hilft, das zu erreichen, weswegen sie Ihr Produkt überhaupt nutzen.

Feature Experimentation schließt diese Lücke. Sie speichern jeden Prompt-Kandidaten als Feature-Variable, verteilen den Traffic auf die Variationen und verfolgen die Engagement- oder Geschäftsmetrik, die Ihnen wichtig ist. Da der Prompt in einem Feature Flag statt in Ihrem Quellcode liegt, können Sie eine Variation über die Kameleoon-Plattform hinzufügen, bearbeiten oder zurücksetzen, ohne Ihre Anwendung neu bereitzustellen.

## Funktionsweise

Ein Feature Flag speichert jeden Prompt als Wert einer Feature-Variable, mit einer Variation pro Prompt, den Sie testen möchten. Wenn ein Besucher Ihre Anwendung erreicht, weist das Kameleoon SDK dem Besucher eine Variation zu und gibt den entsprechenden Prompt zurück, den Ihr Anwendungscode an das LLM sendet. Ein an das Feature Flag angehängtes Ziel erfasst eine Conversion, wenn der Besucher mit Ihrer LLM-basierten Funktion interagiert, zum Beispiel durch eine Anschlussfrage oder durch das Abschließen einer Aufgabe mithilfe des Assistenten. Sobald Sie genügend Traffic gesammelt haben, vergleichen Sie die Conversion-Rate jeder Variation, um zu entscheiden, welcher Prompt am besten performt.

## Voraussetzungen

* Ein Kameleoon-Konto mit einem für Feature Experimentation eingerichteten Projekt.
* Die Client-ID und das Client-Secret Ihres Kontos. Diese Werte finden Sie unter [API-Anmeldeinformationen](/de/user-manual/account-and-team-management/users-and-teams/api-credentials).
* Eine Python-Anwendung, in der Sie das Kameleoon SDK installieren können.

## Ihr Prompt-Experiment in Kameleoon einrichten

Konfigurieren Sie das Feature Flag, die Prompt-Variationen und das Tracking-Ziel in der Kameleoon-Plattform, bevor Sie Ihren Anwendungscode anfassen.

### Das Feature Flag erstellen

Erstellen Sie ein Feature Flag, um Ihre Prompt-Variationen aufzunehmen und die Bereitstellung Ihres Experiments zu steuern.

1. Klicken Sie in der Kameleoon-App auf **Features** > **Flags & Experiments** > **New feature flag**.
2. Geben Sie einen Namen ein, zum Beispiel `LLM prompt test`, und wählen Sie das Projekt für das Flag aus.
3. Notieren Sie im Feld **Description**, wofür das Flag steht, damit andere Teammitglieder seinen Zweck verstehen.
4. Klicken Sie auf **Validate**.

Weitere Details finden Sie unter [Ein Feature Flag erstellen](/de/user-manual/experimentation/feature-experimentation/create-and-manage-flags/create-a-feature-flag).

### Den Prompt in einer Feature-Variable speichern

Fügen Sie eine Feature-Variable hinzu, um den Prompt-Text zu speichern, sodass Sie ihn über die Kameleoon-Plattform ändern können, ohne Ihren Anwendungscode zu bearbeiten.

1. Klicken Sie auf der Seite des Flags in der linken Seitenleiste auf **Set Up** > **Variables** > **Add Variable**.
2. Setzen Sie den **Type** der Variable auf **String**.
3. Geben Sie einen **Variable Key** ein, zum Beispiel `prompt_template`.
4. Setzen Sie die **Default Value** auf den Prompt, den Ihre Anwendung derzeit verwendet. Kameleoon liefert diesen Wert an Besucher aus, die nicht Teil Ihres Experiments sind.
5. Klicken Sie auf **Save**.

<Frame>
  ![Der Variables-Einrichtungsbildschirm zeigt eine String-Variable namens prompt\_template mit einem Platzhalter für den Standardwert des Prompt-Texts.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/variables.png)
</Frame>

Weitere Details finden Sie unter [Feature-Variablen definieren](/de/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variables).

### Für jeden Prompt eine Variation erstellen

Erstellen Sie eine Variation pro Prompt, den Sie testen möchten, und setzen Sie die Variable `prompt_template` in jeder auf den entsprechenden Text.

1. Klicken Sie in der linken Seitenleiste auf **Set Up** > **Variations** > **Add variation**.
2. Geben Sie einen **Name** für die Variation ein, zum Beispiel `Detailed summary`.
3. Setzen Sie die Variable `prompt_template` für diese Variation auf den Prompt-Text.
4. Klicken Sie auf **Save**.
5. Wiederholen Sie diese Schritte für jeden weiteren Prompt, den Sie testen möchten.

<Frame>
  ![Der Variations-Einrichtungsbildschirm zeigt eine Variation namens Detailed summary, bei der die Variable prompt\_template auf einen Prompt-Wert gesetzt ist.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/fe-variations.png)
</Frame>

Weitere Details finden Sie unter [Feature-Variationen definieren](/de/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variations).

### Ein Ziel zum Messen des Engagements anhängen

Hängen Sie ein Ziel an das Feature Flag an, damit Kameleoon messen kann, welche Prompt-Variation mehr Engagement erzeugt. Da Kameleoon eine einheitliche Plattform ist, können Sie jedes bereits in Ihrer Organisation vorhandene Ziel anhängen, etwa ein von einem anderen Team definiertes Transaktionsziel, oder ein Ziel erstellen, das speziell auf Ihre LLM-basierte Funktion zugeschnitten ist.

1. Klicken Sie auf der Seite des Flags im Menü **Set Up** auf **Goals** > **Add goal**.
2. Wählen Sie ein vorhandenes Ziel aus, oder klicken Sie auf **Create a new goal**, um eines zu definieren, zum Beispiel ein benutzerdefiniertes Ziel, das ausgelöst wird, wenn ein Besucher mit Ihrer LLM-basierten Funktion interagiert.
3. Klicken Sie auf **Save**.

<Frame>
  ![Der Goals-Einrichtungsbildschirm zeigt ein an das Feature Flag angehängtes Ziel, mit Optionen zum Hinzufügen eines vorhandenen Ziels oder zum Erstellen eines neuen.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/fe-goals.png)
</Frame>

Weitere Details zu Zieltypen, einschließlich wie Sie ein benutzerdefiniertes Ziel von Ihrem Backend aus auslösen, finden Sie unter [Ein Ziel erstellen](/de/user-manual/assets/goals/create-a-goal#benutzerdefiniertes-ziel).

### Das Experiment ausrollen

Erstellen Sie eine Experiment-Regel, die den Traffic auf Ihre Prompt-Variationen verteilt, und aktivieren Sie dann die Umgebung, um mit der Datenerfassung zu beginnen.

1. Wählen Sie im **Rollout Planner** die Umgebung aus, die Sie anvisieren möchten, zum Beispiel **Production**.
2. Klicken Sie auf **Add a rule** > **Experiment**.
3. Fügen Sie unter **Variations to serve** jede Prompt-Variation hinzu und legen Sie deren Expositionsprozentsatz fest. Verteilen Sie den Traffic beispielsweise gleichmäßig auf zwei Variationen mit je 50 %.
4. Legen Sie das Targeting der Regel so fest, dass es die Besucher einschließt, die Sie testen möchten, zum Beispiel alle Besucher, die die Anwendung erreichen.
5. Schalten Sie den **ON/OFF**-Schalter der Umgebung auf **ON**.
6. Klicken Sie auf **Save**.

<Frame>
  ![Der Rollout Planner für die Umgebung Production zeigt eine Experiment-Regel, die alle Besucher anvisiert und den Traffic 50/50 auf zwei Variationen verteilt.](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/developers/images/feature-experimentation/integrations/llm/environments.png)
</Frame>

Weitere Details finden Sie unter [Feature-Experimente erstellen](/de/user-manual/experimentation/feature-experimentation/using-the-rollout-planner/optimizations-and-scheduling/create-feature-experiments).

Sobald Sie die Regel gespeichert haben, beginnt Kameleoon damit, Besuchern eine Variation zuzuweisen und den entsprechenden Prompt auszuliefern. Um einen Prompt später zu ändern oder eine Variation hinzuzufügen, bearbeiten Sie ihn direkt in der Kameleoon-Plattform. Sie müssen Ihre Anwendung nicht neu bereitstellen, um diese Änderungen vorzunehmen.

## Den Prompt in Ihrer Anwendung abrufen

Installieren Sie das Kameleoon Python SDK, rufen Sie dann den dem Besucher zugewiesenen Prompt ab und verfolgen Sie eine Conversion, wenn der Besucher mit Ihrer LLM-basierten Funktion interagiert. Das gleiche Muster gilt für jedes [serverseitige Kameleoon SDK](../get-started/overview#serverseitige-sdks), einschließlich Node.js, Java und Go.

1. Installieren Sie das SDK als Abhängigkeit:

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

2. Initialisieren Sie den Client mit Ihrem Site Code und Ihren Zugangsdaten:

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

   SITE_CODE = "a8st4f59bj"
   FEATURE_KEY = "llm_prompt_test"
   GOAL_ID = 12345  # Ersetzen Sie dies durch die ID des Ziels, das Sie dem Flag zugeordnet haben

   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. Rufen Sie den zugewiesenen Prompt ab, bevor Sie Ihr LLM aufrufen, und verfolgen Sie eine Conversion, wenn der Besucher mit der LLM-basierten Funktion interagiert:

   ```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)
   ```

   Rufen Sie `get_prompt_for_visitor()` mit dem `visitor_code` des Besuchers auf, bevor Sie eine Anfrage an Ihr LLM senden, und verwenden Sie den zurückgegebenen Wert als Prompt. Rufen Sie `track_llm_interaction()` auf, wenn der Besucher mit der LLM-basierten Funktion interagiert, zum Beispiel durch das Absenden einer Frage oder den Erhalt einer Antwort.

<Note>
  Verwenden Sie [`get_visitor_code()`](../../sdks/web-sdks/python-sdk#get_visitor_code), um jedem Besucher eine eindeutige ID zuzuweisen, und [`set_legal_consent()`](../../sdks/web-sdks/python-sdk#set_legal_consent), falls Ihre Anwendung die Einwilligung des Besuchers vor dem Tracking von Daten benötigt. Die vollständige Referenz zur Client-Initialisierung und -Konfiguration finden Sie im [Entwicklerhandbuch des Python SDK](../../sdks/web-sdks/python-sdk#entwicklerhandbuch).
</Note>

## Überwachen und iterieren

Öffnen Sie die Ergebnisseite des Feature Flags, um die Conversion-Rate jeder Prompt-Variation mit dem angehängten Ziel zu vergleichen. Kameleoon verfolgt Expositionen und Conversions automatisch, sobald Ihre Anwendung `get_variation()` und `track_conversion()` aufruft. Sie benötigen daher keine zusätzliche Instrumentierung.

Weitere Details finden Sie unter [Die Gesamtergebnisse eines Feature Flags anzeigen](/de/user-manual/experiment-analytics/analyze-results/feature-flag-results/analyze-a-feature-flags-overall-results).

## Nächste Schritte

* Lesen Sie die [Python SDK-Referenz](../../sdks/web-sdks/python-sdk) für erweiterte Optionen wie Custom Data, geräteübergreifende Experimente und Targeting-Bedingungen.
* Hängen Sie [präzise Segmentierungskriterien](../targeting-and-segmentation/native-segmentation) an, um das Experiment auf eine bestimmte Zielgruppe auszurichten.
* Erkunden Sie [Feature-Variablen](/de/user-manual/experimentation/feature-experimentation/configure-your-feature-flags/define-feature-variables), um weitere Teile Ihrer LLM-basierten Funktion zu variabilisieren, etwa Modellparameter oder Retrieval-Einstellungen.
