Files
bifrost/core/providers/vertex/vertex_test.go
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

82 lines
2.9 KiB
Go

package vertex_test
import (
"os"
"strings"
"testing"
"github.com/maximhq/bifrost/core/internal/llmtests"
"github.com/maximhq/bifrost/core/schemas"
)
func TestVertex(t *testing.T) {
t.Parallel()
if strings.TrimSpace(os.Getenv("VERTEX_API_KEY")) == "" && (strings.TrimSpace(os.Getenv("VERTEX_PROJECT_ID")) == "" || strings.TrimSpace(os.Getenv("VERTEX_CREDENTIALS")) == "") {
t.Skip("Skipping Vertex tests because VERTEX_API_KEY is not set and VERTEX_PROJECT_ID or VERTEX_CREDENTIALS is not set")
}
client, ctx, cancel, err := llmtests.SetupTest()
if err != nil {
t.Fatalf("Error initializing test setup: %v", err)
}
defer cancel()
defer client.Shutdown()
rerankModel := strings.TrimSpace(os.Getenv("VERTEX_RERANK_MODEL"))
testConfig := llmtests.ComprehensiveTestConfig{
Provider: schemas.Vertex,
ChatModel: "gemini-2.5-pro",
PromptCachingModel: "claude-sonnet-4-5",
VisionModel: "claude-sonnet-4-5",
TextModel: "", // Vertex doesn't support text completion in newer models
EmbeddingModel: "text-multilingual-embedding-002",
RerankModel: rerankModel,
ReasoningModel: "claude-4.5-haiku",
ImageGenerationModel: "gemini-2.5-flash-image",
ImageEditModel: "imagen-3.0-capability-001",
VideoGenerationModel: "veo-3.1-generate-preview",
Scenarios: llmtests.TestScenarios{
TextCompletion: false, // Not supported
SimpleChat: true,
CompletionStream: true,
MultiTurnConversation: true,
ToolCalls: true,
ToolCallsStreaming: true,
MultipleToolCalls: true,
MultipleToolCallsStreaming: true,
End2EndToolCalling: true,
AutomaticFunctionCall: true,
ImageURL: false,
ImageBase64: true,
ImageGeneration: true,
ImageGenerationStream: false,
ImageEdit: true,
VideoGeneration: false, // disabled for now because of long running operations
VideoRetrieve: false,
VideoRemix: false,
VideoDownload: false,
VideoList: false,
VideoDelete: false,
MultipleImages: true,
CompleteEnd2End: true,
FileBase64: true,
Embedding: true,
Rerank: rerankModel != "",
Reasoning: true,
PromptCaching: true,
ListModels: false,
CountTokens: true,
StructuredOutputs: true, // Structured outputs with nullable enum support
InterleavedThinking: true,
EagerInputStreaming: true, // fine-grained-tool-streaming-2025-05-14 (GA on Vertex)
ServerToolsViaOpenAIEndpoint: true, // web_search only on Vertex per Table 20 (web_fetch/code_execution skip)
},
}
t.Run("VertexTests", func(t *testing.T) {
llmtests.RunAllComprehensiveTests(t, client, ctx, testConfig)
})
}