Skip to content

Commit c146201

Browse files
mongodbenBen Perlmutter
andauthored
Vertex in braintrust (#769)
* vertex models thru braintrust * clean up unused import --------- Co-authored-by: Ben Perlmutter <mongodben@mongodb.com>
1 parent 4e2b776 commit c146201

File tree

12 files changed

+32
-130
lines changed

12 files changed

+32
-130
lines changed

packages/benchmarks/.env.example

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,4 @@ BRAINTRUST_TEXT_TO_DRIVER_PROJECT_NAME="<some project>"
1111
OPENAI_API_VERSION="2024-06-01"
1212
OPENAI_ENDPOINT="https://<resource_name>.openai.azure.com/"
1313
OPENAI_API_KEY="<api_key>"
14-
GCP_OPENAI_ENDPOINT="https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/openapi"
15-
GCP_API_KEY="SOME_API_KEY"
1614
MONGODB_TEXT_TO_DRIVER_CONNECTION_URI="<CONNECTION URI>"

packages/benchmarks/src/benchmarkModels.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,9 @@ export const MODELS = (
1919
"llama-3.1-70b",
2020
"llama-3.2-90b",
2121
"llama-3.3-70b",
22-
"gemini-1.5-flash-002",
2322
"gemini-2-flash",
24-
"gemini-2.0-flash-lite",
25-
"gemini-1.0-pro-002",
26-
"gemini-1.5-pro-002",
27-
"gemini-2.5-flash",
23+
"gemini-2.0-flash-lite-001",
24+
"gemini-2.5-flash-preview-04-17",
2825
"nova-micro-v1:0",
2926
"nova-lite-v1:0",
3027
"nova-pro-v1:0",

packages/benchmarks/src/envVars.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
import { GCP_VERTEX_AI_ENV_VARS } from "mongodb-rag-core";
2-
31
export const envVars = {
42
MONGODB_DATABASE_NAME: "",
53
MONGODB_CONNECTION_URI: "",
64
MONGODB_QUIZ_QUESTIONS_DATABASE_NAME: "",
75
MONGODB_QUIZ_QUESTIONS_CONNECTION_URI: "",
86
MONGODB_QUIZ_QUESTIONS_COLLECTION_NAME: "",
9-
...GCP_VERTEX_AI_ENV_VARS,
107
};
118

129
export const TEXT_TO_DRIVER_ENV_VARS = {

packages/benchmarks/src/nlPromptResponse/bin/globalConfig.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export const models = getModelsFromLabels([
3131
"o3",
3232
"o4-mini",
3333
"gemini-2-flash",
34-
"gemini-2.0-flash-lite",
35-
"gemini-2.5-flash",
34+
"gemini-2.0-flash-lite-001",
35+
"gemini-2.5-flash-preview-04-17",
3636
"gemini-2.5-pro-preview-03-25",
3737
]);

packages/benchmarks/src/openAiClients.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
import {
2-
assertEnvVars,
3-
BRAINTRUST_ENV_VARS,
4-
GCP_VERTEX_AI_ENV_VARS,
5-
} from "mongodb-rag-core";
1+
import { assertEnvVars, BRAINTRUST_ENV_VARS } from "mongodb-rag-core";
62
import { makeOpenAiClientFactory } from "mongodb-rag-core/models";
73
import { ModelConfig, models } from "mongodb-rag-core/models";
84
import { strict as assert } from "assert";
@@ -31,23 +27,13 @@ export function makeLlmOptions(
3127
};
3228
}
3329

34-
const {
35-
BRAINTRUST_API_KEY,
36-
BRAINTRUST_ENDPOINT,
37-
GCP_API_KEY,
38-
GCP_OPENAI_ENDPOINT,
39-
} = assertEnvVars({
30+
const { BRAINTRUST_API_KEY, BRAINTRUST_ENDPOINT } = assertEnvVars({
4031
...BRAINTRUST_ENV_VARS,
41-
...GCP_VERTEX_AI_ENV_VARS,
4232
});
4333

4434
export const openAiClientFactory = makeOpenAiClientFactory({
4535
braintrust: {
4636
apiKey: BRAINTRUST_API_KEY,
4737
endpoint: BRAINTRUST_ENDPOINT,
4838
},
49-
vertexAi: {
50-
apiKey: GCP_API_KEY,
51-
endpoint: GCP_OPENAI_ENDPOINT,
52-
},
5339
});

packages/mongodb-rag-core/.env.example

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ VECTOR_SEARCH_INDEX_NAME=<index_name>
1313
OPENAI_API_VERSION="2024-06-01"
1414
BRAINTRUST_ENDPOINT="https://api.braintrust.dev/v1/proxy"
1515
BRAINTRUST_API_KEY="<some api key>"
16-
GCP_OPENAI_ENDPOINT="https://{LOCATION}-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/{LOCATION}/endpoints/openapi"
17-
GCP_API_KEY="SOME_API_KEY"

packages/mongodb-rag-core/src/CoreEnvVars.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,3 @@ export const BRAINTRUST_ENV_VARS = {
4141
BRAINTRUST_API_KEY: "",
4242
BRAINTRUST_ENDPOINT: "",
4343
};
44-
45-
export const GCP_VERTEX_AI_ENV_VARS = {
46-
GCP_OPENAI_ENDPOINT: "",
47-
GCP_API_KEY: "",
48-
};

packages/mongodb-rag-core/src/models/getOpenAiEndpointAndApiKey.test.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import { ModelConfig } from "./models";
2-
import { BRAINTRUST_ENV_VARS, GCP_VERTEX_AI_ENV_VARS } from "../CoreEnvVars";
2+
import { BRAINTRUST_ENV_VARS } from "../CoreEnvVars";
33
import { assertEnvVars } from "../assertEnvVars";
4-
import { GoogleAuth } from "google-auth-library";
5-
import { strict as assert } from "assert";
64

75
export async function getOpenAiEndpointAndApiKey(model: ModelConfig) {
86
if (model.provider === "braintrust") {
@@ -13,28 +11,5 @@ export async function getOpenAiEndpointAndApiKey(model: ModelConfig) {
1311
apiKey: BRAINTRUST_API_KEY,
1412
};
1513
}
16-
if (model.provider === "gcp_vertex_ai") {
17-
const { GCP_OPENAI_ENDPOINT } = assertEnvVars(GCP_VERTEX_AI_ENV_VARS);
18-
const accessToken = await getGcpAccessToken();
19-
assert(typeof accessToken === "string", "GCP access token not found");
20-
return {
21-
baseURL: GCP_OPENAI_ENDPOINT,
22-
apiKey: accessToken,
23-
};
24-
}
2514
throw new Error(`Unknown provider: ${model.provider}`);
2615
}
27-
28-
/**
29-
Get GCP access token. To set up locally, run `gcloud auth application-default login`.
30-
*/
31-
export async function getGcpAccessToken() {
32-
const auth = new GoogleAuth({
33-
scopes: ["https://www.googleapis.com/auth/cloud-platform"],
34-
});
35-
36-
const client = await auth.getClient();
37-
const accessTokenResponse = await client.getAccessToken();
38-
const accessToken = accessTokenResponse.token;
39-
return accessToken;
40-
}

packages/mongodb-rag-core/src/models/makeOpenAiClientFactory.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ interface MakeOpenAiClientFactoryParams {
1414

1515
export function makeOpenAiClientFactory({
1616
braintrust,
17-
vertexAi,
1817
}: MakeOpenAiClientFactoryParams) {
1918
return {
2019
makeOpenAiClient(modelConfig: ModelConfig) {
@@ -27,14 +26,6 @@ export function makeOpenAiClientFactory({
2726
baseURL: braintrust.endpoint,
2827
})
2928
);
30-
} else if (modelConfig.provider === "gcp_vertex_ai") {
31-
assert(vertexAi, "GCP Vertex AI config must be provided");
32-
openAiClient = wrapOpenAI(
33-
new OpenAI({
34-
apiKey: vertexAi.apiKey,
35-
baseURL: vertexAi.endpoint,
36-
})
37-
);
3829
} else {
3930
throw new Error(`Unsupported provider: ${modelConfig.provider}`);
4031
}

packages/mongodb-rag-core/src/models/models.test.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import { models } from "./models";
88
import { makeOpenAiClientFactory } from "./makeOpenAiClientFactory";
99
import { OpenAI } from "openai";
1010
import "dotenv/config";
11-
import { getOpenAiEndpointAndApiKey } from "./getOpenAiEndpointAndApiKey";
1211

1312
jest.setTimeout(60000);
1413

@@ -33,23 +32,6 @@ describe.skip("Braintrust models", () => {
3332
);
3433
});
3534

36-
describe.skip("GCP Vertex AI models", () => {
37-
test.each(models.filter((m) => m.provider === "gcp_vertex_ai"))(
38-
"'$label' model should generate data",
39-
async (model) => {
40-
const { apiKey, baseURL } = await getOpenAiEndpointAndApiKey(model);
41-
const openAiClientFactory = makeOpenAiClientFactory({
42-
vertexAi: {
43-
apiKey,
44-
endpoint: baseURL,
45-
},
46-
});
47-
const openAiClient = openAiClientFactory.makeOpenAiClient(model);
48-
await expectModelResponse(openAiClient, model.deployment);
49-
}
50-
);
51-
});
52-
5335
async function expectModelResponse(client: OpenAI, model: string) {
5436
const res = await client.chat.completions.create({
5537
model,

packages/mongodb-rag-core/src/models/models.ts

Lines changed: 25 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export type ModelDeveloper =
88
| "DeepSeek"
99
| "Alibaba Cloud";
1010

11-
export type ModelProvider = "braintrust" | "gcp_vertex_ai";
11+
export type ModelProvider = "braintrust";
1212

1313
export interface ModelConfig {
1414
/**
@@ -321,71 +321,63 @@ const allModels = [
321321
generation: "nova-1",
322322
},
323323
{
324-
label: "gemini-1.5-flash-002",
325-
deployment: "google/gemini-1.5-flash-002",
324+
label: "gemini-2-flash",
325+
deployment: "publishers/google/models/gemini-2.0-flash-001",
326326
developer: "Google",
327-
maxConcurrency: 3,
328-
provider: "gcp_vertex_ai",
327+
maxConcurrency: 10,
328+
provider: "braintrust",
329329
authorized: true,
330-
generation: "gemini-1",
330+
parent: "gemini-1.5-flash-002",
331+
generation: "gemini-2",
331332
},
332333
{
333-
label: "gemini-2-flash",
334-
deployment: "models/gemini-2.0-flash-001",
334+
label: "gemini-2.5-flash-preview-04-17",
335+
deployment: "publishers/google/models/gemini-2.5-flash-preview-04-17",
335336
developer: "Google",
336337
maxConcurrency: 10,
337-
provider: "gcp_vertex_ai",
338+
provider: "braintrust",
338339
authorized: true,
339-
parent: "gemini-1.5-flash-002",
340+
parent: "gemini-2-flash",
340341
generation: "gemini-2",
341342
},
342343
{
343-
label: "gemini-2.5-flash",
344-
deployment: "models/gemini-2.5-flash-preview-04-17",
344+
label: "gemini-2.5-flash-preview-05-20",
345+
deployment: "publishers/google/models/gemini-2.5-flash-preview-05-20",
345346
developer: "Google",
346347
maxConcurrency: 10,
347-
provider: "gcp_vertex_ai",
348+
provider: "braintrust",
348349
authorized: true,
349350
parent: "gemini-2-flash",
350351
generation: "gemini-2",
351352
},
352353
{
353-
label: "gemini-2.0-flash-lite",
354-
deployment: "models/gemini-2.0-flash-lite-001",
354+
label: "gemini-2.0-flash-lite-001",
355+
deployment: "publishers/google/models/gemini-2.0-flash-lite-001",
355356
developer: "Google",
356357
maxConcurrency: 10,
357-
provider: "gcp_vertex_ai",
358+
provider: "braintrust",
358359
authorized: true,
359360
generation: "gemini-2",
360361
},
361362
{
362363
label: "gemini-2.5-pro-preview-03-25",
363-
deployment: "models/gemini-2.5-pro-preview-03-25",
364+
deployment: "publishers/google/models/gemini-2.5-pro-preview-03-25",
364365
developer: "Google",
365366
maxConcurrency: 5,
366-
provider: "gcp_vertex_ai",
367+
provider: "braintrust",
367368
authorized: true,
368369
parent: "gemini-1.5-pro-002",
369370
generation: "gemini-2",
370371
},
371372
{
372-
label: "gemini-1.0-pro-002",
373-
deployment: "google/gemini-1.0-pro-002",
374-
developer: "Google",
375-
provider: "gcp_vertex_ai",
376-
maxConcurrency: 1,
377-
authorized: true,
378-
generation: "gemini-1",
379-
},
380-
{
381-
label: "gemini-1.5-pro-002",
382-
deployment: "google/gemini-1.5-pro-002",
373+
label: "gemini-2.5-pro-preview-05-06",
374+
deployment: "publishers/google/models/gemini-2.5-pro-preview-05-06",
383375
developer: "Google",
384-
provider: "gcp_vertex_ai",
385-
maxConcurrency: 1,
376+
maxConcurrency: 5,
377+
provider: "braintrust",
386378
authorized: true,
387-
parent: "gemini-1.0-pro-002",
388-
generation: "gemini-1",
379+
parent: "gemini-1.5-pro-002",
380+
generation: "gemini-2",
389381
},
390382
{
391383
label: "deepseek-r1",

0 commit comments

Comments
 (0)