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

# Cohere

> Utilisez Weave pour suivre et consigner automatiquement les appels LLM effectués par l’intermédiaire de 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>

Weave suit et consigne automatiquement les appels LLM effectués par l’intermédiaire de la [bibliothèque Python Cohere](https://github.com/cohere-ai/cohere-python) après que vous avez appelé `weave.init()`.

<div id="traces">
  ## Traces
</div>

Il est important de stocker les traces des applications LLM dans une base de données centrale, aussi bien pendant le développement qu’en production. Vous utilisez ces traces pour le débogage, ainsi que comme jeu de données pour vous aider à améliorer votre application.

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

```python lines {8} theme={null}
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?",
    # effectuez une recherche web avant de répondre à la question. Vous pouvez également utiliser votre propre connecteur personnalisé.
    connectors=[{"id": "web-search"}],
)
print(response.text)
```

Si vous ne spécifiez pas de team W\&B lorsque vous appelez `weave.init()`, Weave utilise votre entité par défaut. Pour trouver ou mettre à jour votre entité par défaut, reportez-vous à [Paramètres utilisateur](https://docs.wandb.ai/platform/app/settings-page/user-settings/#default-team) dans la documentation W\&B 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’effectuer des requêtes vers d’autres API au niveau du point de terminaison. La réponse contient alors le texte généré avec des éléments de citation renvoyant vers les documents retournés par le connecteur.

[<img src="https://mintcdn.com/wb-21fd5541/IuXGrpyeFw4WzHgb/weave/guides/integrations/imgs/cohere_trace.png?fit=max&auto=format&n=IuXGrpyeFw4WzHgb&q=85&s=4917ad6cc436ec355f90629ad6d53bbe" alt="cohere_trace.png" width="2156" height="1174" data-path="weave/guides/integrations/imgs/cohere_trace.png" />](https://wandb.ai/capecape/cohere_dev/weave/calls)

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

<div id="wrap-with-your-own-ops">
  ## Encapsulez avec vos propres ops
</div>

Les ops Weave rendent les résultats *reproductibles* en assurant automatiquement la gestion des versions du code au fil de vos expériences, et capturent leurs entrées et sorties. Créez une fonction décorée avec [`@weave.op()`](/fr/weave/guides/tracking/ops) qui appelle les méthodes de chat de Cohere, et Weave suit les entrées et les sorties pour vous. Voici un exemple :

```python lines {9} theme={null}
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}?",
        # effectuer 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/wb-21fd5541/IuXGrpyeFw4WzHgb/weave/guides/integrations/imgs/cohere_ops.png?fit=max&auto=format&n=IuXGrpyeFw4WzHgb&q=85&s=661e24839048d469b5488d4a4a66ba6b" alt="cohere_ops.png" width="2170" height="844" data-path="weave/guides/integrations/imgs/cohere_ops.png" />](https://wandb.ai/capecape/cohere_dev/weave/calls)

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

Il est difficile d’organiser l’expérimentation lorsque de nombreux éléments entrent en jeu. En utilisant la classe [`Model`](/fr/weave/guides/core-types/models), vous pouvez capturer et organiser les détails expérimentaux de votre application, comme votre prompt système ou le modèle que vous utilisez. Cela facilite l’organisation et la comparaison des différentes itérations de votre application.

Au-delà de la gestion des versions du code et de la capture des entrées/sorties, les [`Model`](/fr/weave/guides/core-types/models)s capturent des paramètres structurés qui contrôlent le comportement de votre application, vous aidant à identifier les paramètres les plus efficaces. Vous pouvez également utiliser les Weave Models avec `serve` et les [`Évaluation`](/fr/weave/guides/core-types/evaluations)s.

Dans l’exemple suivant, vous pouvez expérimenter avec `model` et `temperature`. Chaque fois que vous modifiez l’un d’eux, vous obtenez une nouvelle *version* de `WeatherModel`.

```python lines theme={null}
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/wb-21fd5541/IuXGrpyeFw4WzHgb/weave/guides/integrations/imgs/cohere_model.png?fit=max&auto=format&n=IuXGrpyeFw4WzHgb&q=85&s=e756578482262a8fc7003925d0b99f24" alt="cohere_model.png" width="2906" height="994" data-path="weave/guides/integrations/imgs/cohere_model.png" />](https://wandb.ai/capecape/cohere_dev/weave/models)
