> ## 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.

# Cohere

> Utilisez Weave pour suivre et consigner automatiquement les appels LLM effectués via la bibliothèque Python Cohere

<a target="_blank" href="https://colab.research.google.com/github/wandb/examples/blob/master/weave/docs/quickstart_cohere.ipynb" aria-label="Ouvrir dans Google Colab">
  <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Ouvrir dans Colab" />
</a>

Une fois `weave.init()` appelé, Weave suit et consigne automatiquement les appels LLM effectués via la [bibliothèque Python Cohere](https://github.com/cohere-ai/cohere-python).

<h2 id="traces">
  Traces
</h2>

Il est important de stocker les traces des applications LLM dans une base de données centralisée, aussi bien pendant le développement qu’en production. Ces traces vous servent à déboguer votre application et constituent un jeu de données qui vous aide à l’améliorer.

Weave capture automatiquement les traces de `cohere-python`. Utilisez la bibliothèque comme d’habitude, en commençant par appeler `weave.init()` :

```python lines {8} theme={"system"}
import cohere
import os
import weave

# Utilisez la bibliothèque Cohere comme d’habitude
co = cohere.Client(api_key=os.environ["COHERE_API_KEY"])

weave.init("cohere_project")

response = co.chat(
    message="How is the weather in Boston?",
    # effectue une recherche web avant de répondre à la question. Vous pouvez aussi utiliser votre propre connecteur personnalisé.
    connectors=[{"id": "web-search"}],
)
print(response.text)
```

Si vous ne spécifiez pas d'équipe CoreWeave Forge lorsque vous appelez `weave.init()`, Weave utilise votre entity par défaut. Pour trouver ou modifier votre entity par défaut, reportez-vous à la section [Paramètres utilisateur](/fr/products/wandb/platform/app/settings-page/user-settings#default-team) de la documentation Weights & Biases Models.

Les modèles Cohere prennent en charge les [connecteurs](https://docs.cohere.com/docs/overview-rag-connectors#using-connectors-to-create-grounded-generations), qui vous permettent d'envoyer des requêtes à d'autres API côté point de terminaison. La réponse contient alors le texte généré, accompagné d'éléments de citation qui renvoient aux documents retournés par le connecteur.

[<img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/cohere_trace.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=a1d4f7186c61a76c92e1ad2b4791f715" alt="cohere_trace.png" width="2156" height="1174" data-path="products/wandb/weave/_media/cohere_trace.png" />](https://forge.coreweave.com/wandb/capecape/cohere_dev/weave/calls)

<Note>
  Weave patche les méthodes Cohere `Client.chat()`, `AsyncClient.chat()`, `Client.chat_stream()` et `AsyncClient.chat_stream()` afin de suivre vos appels LLM.
</Note>

<h2 id="wrap-with-your-own-ops">
  Encapsuler avec vos propres ops
</h2>

Les ops Weave rendent les résultats *reproductibles* en gérant automatiquement les versions du code au fil de vos expériences, tout en capturant leurs entrées et leurs sorties. Créez une fonction décorée avec [`@weave.op()`](/fr/products/wandb/weave/guides/tracking/ops) qui appelle les méthodes de chat de Cohere, et Weave assure le suivi des entrées et des sorties à votre place. Voici un exemple :

```python lines {9} theme={"system"}
import cohere
import os
import weave

co = cohere.Client(api_key=os.environ["COHERE_API_KEY"])

weave.init("cohere_project")

@weave.op()
def weather(location: str, model: str) -> str:
    response = co.chat(
        model=model,
        message=f"How is the weather in {location}?",
        # effectue une recherche web avant de répondre à la question. Vous pouvez également utiliser votre propre connecteur personnalisé.
        connectors=[{"id": "web-search"}],
    )
    return response.text

print(weather("Boston", "command"))
```

[<img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/cohere_ops.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=a05e51dc0c7958fa690e6f25ce4eb89d" alt="cohere_ops.png" width="2170" height="844" data-path="products/wandb/weave/_media/cohere_ops.png" />](https://forge.coreweave.com/wandb/capecape/cohere_dev/weave/calls)

<h2 id="create-a-model-for-easier-experimentation">
  Créer un `Model` pour faciliter l’expérimentation
</h2>

Il est difficile d’organiser ses expériences lorsque de nombreux éléments entrent en jeu. La classe [`Model`](/fr/products/wandb/weave/guides/core-types/models) vous permet de capturer et d’organiser les détails expérimentaux de votre application, comme votre prompt système ou le modèle que vous utilisez. Vous pouvez ainsi organiser et comparer plus facilement les différentes itérations de votre application.

En plus de gérer les versions du code et de capturer les entrées/sorties, les [`Model`](/fr/products/wandb/weave/guides/core-types/models)s capturent des paramètres structurés qui contrôlent le comportement de votre application, ce qui vous aide à trouver les paramètres les plus efficaces. Vous pouvez également utiliser les Weave Models avec `serve` et avec les [`Evaluation`](/fr/products/wandb/weave/guides/core-types/evaluations)s.

Dans l’exemple suivant, vous pouvez faire varier `model` et `temperature`. Chaque fois que vous modifiez l’un de ces paramètres, vous obtenez une nouvelle *version* de `WeatherModel`.

```python lines theme={"system"}
import weave
import cohere
import os

weave.init('weather-cohere')

class WeatherModel(weave.Model):
    model: str
    temperature: float
  
    @weave.op()
    def predict(self, location: str) -> str:
        co = cohere.Client(api_key=os.environ["COHERE_API_KEY"])
        response = co.chat(
            message=f"How is the weather in {location}?",
            model=self.model,
            temperature=self.temperature,
            connectors=[{"id": "web-search"}]
        )
        return response.text

weather_model = WeatherModel(
    model="command",
    temperature=0.7
)
result = weather_model.predict("Boston")
print(result)
```

[<img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/cohere_model.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=c2d86a9270fc8909694c41838d726da0" alt="cohere_model.png" width="2906" height="994" data-path="products/wandb/weave/_media/cohere_model.png" />](https://forge.coreweave.com/wandb/capecape/cohere_dev/weave/models)


## Related topics

- [Évaluer avec des évaluateurs locaux](/fr/products/wandb/weave/guides/evaluation/weave_local_scorers.md)
