Passer au contenu principal
Ouvrir dans Colab Weave suit et consigne automatiquement les appels LLM effectués via la bibliothèque Python Cohere après l’appel à weave.init().

Traces

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 utiliserez ces traces pour le débogage, ainsi que comme jeu de données pour vous aider à améliorer votre application. Weave capturera automatiquement les traces de cohere-python. Vous pouvez utiliser la bibliothèque comme d’habitude, en commençant par appeler weave.init() :
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(), votre entité par défaut est utilisée. Pour trouver ou mettre à jour votre entité par défaut, reportez-vous à Paramètres utilisateur dans la documentation W&B Models. L’une des fonctionnalités puissantes des modèles Cohere est l’utilisation de connecteurs, qui vous permettent d’effectuer des requêtes vers d’autres API au niveau de l’endpoint. La réponse contiendra alors le texte généré avec des éléments de citation renvoyant vers les documents retournés par le connecteur. cohere_trace.png
Nous patchons les méthodes Cohere Client.chat, AsyncClient.chat, Client.chat_stream et AsyncClient.chat_stream pour vous permettre de suivre vos appels LLM.

Encapsuler avec vos propres ops

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 simplement une fonction décorée avec @weave.op() qui appelle les méthodes de chat de Cohere, et Weave suivra les entrées et les sorties pour vous. Voici un exemple :
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"))
cohere_ops.png

Créez un Model pour faciliter l’expérimentation

Il est difficile d’organiser l’expérimentation lorsque de nombreux éléments entrent en jeu. En utilisant la classe Model, 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. En plus de la gestion des versions du code et de la capture des entrées/sorties, les Models capturent des paramètres structurés qui contrôlent le comportement de votre application, ce qui permet d’identifier facilement les paramètres les plus efficaces. Vous pouvez également utiliser les Weave Models avec serve et les Évaluations. Dans l’exemple ci-dessous, vous pouvez expérimenter avec model et temperature. Chaque fois que vous modifiez l’un d’eux, vous obtenez une nouvelle version de WeatherModel.
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)
cohere_model.png