Vertex AI offers seven additional model providers through the Model-as-a-Service (MaaS) offering. All use the OpenAI-compatible schema with the :chatCompletions or :rawPredict endpoint.
Available providers
DeepSeek Chinese AI lab known for reasoning models
AI21 Labs Jamba models with long context windows
Kimi (Moonshot AI) Chinese AI lab with instruction-tuned models
MiniMax Chinese AI company with multimodal models
OpenAI OSS Open-source models compatible with OpenAI format
Qwen (Alibaba) Alibaba’s Qwen model family
ZAI (Zhipu AI) GLM models from Zhipu AI
Provider constants
use Prism\Vertex\Enums\ Vertex ;
Vertex :: DeepSeek // 'vertex-deepseek'
Vertex :: AI21 // 'vertex-ai21'
Vertex :: Kimi // 'vertex-kimi'
Vertex :: MiniMax // 'vertex-minimax'
Vertex :: OpenAI // 'vertex-openai'
Vertex :: Qwen // 'vertex-qwen'
Vertex :: ZAI // 'vertex-zai'
Configuration
All providers use the shared vertex configuration block:
'vertex' => [
'project_id' => env ( 'VERTEX_PROJECT_ID' ),
'location' => env ( 'VERTEX_LOCATION' , 'us-central1' ),
'credentials' => env ( 'VERTEX_CREDENTIALS' ), // path to service-account.json
],
Express mode is not supported for these providers. You must provide a project ID and location.
API schema
All providers use the OpenAI schema :
Provider Publisher Endpoint Model in Body DeepSeek deepseek:chatCompletionsYes AI21 ai21:rawPredictNo Kimi kimi:chatCompletionsYes MiniMax minimax:chatCompletionsYes OpenAI OSS openai:chatCompletionsYes Qwen qwen:chatCompletionsYes ZAI zaiorg:chatCompletionsYes
Providers using :chatCompletions include the model in the request body as {publisher}/{model}. Prism Vertex handles this automatically.
Example models
DeepSeek
AI21
Kimi
MiniMax
OpenAI OSS
Qwen
ZAI
deepseek-v3-0324-maas
deepseek-v3.1-maas
jamba-1.5-mini@001
jamba-1.5-large@001
qwen2.5-72b-instruct-maas
Usage examples
DeepSeek
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: DeepSeek , 'deepseek-v3-0324-maas' )
-> withPrompt ( 'Explain quantum computing in simple terms' )
-> asText ();
echo $response -> text ;
AI21 Jamba
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: AI21 , 'jamba-1.5-large@001' )
-> withPrompt ( 'Summarize this long document...' )
-> asText ();
echo $response -> text ;
Kimi
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: Kimi , 'kimi-k2-0711-maas' )
-> withPrompt ( 'Write a product description' )
-> asText ();
echo $response -> text ;
MiniMax
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: MiniMax , 'minimax-m1-40k-0709-maas' )
-> withPrompt ( 'Generate creative content' )
-> asText ();
echo $response -> text ;
OpenAI OSS
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: OpenAI , 'gpt-oss-4o-mini-maas' )
-> withPrompt ( 'Answer this question' )
-> asText ();
echo $response -> text ;
Qwen
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: Qwen , 'qwen2.5-72b-instruct-maas' )
-> withPrompt ( 'Translate this text' )
-> asText ();
echo $response -> text ;
ZAI (Zhipu AI)
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
$response = Prism :: text ()
-> using ( Vertex :: ZAI , 'glm-4-plus-maas' )
-> withPrompt ( 'Generate a response' )
-> asText ();
echo $response -> text ;
Structured output
All providers support structured output via response_format: { type: "json_object" } combined with a schema instruction:
use Prism\Prism\ Prism ;
use Prism\Vertex\Enums\ Vertex ;
use Prism\Prism\Schema\ ObjectSchema ;
use Prism\Prism\Schema\ StringSchema ;
$schema = new ObjectSchema (
name : 'person' ,
description : 'Person details' ,
properties : [
new StringSchema ( 'name' , 'Full name' ),
new StringSchema ( 'occupation' , 'Job title' ),
]
);
$response = Prism :: structured ()
-> using ( Vertex :: DeepSeek , 'deepseek-v3-0324-maas' )
-> withSchema ( $schema )
-> withPrompt ( 'Extract person details from: John Smith is a software engineer' )
-> asStructured ();
$data = $response -> structured ;
Custom JSON instruction
You can customize the JSON schema instruction for any provider:
$response = Prism :: structured ()
-> using ( Vertex :: Qwen , 'qwen2.5-72b-instruct-maas' )
-> withSchema ( $schema )
-> withProviderOptions ([
'jsonModeMessage' => 'Return JSON matching this schema: {schema}' ,
])
-> withPrompt ( 'Your prompt here' )
-> asStructured ();
Capabilities
All providers support:
Text generation Full support for text generation with multi-turn conversations
Structured output Structured output via JSON mode with schema instruction
Limitations
No native embeddings support
Requires Standard mode (project ID + location)
Structured output relies on JSON mode + prompt instruction
Model availability may vary by region
Next steps
Structured output Learn more about structured output
Configuration See all configuration options