Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[bot] Spring AI OpenAI auto-instrumentation only covers chat — Image/Audio (speech & transcription) models are not instrumented

Ouverte
#151 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
65/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
java, spring
Domaine
devtools

Piste de recherche

Commencez dans SpringAIOpenAIInstrumentationModule.java aux lignes 39–58 et dans BraintrustSpringAI.java, puis examinez les API d’exécution de OpenAiImageModel, OpenAiAudioTranscriptionModel et OpenAiAudioSpeechModel. Ajoutez à BraintrustSpringAITest.java une couverture pour les appels d’image, de transcription et de synthèse vocale ; le travail est terminé lorsque ces modèles produisent des spans et que les tests existants de chat et de stream continuent de réussir.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

<!-- provider-gap-audit: springai-openai-image-audio-not-instrumented -->

Summary

SpringAIOpenAIInstrumentationModule only installs a ByteBuddy hook on org.springframework.ai.openai.OpenAiChatModel$Builder.build(). Spring AI's spring-ai-openai artifact also ships stable, documented execution-model classes for image generation (OpenAiImageModel) and audio (OpenAiAudioTranscriptionModel, OpenAiAudioSpeechModel) — none of these are targeted by any TypeInstrumentation, so calls made through them produce no spans at all (not even generic/untagged ones, since the interception point itself never fires).

This is distinct from the already-filed embedding gap ("Spring AI instrumentation limited to OpenAI and Anthropic chat models; no embedding model support"), which covers OpenAiEmbeddingModel. It's also distinct from the direct-OpenAI-SDK gaps ("OpenAI Images API spans missing input/output capture", "OpenAI audio transcription and speech spans missing braintrust.output_json"), which are about com.openai:openai-java's own client.images()/client.audio(), not the Spring AI wrapper.

What is missing

braintrust-sdk/instrumentation/springai_1_0_0/src/main/java/dev/braintrust/instrumentation/springai/v1_0_0/auto/SpringAIOpenAIInstrumentationModule.java:

@Override
public List<TypeInstrumentation> typeInstrumentations() {
    return List.of(new OpenAiChatModelBuilderInstrumentation());
}

Only OpenAiChatModelBuilderInstrumentation (matching org.springframework.ai.openai.OpenAiChatModel$Builder) is registered. There is no equivalent TypeInstrumentation for:

  • org.springframework.ai.openai.OpenAiImageModel — image generation execution API (ImageModel.call())
  • org.springframework.ai.openai.OpenAiAudioTranscriptionModel — speech-to-text execution API
  • org.springframework.ai.openai.OpenAiAudioSpeechModel — text-to-speech execution API

All three are constructed independently of OpenAiChatModel and make their own HTTP calls through Spring AI's OpenAiAudioApi/OpenAiImageApi, which are not wrapped by BraintrustRestInterceptor/BraintrustWebClientFilter the way OpenAiApi (used by chat) is. Manual wrapping via BraintrustSpringAI also has no entry point for these model types — grep for ImageModel, AudioTranscriptionModel, AudioSpeechModel in braintrust-sdk/instrumentation/springai_1_0_0/ returns zero matches.

Braintrust docs status

not_found — the Braintrust docs for Spring AI / Java integrations do not mention image or audio model coverage; only chat completion examples are shown.

Upstream sources

Local files inspected

  • braintrust-sdk/instrumentation/springai_1_0_0/src/main/java/dev/braintrust/instrumentation/springai/v1_0_0/auto/SpringAIOpenAIInstrumentationModule.java — lines 39–58 (only chat model builder instrumentation registered)
  • braintrust-sdk/instrumentation/springai_1_0_0/src/main/java/dev/braintrust/instrumentation/springai/v1_0_0/BraintrustSpringAI.java — no image/audio model wrap entry point
  • braintrust-sdk/instrumentation/springai_1_0_0/src/test/java/dev/braintrust/instrumentation/springai/v1_0_0/BraintrustSpringAITest.java — only chat model tests (OpenAI + Anthropic, call/stream)
  • Full-module grep for ImageModel, AudioTranscriptionModel, AudioSpeechModel — zero matches
Langage dominant
Java
Étoiles
21
Forks
5
Merge moyen
2 j 7 h
PR mergées (30 j)
8

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de braintrustdata/braintrust-sdk-java

Toutes les issues de braintrustdata/braintrust-sdk-java

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.