mirror of
https://github.com/tiennm99/litellm.git
synced 2026-07-12 21:04:10 +00:00
f3e2167730
* test(pass-through): move Gemini pass-through tests to gemini-3.1-flash-lite gemini-2.5-flash-lite is a generation behind and is slated for discontinuation on Vertex AI no earlier than October 16, 2026, so the pass-through suite was exercising an aging model. Every reference now points at gemini-3.1-flash-lite, which is GA and already priced in the cost map so the spend-logging assertions still compute a real cost test_vertex.test.js also gains jest.retryTimes(3) to match the sibling spend tests. The CI failures were intermittent 429 RESOURCE_EXHAUSTED from Vertex quota pressure, and that file was the only one without a retry, so a single rate-limited request was failing the whole job * test(pass-through): point Vertex tests at the global endpoint for gemini-3.1-flash-lite gemini-3.1-flash-lite is not served on the Vertex us-central1 regional endpoint for the CI project, so the Vertex pass-through tests were returning a deterministic 404 "Publisher Model ... was not found or your project does not have access to it" while the Gemini API tests passed. Move the Vertex clients to the global location, which the pass-through router maps to aiplatform.googleapis.com, where the 3.1 family is served
43 lines
1.2 KiB
JavaScript
43 lines
1.2 KiB
JavaScript
const { VertexAI, RequestOptions } = require('@google-cloud/vertexai');
|
|
|
|
|
|
|
|
const vertexAI = new VertexAI({
|
|
project: 'litellm-ci-cd',
|
|
location: 'global',
|
|
apiEndpoint: "127.0.0.1:4000/vertex-ai"
|
|
});
|
|
|
|
// Create customHeaders using Headers
|
|
const customHeaders = new Headers({
|
|
"X-Litellm-Api-Key": "sk-1234",
|
|
tags: "vertexjs,test-2"
|
|
});
|
|
|
|
// Use customHeaders in RequestOptions
|
|
const requestOptions = {
|
|
customHeaders: customHeaders,
|
|
};
|
|
|
|
const generativeModel = vertexAI.getGenerativeModel(
|
|
{ model: 'gemini-3.1-flash-lite' },
|
|
requestOptions
|
|
);
|
|
|
|
async function testModel() {
|
|
try {
|
|
const request = {
|
|
contents: [{role: 'user', parts: [{text: 'How are you doing today tell me your name?'}]}],
|
|
};
|
|
const streamingResult = await generativeModel.generateContentStream(request);
|
|
for await (const item of streamingResult.stream) {
|
|
console.log('stream chunk: ', JSON.stringify(item));
|
|
}
|
|
const aggregatedResponse = await streamingResult.response;
|
|
console.log('aggregated response: ', JSON.stringify(aggregatedResponse));
|
|
} catch (error) {
|
|
console.error('Error:', error);
|
|
}
|
|
}
|
|
|
|
testModel(); |