From 18856baf2c93fbc7af21b71ea20acf9cc0c6bace Mon Sep 17 00:00:00 2001 From: Andrew Kent Date: Wed, 29 Apr 2026 23:17:54 -0600 Subject: [PATCH 1/2] VCR --- ...-29a53860-e392-4587-ba18-bba1d2e1b581.json | 39 +++++++++++++++++++ ...-3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65.json | 39 +++++++++++++++++++ ...-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json | 30 ++++++++++++++ ...-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json | 30 ++++++++++++++ ...-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json | 37 ++++++++++++++++++ ...-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json | 37 ++++++++++++++++++ 6 files changed, 212 insertions(+) create mode 100644 test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-29a53860-e392-4587-ba18-bba1d2e1b581.json create mode 100644 test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65.json create mode 100644 test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json create mode 100644 test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json create mode 100644 test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json create mode 100644 test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-29a53860-e392-4587-ba18-bba1d2e1b581.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-29a53860-e392-4587-ba18-bba1d2e1b581.json new file mode 100644 index 00000000..a8d2110c --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-29a53860-e392-4587-ba18-bba1d2e1b581.json @@ -0,0 +1,39 @@ +{ + "id" : "29a53860-e392-4587-ba18-bba1d2e1b581", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CogKCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4zLjQtNjgyMGIwYi1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTkuMBLKCAoRCg9icmFpbnRydXN0LWphdmEStAgKEHxZUUtff/x0GmdwpB715GASCAq8fihaIP7WKhBnZW5lcmF0ZV9jb250ZW50MAM5gNthbbYKqxhBkHCyqbYKqxhKygEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhKwAQqtAXsiY29udGVudHMiOlt7InBhcnRzIjpbeyJ0ZXh0IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBHZXJtYW55PyJ9XSwicm9sZSI6InVzZXIifV0sIm1vZGVsIjoiZ2VtaW5pLTMuMS1mbGFzaC1saXRlLXByZXZpZXciLCJjb25maWciOnsidGVtcGVyYXR1cmUiOjAuMCwibWF4T3V0cHV0VG9rZW5zIjo1MH19Sk0KEmJyYWludHJ1c3QubWV0cmljcxI3CjV7ImNvbXBsZXRpb25fdG9rZW5zIjo3LCJwcm9tcHRfdG9rZW5zIjo4LCJ0b2tlbnMiOjE1fUouChpicmFpbnRydXN0LnNwYW5fYXR0cmlidXRlcxIQCg57InR5cGUiOiJsbG0ifUoyChFicmFpbnRydXN0LnBhcmVudBIdChtwcm9qZWN0X25hbWU6amF2YS11bml0LXRlc3RK5gMKFmJyYWludHJ1c3Qub3V0cHV0X2pzb24SywMKyAN7ImNhbmRpZGF0ZXMiOlt7ImNvbnRlbnQiOnsicGFydHMiOlt7InRleHQiOiJUaGUgY2FwaXRhbCBvZiBHZXJtYW55IGlzIEJlcmxpbi4iLCJ0aG91Z2h0U2lnbmF0dXJlIjoiRWpRS01nRU1PZGJIK21KSzB4VnhXb25QOWV6WklhL1FhU1BKeTJ1U0FiMFdlUEdsRi9tVFVDRVJRczc1dE14NDZnUzlVeHNEIn1dLCJyb2xlIjoibW9kZWwifSwiZmluaXNoUmVhc29uIjoiU1RPUCIsImluZGV4IjowfV0sInVzYWdlTWV0YWRhdGEiOnsicHJvbXB0VG9rZW5Db3VudCI6OCwiY2FuZGlkYXRlc1Rva2VuQ291bnQiOjcsInRvdGFsVG9rZW5Db3VudCI6MTUsInByb21wdFRva2Vuc0RldGFpbHMiOlt7Im1vZGFsaXR5IjoiVEVYVCIsInRva2VuQ291bnQiOjh9XX0sIm1vZGVsVmVyc2lvbiI6ImdlbWluaS0zLjEtZmxhc2gtbGl0ZS1wcmV2aWV3IiwicmVzcG9uc2VJZCI6IjhlWHlhZGo0SU1UaXF0c1BwN2JpOFFNIn1KfQoTYnJhaW50cnVzdC5tZXRhZGF0YRJmCmR7InByb3ZpZGVyIjoiZ2VtaW5pIiwidGVtcGVyYXR1cmUiOjAuMCwibW9kZWwiOiJnZW1pbmktMy4xLWZsYXNoLWxpdGUtcHJldmlldyIsIm1heE91dHB1dFRva2VucyI6NTB9egIYAYUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-amz-apigw-id" : "cnjd2HUEoAMEduQ=", + "vary" : "Origin", + "x-amzn-Remapped-content-length" : "0", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "X-Amzn-Trace-Id" : "Root=1-69f2e5f1-6e22bcc6160c24fd03aed954;Parent=0bc473e98f7d08ec;Sampled=0;Lineage=1:24be3d11:0", + "Date" : "Thu, 30 Apr 2026 05:17:38 GMT", + "Via" : "1.1 8022fb6dd967fd5734dda3b51415b460.cloudfront.net (CloudFront), 1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id", + "access-control-allow-credentials" : "true", + "x-bt-internal-trace-id" : "69f2e5f100000000169650fc41b6cab8", + "x-amzn-RequestId" : "16496122-d01d-4764-bf5b-9326d91755c4", + "X-Amz-Cf-Id" : "-Vzypmbtmq6NjThWrP5oJLxtZKHPT7JaWI_uf0kRU3N_wpXK7q6UfQ==", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "Content-Type" : "application/x-protobuf" + } + }, + "uuid" : "29a53860-e392-4587-ba18-bba1d2e1b581", + "persistent" : true, + "insertionIndex" : 237 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65.json b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65.json new file mode 100644 index 00000000..e2efe720 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/braintrust/mappings/otel_v1_traces-3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65.json @@ -0,0 +1,39 @@ +{ + "id" : "3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65", + "name" : "otel_v1_traces", + "request" : { + "url" : "/otel/v1/traces", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/x-protobuf" + } + }, + "bodyPatterns" : [ { + "binaryEqualTo" : "CoUKCrgBCiAKDHNlcnZpY2UubmFtZRIQCg5icmFpbnRydXN0LWFwcAooCg9zZXJ2aWNlLnZlcnNpb24SFQoTMC4zLjQtNjgyMGIwYi1ESVJUWQogChZ0ZWxlbWV0cnkuc2RrLmxhbmd1YWdlEgYKBGphdmEKJQoSdGVsZW1ldHJ5LnNkay5uYW1lEg8KDW9wZW50ZWxlbWV0cnkKIQoVdGVsZW1ldHJ5LnNkay52ZXJzaW9uEggKBjEuNTkuMBLHCAoRCg9icmFpbnRydXN0LWphdmESsQgKEIJtWjsd38UI78ctbaGWXloSCPxHOTwfRWs9KhBnZW5lcmF0ZV9jb250ZW50MAM5ID7b17YKqxhB5yBjFLcKqxhKyQEKFWJyYWludHJ1c3QuaW5wdXRfanNvbhKvAQqsAXsiY29udGVudHMiOlt7InBhcnRzIjpbeyJ0ZXh0IjoiV2hhdCBpcyB0aGUgY2FwaXRhbCBvZiBGcmFuY2U/In1dLCJyb2xlIjoidXNlciJ9XSwibW9kZWwiOiJnZW1pbmktMy4xLWZsYXNoLWxpdGUtcHJldmlldyIsImNvbmZpZyI6eyJ0ZW1wZXJhdHVyZSI6MC4wLCJtYXhPdXRwdXRUb2tlbnMiOjUwfX1KTQoSYnJhaW50cnVzdC5tZXRyaWNzEjcKNXsiY29tcGxldGlvbl90b2tlbnMiOjcsInByb21wdF90b2tlbnMiOjgsInRva2VucyI6MTV9Si4KGmJyYWludHJ1c3Quc3Bhbl9hdHRyaWJ1dGVzEhAKDnsidHlwZSI6ImxsbSJ9SjIKEWJyYWludHJ1c3QucGFyZW50Eh0KG3Byb2plY3RfbmFtZTpqYXZhLXVuaXQtdGVzdErkAwoWYnJhaW50cnVzdC5vdXRwdXRfanNvbhLJAwrGA3siY2FuZGlkYXRlcyI6W3siY29udGVudCI6eyJwYXJ0cyI6W3sidGV4dCI6IlRoZSBjYXBpdGFsIG9mIEZyYW5jZSBpcyBQYXJpcy4iLCJ0aG91Z2h0U2lnbmF0dXJlIjoiRWpRS01nRU1PZGJIWSttM0NETkJLUU05ZEN4VVptUXh6ZUJRNVp4aWcvS2wzdTljVE1IMDNnQUx4ZXFIaHlLdm9QV21OTlFmIn1dLCJyb2xlIjoibW9kZWwifSwiZmluaXNoUmVhc29uIjoiU1RPUCIsImluZGV4IjowfV0sInVzYWdlTWV0YWRhdGEiOnsicHJvbXB0VG9rZW5Db3VudCI6OCwiY2FuZGlkYXRlc1Rva2VuQ291bnQiOjcsInRvdGFsVG9rZW5Db3VudCI6MTUsInByb21wdFRva2Vuc0RldGFpbHMiOlt7Im1vZGFsaXR5IjoiVEVYVCIsInRva2VuQ291bnQiOjh9XX0sIm1vZGVsVmVyc2lvbiI6ImdlbWluaS0zLjEtZmxhc2gtbGl0ZS1wcmV2aWV3IiwicmVzcG9uc2VJZCI6IjgtWHlhY19hRnItaHF0c1B5ZnVaeVFNIn1KfQoTYnJhaW50cnVzdC5tZXRhZGF0YRJmCmR7InByb3ZpZGVyIjoiZ2VtaW5pIiwidGVtcGVyYXR1cmUiOjAuMCwibW9kZWwiOiJnZW1pbmktMy4xLWZsYXNoLWxpdGUtcHJldmlldyIsIm1heE91dHB1dFRva2VucyI6NTB9egIYAYUBAQEAAA==" + } ] + }, + "response" : { + "status" : 200, + "headers" : { + "X-Cache" : "Miss from cloudfront", + "x-amz-apigw-id" : "cnjeHF1tIAMEQhQ=", + "vary" : "Origin", + "x-amzn-Remapped-content-length" : "0", + "X-Amz-Cf-Pop" : [ "SEA900-P1", "SEA900-P10" ], + "X-Amzn-Trace-Id" : "Root=1-69f2e5f3-53624e1730f79ca622013814;Parent=54812060e0a57d2a;Sampled=0;Lineage=1:24be3d11:0", + "Date" : "Thu, 30 Apr 2026 05:17:39 GMT", + "Via" : "1.1 49e28fce48b0172be48e0ceea533547e.cloudfront.net (CloudFront), 1.1 65f2e9f7f1475de54aa452d3ceb9bcf6.cloudfront.net (CloudFront)", + "access-control-expose-headers" : "x-bt-cursor,x-bt-found-existing,x-bt-query-plan,x-bt-api-duration-ms,x-bt-brainstore-duration-ms,x-bt-internal-trace-id", + "access-control-allow-credentials" : "true", + "x-bt-internal-trace-id" : "69f2e5f3000000003f51a2c2be3233fb", + "x-amzn-RequestId" : "62d09c75-ba6c-4a34-82ae-12031fa4a209", + "X-Amz-Cf-Id" : "pNZQyH3g86Fgrataim4KqzWlvl__0CeZGVfsiVIbQeHWDApkQpmSyA==", + "etag" : "W/\"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk\"", + "Content-Type" : "application/x-protobuf" + } + }, + "uuid" : "3c47c7ba-8cf2-43e1-a9cc-a1e8aa985f65", + "persistent" : true, + "insertionIndex" : 236 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json new file mode 100644 index 00000000..a8713c95 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json @@ -0,0 +1,30 @@ +{ + "candidates": [ + { + "content": { + "parts": [ + { + "text": "The capital of France is Paris.", + "thoughtSignature": "EjQKMgEMOdbHY+m3CDNBKQM9dCxUZmQxzeBQ5Zxig/Kl3u9cTMH03gALxeqHhyKvoPWmNNQf" + } + ], + "role": "model" + }, + "finishReason": "STOP", + "index": 0 + } + ], + "usageMetadata": { + "promptTokenCount": 8, + "candidatesTokenCount": 7, + "totalTokenCount": 15, + "promptTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 8 + } + ] + }, + "modelVersion": "gemini-3.1-flash-lite-preview", + "responseId": "8-Xyac_aFr-hqtsPyfuZyQM" +} diff --git a/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json new file mode 100644 index 00000000..f765fad7 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/google/__files/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json @@ -0,0 +1,30 @@ +{ + "candidates": [ + { + "content": { + "parts": [ + { + "text": "The capital of Germany is Berlin.", + "thoughtSignature": "EjQKMgEMOdbH+mJK0xVxWonP9ezZIa/QaSPJy2uSAb0WePGlF/mTUCERQs75tMx46gS9UxsD" + } + ], + "role": "model" + }, + "finishReason": "STOP", + "index": 0 + } + ], + "usageMetadata": { + "promptTokenCount": 8, + "candidatesTokenCount": 7, + "totalTokenCount": 15, + "promptTokensDetails": [ + { + "modality": "TEXT", + "tokenCount": 8 + } + ] + }, + "modelVersion": "gemini-3.1-flash-lite-preview", + "responseId": "8eXyadj4IMTiqtsPp7bi8QM" +} diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json new file mode 100644 index 00000000..129c44a3 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json @@ -0,0 +1,37 @@ +{ + "id" : "75f513a5-d5e4-4ff9-82de-d76ee3cb63a1", + "name" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent", + "request" : { + "url" : "/v1beta/models/gemini-3.1-flash-lite-preview:generateContent", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json; charset=UTF-8" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"contents\":[{\"parts\":[{\"text\":\"What is the capital of France?\"}],\"role\":\"user\"}],\"generationConfig\":{\"temperature\":0.0,\"maxOutputTokens\":50}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-75f513a5-d5e4-4ff9-82de-d76ee3cb63a1.json", + "headers" : { + "X-Frame-Options" : "SAMEORIGIN", + "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", + "Server" : "scaffolding on HTTPServer2", + "X-Content-Type-Options" : "nosniff", + "Server-Timing" : "gfet4t7; dur=903", + "Vary" : [ "Origin", "X-Origin", "Referer" ], + "X-Gemini-Service-Tier" : "standard", + "X-XSS-Protection" : "0", + "Date" : "Thu, 30 Apr 2026 05:17:39 GMT", + "Content-Type" : "application/json; charset=UTF-8" + } + }, + "uuid" : "75f513a5-d5e4-4ff9-82de-d76ee3cb63a1", + "persistent" : true, + "insertionIndex" : 9 +} \ No newline at end of file diff --git a/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json new file mode 100644 index 00000000..e0b800f1 --- /dev/null +++ b/test-harness/src/testFixtures/resources/cassettes/google/mappings/v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json @@ -0,0 +1,37 @@ +{ + "id" : "a70e7b53-f06e-46fb-9071-2bb08b8090b7", + "name" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent", + "request" : { + "url" : "/v1beta/models/gemini-3.1-flash-lite-preview:generateContent", + "method" : "POST", + "headers" : { + "Content-Type" : { + "equalTo" : "application/json; charset=UTF-8" + } + }, + "bodyPatterns" : [ { + "equalToJson" : "{\"contents\":[{\"parts\":[{\"text\":\"What is the capital of Germany?\"}],\"role\":\"user\"}],\"generationConfig\":{\"temperature\":0.0,\"maxOutputTokens\":50}}", + "ignoreArrayOrder" : true, + "ignoreExtraElements" : false + } ] + }, + "response" : { + "status" : 200, + "bodyFileName" : "v1beta_models_gemini-3.1-flash-lite-previewgeneratecontent-a70e7b53-f06e-46fb-9071-2bb08b8090b7.json", + "headers" : { + "X-Frame-Options" : "SAMEORIGIN", + "Alt-Svc" : "h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000", + "Server" : "scaffolding on HTTPServer2", + "X-Content-Type-Options" : "nosniff", + "Server-Timing" : "gfet4t7; dur=714", + "Vary" : [ "Origin", "X-Origin", "Referer" ], + "X-Gemini-Service-Tier" : "standard", + "X-XSS-Protection" : "0", + "Date" : "Thu, 30 Apr 2026 05:17:37 GMT", + "Content-Type" : "application/json; charset=UTF-8" + } + }, + "uuid" : "a70e7b53-f06e-46fb-9071-2bb08b8090b7", + "persistent" : true, + "insertionIndex" : 10 +} \ No newline at end of file From b323e88e541cff0cd4cff4c7ae78f5846c86a736 Mon Sep 17 00:00:00 2001 From: Andrew Kent Date: Wed, 29 Apr 2026 22:32:03 -0600 Subject: [PATCH 2/2] bump gemini flash model --- .../genai/v1_18_0/BraintrustGenAITest.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/braintrust-sdk/instrumentation/genai_1_18_0/src/test/java/dev/braintrust/instrumentation/genai/v1_18_0/BraintrustGenAITest.java b/braintrust-sdk/instrumentation/genai_1_18_0/src/test/java/dev/braintrust/instrumentation/genai/v1_18_0/BraintrustGenAITest.java index e1a3751e..167b6266 100644 --- a/braintrust-sdk/instrumentation/genai_1_18_0/src/test/java/dev/braintrust/instrumentation/genai/v1_18_0/BraintrustGenAITest.java +++ b/braintrust-sdk/instrumentation/genai_1_18_0/src/test/java/dev/braintrust/instrumentation/genai/v1_18_0/BraintrustGenAITest.java @@ -16,6 +16,7 @@ import org.junit.jupiter.api.Test; public class BraintrustGenAITest { + private static final String MODEL_ID = "gemini-3.1-flash-lite-preview"; private static final ObjectMapper JSON_MAPPER = new ObjectMapper(); @BeforeAll @@ -47,7 +48,7 @@ void testWrapGemini() { var response = geminiClient.models.generateContent( - "gemini-2.0-flash-lite", "What is the capital of France?", config); + MODEL_ID, "What is the capital of France?", config); // Verify the response assertNotNull(response); @@ -67,7 +68,7 @@ void testWrapGemini() { assertNotNull(metadataJson, "braintrust.metadata should be set"); var metadata = JSON_MAPPER.readTree(metadataJson); assertEquals("gemini", metadata.get("provider").asText()); - assertEquals("gemini-2.0-flash-lite", metadata.get("model").asText()); + assertEquals(MODEL_ID, metadata.get("model").asText()); assertEquals(0.0, metadata.get("temperature").asDouble()); assertEquals(50, metadata.get("maxOutputTokens").asInt()); @@ -91,7 +92,7 @@ void testWrapGemini() { span.getAttributes().get(AttributeKey.stringKey("braintrust.input_json")); assertNotNull(inputJson, "braintrust.input_json should be set"); var input = JSON_MAPPER.readTree(inputJson); - assertEquals("gemini-2.0-flash-lite", input.get("model").asText()); + assertEquals(MODEL_ID, input.get("model").asText()); assertTrue(input.has("contents"), "input should have contents"); assertTrue(input.has("config"), "input should have config"); @@ -123,7 +124,7 @@ void testWrapGeminiAsync() { // Call async method and wait for completion var responseFuture = geminiClient.async.models.generateContent( - "gemini-2.0-flash-lite", "What is the capital of Germany?", config); + MODEL_ID, "What is the capital of Germany?", config); var response = responseFuture.get(); // Wait for completion @@ -145,7 +146,7 @@ void testWrapGeminiAsync() { assertNotNull(metadataJson, "braintrust.metadata should be set"); var metadata = JSON_MAPPER.readTree(metadataJson); assertEquals("gemini", metadata.get("provider").asText()); - assertEquals("gemini-2.0-flash-lite", metadata.get("model").asText()); + assertEquals(MODEL_ID, metadata.get("model").asText()); assertEquals(0.0, metadata.get("temperature").asDouble()); assertEquals(50, metadata.get("maxOutputTokens").asInt()); @@ -169,7 +170,7 @@ void testWrapGeminiAsync() { span.getAttributes().get(AttributeKey.stringKey("braintrust.input_json")); assertNotNull(inputJson, "braintrust.input_json should be set"); var input = JSON_MAPPER.readTree(inputJson); - assertEquals("gemini-2.0-flash-lite", input.get("model").asText()); + assertEquals(MODEL_ID, input.get("model").asText()); assertTrue(input.has("contents"), "input should have contents"); assertTrue(input.has("config"), "input should have config");