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

# Haystack

> Tracez les pipelines Deepset Haystack avec W&B Weave grâce à l’intégration WeaveConnector.

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

Ce guide s’adresse aux développeurs Haystack qui souhaitent rendre leurs pipelines observables.

Pour obtenir tous les détails de l’API ainsi que d’autres exemples, consultez les ressources Deepset suivantes :

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

<h2 id="prerequisites">
  Prérequis
</h2>

Avant de commencer, effectuez les opérations suivantes :

* Définissez `WANDB_API_KEY` dans votre environnement avec votre [clé API](https://forge.coreweave.com/settings) W\&B. Le connecteur peut ainsi s’authentifier 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 traçage que le connecteur pourra transmettre.

<h2 id="install">
  Installation
</h2>

Installez les dépendances requises avec `pip` :

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

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

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

L’exemple suivant ajoute le `WeaveConnector` de Haystack à un [`Pipeline`](https://docs.haystack.deepset.ai/docs/pipelines) Haystack et l’intègre à W\&B Weave afin de tracer et de surveiller les composants de votre pipeline. Le `pipeline_name` que vous transmettez sert de nom de projet Weave pour les traces issues de ce pipeline.

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

```python lines theme={"system"}
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, mais ne le connectez pas.
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 le pipeline exécuté, ouvrez votre workspace W\&B, sélectionnez le projet portant le nom défini par `pipeline_name`, puis accédez à **Traces** pour consulter la trace complète.
