Passer au contenu principal
Ouvrir dans Colab
Vous pouvez tester les modèles Google AI dans Weave sans aucune configuration à l’aide du LLM Playground.
Cette page explique comment utiliser W&B Weave avec l’API Google Vertex AI et l’API Google Gemini. Vous pouvez utiliser Weave pour évaluer, surveiller et faire évoluer vos applications Google GenAI. Weave capture automatiquement des traces pour les éléments suivants :
  1. Le SDK Google GenAI, accessible via le SDK Python, le SDK Node.js, le SDK Go et REST.
  2. L’API Google Vertex AI, qui donne accès aux modèles Gemini de Google ainsi qu’à divers modèles partenaires.
Nous proposons également une assistance pour le SDK Python Google AI pour l’API Gemini, désormais obsolète. Notez que cette assistance est également obsolète et sera supprimée dans une prochaine version.

Pour commencer

Weave capture automatiquement les traces avec le SDK Google GenAI. Pour démarrer le suivi, appelez weave.init(project_name="<YOUR-WANDB-PROJECT-NAME>"), puis utilisez la bibliothèque normalement.
import os
from google import genai
import weave

weave.init(project_name="google-genai")

google_client = genai.Client(api_key=os.getenv("GOOGLE_GENAI_KEY"))
response = google_client.models.generate_content(
    model="gemini-2.0-flash",
    contents="What's the capital of France?",
)
dspy_trace.png Weave capture aussi automatiquement les traces des API Vertex. Pour démarrer le suivi, appelez weave.init(project_name="<YOUR-WANDB-PROJECT-NAME>"), puis utilisez la bibliothèque normalement.
import vertexai
import weave
from vertexai.generative_models import GenerativeModel

weave.init(project_name="vertex-ai-test")
vertexai.init(project="<YOUR-VERTEXAIPROJECT-NAME>", location="<YOUR-VERTEXAI-PROJECT-LOCATION>")
model = GenerativeModel("gemini-1.5-flash-002")
response = model.generate_content(
    "What's a good name for a flower shop specialising in selling dried flower bouquets?"
)

Suivez vos propres ops

En encapsulant une fonction avec @weave.op, vous commencez à capturer les entrées, les sorties et la logique de l’application, afin de pouvoir déboguer la façon dont les données circulent dans votre application. Vous pouvez imbriquer des ops en profondeur et construire un arbre de fonctions que vous souhaitez suivre. Cela active également automatiquement la gestion des versions du code au fil de vos expériences, afin de capturer des détails ad hoc qui n’ont pas été commités dans Git. Créez simplement une fonction décorée avec @weave.op. Dans l’exemple ci-dessous, la fonction recommend_places_to_visit, encapsulée avec @weave.op, recommande des lieux à visiter dans une ville.
import os
from google import genai
import weave

weave.init(project_name="google-genai")
google_client = genai.Client(api_key=os.getenv("GOOGLE_GENAI_KEY"))


@weave.op()
def recommend_places_to_visit(city: str, model: str = "gemini-1.5-flash"):
    response = google_client.models.generate_content(
        model=model,
        contents="You are a helpful assistant meant to suggest all budget-friendly places to visit in a city",
    )
    return response.text


recommend_places_to_visit("New York")
recommend_places_to_visit("Paris")
recommend_places_to_visit("Kolkata")
dspy_trace.png

Créez un Model pour expérimenter plus facilement

Il est difficile d’organiser une expérimentation lorsqu’il y a de nombreux éléments 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 CityVisitRecommender. Chaque fois que vous modifiez l’un de ces éléments, vous obtenez une nouvelle version de CityVisitRecommender.
import os
from google import genai
import weave

weave.init(project_name="google-genai")
google_client = genai.Client(api_key=os.getenv("GOOGLE_GENAI_KEY"))


class CityVisitRecommender(weave.Model):
    model: str

    @weave.op()
    def predict(self, city: str) -> str:
        response = google_client.models.generate_content(
            model=self.model,
            contents="Vous êtes un assistant serviable destiné à suggérer tous les endroits économiques à visiter dans une ville",
        )
        return response.text


city_recommender = CityVisitRecommender(model="gemini-1.5-flash")
print(city_recommender.predict("New York"))
print(city_recommender.predict("San Francisco"))
print(city_recommender.predict("Los Angeles"))