[bot] Google GenAI Batch API (`ai.batches.create()`) not instrumented
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- typescript
- Domaine
- observability
Piste de recherche
Commencez par les quatre canaux existants dans js/src/instrumentation/plugins/google-genai-channels.ts et suivez la manière dont ils sont encapsulés et gérés dans js/src/wrappers/google-genai.ts et google-genai-plugin.ts. Examinez ensuite les vendored types, la configuration d’auto-instrumentation et les scénarios e2e existants. Le travail est considéré comme terminé lorsque les opérations par lots sont représentées dans ces domaines et qu’une couverture e2e existe pour l’instrumentation qui en résulte.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The @google/genai SDK's Batch API (ai.batches.create() / client.batches.*) is a documented, GA generative-execution surface for asynchronous, high-throughput generateContent (and embeddings) processing at a 50% cost discount. It is not instrumented anywhere in this repository — no wrapper support, no channel definitions, no plugin, no auto-instrumentation config entry, and no e2e coverage.
What instrumentation is missing
Channels (js/src/instrumentation/plugins/google-genai-channels.ts)
googleGenAIChannels (lines 20–57) defines only four channels: generateContent, generateContentStream, embedContent, and interactionsCreate. There is no batches-related channel.
Wrapper (js/src/wrappers/google-genai.ts)
wrapModels() (lines 118–133) proxies only generateContent, generateContentStream, and embedContent on instance.models. The instance.batches namespace (ai.batches.create(), .get(), .list(), .cancel()) is not proxied at all and passes through completely untraced.
Plugin (js/src/instrumentation/plugins/google-genai-plugin.ts)
Only subscribes to the four existing channels above — no batch handler exists.
Vendored types (js/src/vendor-sdk-types/google-genai.ts)
No type exists for the batches namespace or its request/response/job-status shapes.
Auto-instrumentation config (js/src/auto-instrumentations/configs/google-genai.ts)
No batch-related entry.
e2e coverage (e2e/scenarios/google-genai-instrumentation/)
No batch-related scenario, cassette, or span-tree snapshot among the existing google-genai-v1/v2 (pinned + latest) scenarios.
Upstream operations not instrumented
ai.batches.create({ model, src, config })— submit a batch job (file-based or inline requests) forgenerateContentai.batches.create_embeddings(...)— submit a batch job for embeddingsai.batches.get(name)— poll job status (JOB_STATE_SUCCEEDED, etc.)ai.batches.list()— list batch jobsai.batches.cancel(name)— cancel a batch job
Braintrust docs status
not_found. The Braintrust Gemini integration guide (https://www.braintrust.dev/docs/integrations/ai-providers/gemini) documents generateContent/generateContentStream, embedContent, grounding metadata, generate_images (Python only), and interactions/Live API (Python only) — but does not mention batch processing anywhere.
Upstream references
- Gemini API Batch Mode guide: https://ai.google.dev/gemini-api/docs/batch-mode
- Gemini API Batch API reference: https://ai.google.dev/gemini-api/docs/batch-api
@google/genainpm package: https://www.npmjs.com/package/@google/genai- SDK source: https://github.com/googleapis/js-genai
Braintrust docs sources checked
Local files inspected
js/src/instrumentation/plugins/google-genai-channels.ts(full file — only 4 channels defined, no batches)js/src/instrumentation/plugins/google-genai-plugin.ts(subscribes only to the 4 existing channels)js/src/wrappers/google-genai.ts(full file —wrapModels()proxies onlygenerateContent/generateContentStream/embedContent;instance.batchesuntouched)js/src/vendor-sdk-types/google-genai.ts(no batches type)js/src/auto-instrumentations/configs/google-genai.ts(no batches entry)e2e/scenarios/google-genai-instrumentation/(full directory listing — no batch scenario/cassette/snapshot)- Repo-wide case-insensitive grep for
batchunderjs/src— zero matches related to Google GenAI
- Langage dominant
- TypeScript
- Étoiles
- 29
- Forks
- 16
- Merge moyen
- 1 j 22 h
- PR mergées (30 j)
- 72
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Aucun modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de braintrustdata/braintrust-sdk-javascript
-
Difficulté 4/5 3-5 jours Accessibilité débutants 22/100
braintrustdata/braintrust-sdk-javascript#2624 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
typescript
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
braintrustdata/braintrust-sdk-javascript#2578 ·
Les mainteneurs répondent en général sous 1 jour
-
[bot] Instrument Letta Agent SDK (87,205 weekly downloads)Peut-être pris @karthiksenv l’a pris il y a 2 jours. Ouvertetypescript
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
braintrustdata/braintrust-sdk-javascript#2577 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
braintrustdata/braintrust-sdk-javascript#2527 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
braintrustdata/braintrust-sdk-javascript#2526 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de braintrustdata/braintrust-sdk-javascript
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
homarr-labs/homarr#7191 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
AvaProtocol/ava-sdk-js#276 ·
Les mainteneurs répondent en général sous 1 jour
-
useFragment does not require `variables` when the fragment's variables type has required fieldsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
apollographql/apollo-client#13493 ·
Les mainteneurs répondent en général sous 1 jour