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

# Google

> Utilisez Weave pour tracer et journaliser les appels de modèles Google GenAI

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

<Note>
  Vous pouvez tester les modèles d’IA de Google dans Weave sans aucune configuration grâce au [LLM Playground](/fr/products/wandb/weave/guides/tools/playground).
</Note>

Cette page explique comment utiliser W\&B Weave avec l’API Google Vertex AI et l’API Google Gemini afin d’évaluer, de surveiller et d’améliorer par itérations vos applications Google GenAI.

Weave capture automatiquement les traces pour :

* le [SDK Google GenAI](https://github.com/googleapis/python-genai), accessible via le SDK Python, le SDK Node.js, le SDK Go et l’API REST ;
* l’[API Google Vertex AI](https://cloud.google.com/vertex-ai/docs), qui donne accès aux modèles Gemini de Google et aux [modèles partenaires](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models).

<Note>
  Weave prend également en charge le [Google AI Python SDK pour l’API Gemini](https://github.com/google-gemini/deprecated-generative-ai-python), désormais obsolète. Cette prise en charge est elle aussi obsolète et sera supprimée dans une version ultérieure.
</Note>

<h2 id="get-started">
  Premiers pas
</h2>

Les exemples suivants montrent comment activer le traçage pour chaque SDK pris en charge. Dans les deux cas, l’appel à `weave.init` est la seule étape propre à Weave. Votre code Google GenAI ou Vertex AI existant reste inchangé.

Weave capture automatiquement les traces du [SDK Google GenAI](https://github.com/googleapis/python-genai). Pour commencer à suivre vos appels, appelez `weave.init(project_name="[YOUR-WANDB-PROJECT-NAME]")`, puis utilisez la bibliothèque comme d’habitude.

```python lines theme={"system"}
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?",
)
```

[<img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/google-genai-trace.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=ff14b5daa921aab6e32038eaa67f6a47" alt="dspy_trace.png" width="3340" height="1864" data-path="products/wandb/weave/_media/google-genai-trace.png" />](https://forge.coreweave.com/wandb/geekyrakshit/google-genai/weave/traces)

Weave capture également automatiquement les traces des [API Vertex](https://github.com/googleapis/python-aiplatform/tree/main/vertexai/generative_models). Pour commencer le suivi, appelez `weave.init(project_name="[YOUR-WANDB-PROJECT-NAME]")`, puis utilisez la bibliothèque comme vous le feriez habituellement.

```python lines theme={"system"}
import vertexai
import weave
from vertexai.generative_models import GenerativeModel

weave.init(project_name="vertex-ai-test")
vertexai.init(project="[YOUR-VERTEX-AI-PROJECT-NAME]", location="[YOUR-VERTEX-AI-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?"
)
```

<h2 id="track-your-own-ops">
  Suivre vos propres ops
</h2>

Encapsulez une fonction avec `@weave.op` pour commencer à capturer les entrées, les sorties et la logique de votre application, et ainsi déboguer le cheminement des données dans celle-ci. Vous pouvez imbriquer des ops sur plusieurs niveaux et construire une arborescence des fonctions que vous souhaitez suivre. Le code est également versionné automatiquement au fil de vos expériences, ce qui permet de capturer les modifications ponctuelles qui n'ont pas été validées dans git.

Créez une fonction décorée avec [`@weave.op`](/fr/products/wandb/weave/guides/tracking/ops).

Dans l'exemple suivant, la fonction `recommend_places_to_visit` est encapsulée avec `@weave.op` et recommande des lieux à visiter dans une ville.

```python lines theme={"system"}
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")
```

[<img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/weave/_media/google-genai-ops.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=cbc4a918b14a6994fcb1c2917ceb8a0a" alt="dspy_trace.png" width="3340" height="1864" data-path="products/wandb/weave/_media/google-genai-ops.png" />](https://forge.coreweave.com/wandb/geekyrakshit/google-genai/weave/traces)

<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 évoluent en même temps. Avec la [classe `Model`](/fr/products/wandb/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. 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 et sorties, les [`Model`](/fr/products/wandb/weave/guides/core-types/models) 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 les [`Evaluation`](/fr/products/wandb/weave/guides/core-types/evaluations).

Dans l’exemple suivant, vous pouvez expérimenter avec `CityVisitRecommender`. Chaque fois que vous modifiez l’un de ces éléments, vous obtenez une nouvelle *version* de `CityVisitRecommender`. Vous disposez ainsi d’un historique versionné de chaque configuration que vous essayez, que vous pourrez ensuite comparer ou évaluer.

```python lines theme={"system"}
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="You are a helpful assistant meant to suggest all budget-friendly places to visit in a city",
        )
        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"))
```


## Related topics

- [Google ADK](/fr/products/wandb/weave/guides/integrations/agents/google-adk.md)
