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

# Haystack

> Tracez les pipelines Deepset Haystack avec W&B Weave à l’aide de l’intégration WeaveConnector.

[Haystack](https://haystack.deepset.ai/) est un framework open source pour créer des applications de recherche et basées sur des LLM. Deepset maintient un composant WeaveConnector qui transmet les traces des pipelines Haystack à W\&B Weave afin que vous puissiez inspecter les exécutions des composants, les prompts et les sorties dans l’interface Weave.

Ce guide s’adresse aux développeurs Haystack qui souhaitent ajouter de l’observabilité à leurs pipelines.

Pour obtenir des informations complètes sur l’API et des exemples supplémentaires, consultez ces ressources Deepset :

* Le [WeaveConnector](https://docs.haystack.deepset.ai/docs/weaveconnector) de Haystack.
* La [référence de l’API d’intégration Weave](https://docs.haystack.deepset.ai/reference/integrations-weave) de Haystack.
* L’exemple [Tracer avec W\&B Weave](https://docs.cloud.deepset.ai/docs/use-weights-and-biases) de Haystack utilisant un pipeline RAG.

<div id="prerequisites">
  ## Prérequis
</div>

Avant de commencer, vous devez effectuer les opérations suivantes :

* Définissez `WANDB_API_KEY` dans votre environnement à l’aide de votre [clé API W\&B](https://wandb.ai/settings). Cela authentifie le connecteur auprès de W\&B Weave.
* Définissez `HAYSTACK_CONTENT_TRACING_ENABLED` sur `true` avant d’exécuter un pipeline afin que Haystack émette des données de tracing que le connecteur pourra transférer.

<div id="install">
  ## Installer
</div>

Installez les dépendances requises à l’aide de `pip` :

```bash lines theme={null}
pip install weave-haystack
```

Le package déclare `haystack-ai` et `weave` comme dépendances dans des versions compatibles.

<div id="trace-a-haystack-pipeline-with-weave">
  ## Tracer un pipeline Haystack avec Weave
</div>

L’exemple suivant ajoute le `WeaveConnector` de Haystack à un [`Pipeline`](https://docs.haystack.deepset.ai/docs/pipelines) Haystack et intègre W\&B Weave afin d’assurer le traçage et la surveillance des composants de votre pipeline. Le `pipeline_name` que vous transmettez est utilisé comme nom du projet Weave pour les traces issues de ce pipeline.

Dans votre pipeline Haystack, ne connectez pas `WeaveConnector` à d’autres composants.

```python lines theme={null}
import os

os.environ["HAYSTACK_CONTENT_TRACING_ENABLED"] = "true"

from haystack import Pipeline
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
from haystack_integrations.components.connectors.weave import WeaveConnector

pipe = Pipeline()
pipe.add_component("prompt_builder", ChatPromptBuilder())
pipe.add_component("llm", OpenAIChatGenerator(model="gpt-3.5-turbo"))
pipe.connect("prompt_builder.prompt", "llm.messages")

# pipeline_name devient le nom de votre projet W&B.
connector = WeaveConnector(pipeline_name="haystack_demo")
# Ajoutez le connecteur au pipeline sans le connecter à d'autres composants.
pipe.add_component("weave", connector)

messages = [
    ChatMessage.from_system(
        "Always respond in German even if some input data is in other languages.",
    ),
    ChatMessage.from_user("Tell me about {{location}}"),
]

response = pipe.run(
    data={
        "prompt_builder": {
            "template_variables": {"location": "Berlin"},
            "template": messages,
        },
    },
)

print(response["llm"]["replies"][0])
```

Une fois l’exécution du pipeline terminée, ouvrez votre espace de travail W\&B, sélectionnez le projet portant le nom `pipeline_name`, puis accédez à **Traces** pour consulter la trace terminée.
