[bot] Cohere: Embed Jobs API (`client.embed_jobs.create()`) not instrumented
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 68/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- python
- Bereich
- observability-sre
Rechercherichtung
Beginne mit py/src/braintrust/integrations/cohere/patchers.py und integration.py und sieh dir anschließend die bestehenden Tests in py/src/braintrust/integrations/cohere/test_cohere.py an. Füge Abdeckung für die Cohere Embed Jobs-Methoden und ihre async-Entsprechungen hinzu und orientiere dich dabei an den bestehenden Instrumentierungsmustern. Als abgeschlossen gilt die Aufgabe, wenn die Joberstellung das angeforderte Dataset und die Model-Einstellungen sowie die Job-ID und den anfänglichen Status erfasst und Tests die neuen Spans abdecken.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
The Cohere Python SDK's Embed Jobs API — client.embed_jobs.create() / client.embed_jobs.get() / client.embed_jobs.list() (and the AsyncClient equivalents) — is not instrumented. This is Cohere's bulk/batch embedding execution surface: it launches an async job that reads a Dataset of type embed-input, runs the configured embedding model (model, input_type, embedding_types) over every record, and writes the resulting vectors to a new embed-output Dataset. It is the async, large-scale counterpart to the synchronous client.embed() call, which is instrumented.
Calls to client.embed_jobs.create() fall through uninstrumented today — the Cohere integration only patches BaseCohere/AsyncBaseCohere (chat, chat_stream, embed, rerank) and the v2 client and audio transcription client. No patcher touches the embed_jobs resource, so job creation produces zero Braintrust tracing (no span for the submitted job, its model/config, or its terminal status).
What is missing
| Cohere method | Instrumented? |
|---|---|
client.chat() / client.chat_stream() (v1 + v2) |
Yes |
client.embed() (v1 + v2) |
Yes |
client.rerank() (v1 + v2) |
Yes |
client.audio.transcriptions.create() |
Yes |
client.embed_jobs.create() |
No |
client.embed_jobs.get() |
No |
AsyncClient.embed_jobs.create() |
No |
At minimum, instrumentation should create a span for embed_jobs.create() capturing:
- Input: dataset ID, model,
input_type,embedding_types, job name/truncate settings - Output: job ID and initial status (
processing/complete/failed) - Metadata: model name, dataset reference
This mirrors the pattern already accepted for the analogous async-batch-execution gaps in sibling integrations: OpenAI Batch API (#295), Google GenAI Batch API (#332), and Mistral Batch Jobs API (#272) — this is the same class of gap (an async, job-based generative-execution API that bypasses the wrapper) applied to Cohere's bulk embeddings surface.
Braintrust docs status
not_found — The Cohere integration page documents only: chat completion spans (cohere.chat / cohere.chat_stream), tool call spans, embedding spans (cohere.embed), rerank spans (cohere.rerank), and audio transcription spans (cohere.audio.transcriptions.create). Embed Jobs, batch/bulk embeddings, the Classify API, and the v1 generate() endpoint are not mentioned anywhere on the page.
Upstream sources
- Cohere Embed Jobs API reference (
POST /v1/embed-jobs): https://docs.cohere.com/reference/create-embed-job - Cohere conceptual guide, "Batch Embedding Jobs with the Embed API": https://docs.cohere.com/v2/docs/embed-jobs-api
- Cohere Python SDK (
cohere-python) exposes this asclient.embed_jobs.create(...)/.get(...)/.list(...)on bothcohere.Clientandcohere.AsyncClient
Local files inspected
py/src/braintrust/integrations/cohere/patchers.py— definesChatPatcher,ChatStreamPatcher,EmbedPatcher,RerankPatcher(+ async/v2 variants) andTranscriptionsCreatePatcher/AsyncTranscriptionsCreatePatcher; noembed_jobspatcher of any kindpy/src/braintrust/integrations/cohere/integration.py—CohereIntegration.patchersregisters only the five patchers above;embed_jobsis absent from the registrypy/src/braintrust/integrations/cohere/tracing.py— noembed_jobwrapper functions existpy/src/braintrust/integrations/cohere/test_cohere.py— no test cases referenceembed_jobs- Repo-wide search for
embed_job/embedjob(case-insensitive) returns zero matches outside this issue
Relationship to existing issues
Distinct from #488 (Cohere v1 generate()/generate_stream()) and #343 (Cohere Classify API) — both already open and unrelated to Embed Jobs. Same class of gap as the already-filed provider Batch API issues (#295, #332, #272), applied to a surface (Cohere Embed Jobs) none of those cover.
- Vorherrschende Sprache
- Python
- Sterne
- 22
- Forks
- 24
- Ø Merge
- 16 Std.
- Gemergte PRs (30 T.)
- 101
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus braintrustdata/braintrust-sdk-python
-
feature python
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
braintrustdata/braintrust-sdk-python#868 ·
Maintainer antworten meist innerhalb von 1 Tag
-
new-integration python
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
braintrustdata/braintrust-sdk-python#854 ·
Maintainer antworten meist innerhalb von 1 Tag
-
new-integration python
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
braintrustdata/braintrust-sdk-python#853 ·
Maintainer antworten meist innerhalb von 1 Tag
-
new-integration python
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
braintrustdata/braintrust-sdk-python#852 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Migrate legacy HTTPConnection callers to the policy-aware Transport incrementallyEvtl. vergeben @AbhiPrasad hat das vor 11 Tagen übernommen. Offenpython
braintrustdata/braintrust-sdk-python#839 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in braintrustdata/braintrust-sdk-python
Ähnliche Issues
-
bug difficulty:2 good first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
MakazhanAlpamys/Soup#1865 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: agents area: docs good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptEvtl. vergeben @adityasinha-ghub hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
pylint-dev/pylint#11656 ·
Maintainer antworten meist innerhalb von 1 Tag
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
randomparity/kdive#3203 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
get() for StrEnumEvtl. vergeben @FeJo5952 hat das heute übernommen. Offengood first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
collective/icalendar#1921 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag