Skip to content

Commit 48b5142

Browse files
Merge pull request #114 from dprince/lcore-migration-gemini
Add support for gemini
2 parents c60a659 + 77c43b2 commit 48b5142

4 files changed

Lines changed: 12 additions & 6 deletions

File tree

api/v1beta1/openstacklightspeed_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ type OpenStackLightspeedCore struct {
155155
LLMEndpoint string `json:"llmEndpoint"`
156156

157157
// +kubebuilder:validation:Required
158-
// +kubebuilder:validation:Enum=azure_openai;bam;openai;watsonx;rhoai_vllm;rhelai_vllm;fake_provider
158+
// +kubebuilder:validation:Enum=azure_openai;bam;openai;watsonx;rhoai_vllm;rhelai_vllm;fake_provider;gemini
159159
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Provider Type"
160160
// Type of the provider serving the LLM
161161
LLMEndpointType string `json:"llmEndpointType"`

bundle/manifests/lightspeed.openstack.org_openstacklightspeeds.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ spec:
109109
- rhoai_vllm
110110
- rhelai_vllm
111111
- fake_provider
112+
- gemini
112113
type: string
113114
llmProjectID:
114115
description: Project ID for LLM providers that require it (e.g., WatsonX)

config/crd/bases/lightspeed.openstack.org_openstacklightspeeds.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ spec:
109109
- rhoai_vllm
110110
- rhelai_vllm
111111
- fake_provider
112+
- gemini
112113
type: string
113114
llmProjectID:
114115
description: Project ID for LLM providers that require it (e.g., WatsonX)

internal/controller/llama_stack_config.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,16 +122,20 @@ func buildLlamaStackInferenceProviders(_ *common_helper.Helper, _ context.Contex
122122

123123
// Map provider types to Llama Stack provider types
124124
switch provider.Type {
125-
case "openai", "rhoai_vllm", "rhelai_vllm":
125+
case "openai", "gemini", "rhoai_vllm", "rhelai_vllm":
126126
config := map[string]interface{}{}
127127
// Determine the appropriate Llama Stack provider type:
128128
// - OpenAI uses remote::openai
129129
// - vLLM uses remote::vllm
130130
var apiKeyField string
131-
if provider.Type == "openai" {
131+
switch provider.Type {
132+
case "openai":
132133
providerConfig["provider_type"] = "remote::openai"
133134
apiKeyField = "api_key"
134-
} else {
135+
case "gemini":
136+
providerConfig["provider_type"] = "remote::gemini"
137+
apiKeyField = "api_key"
138+
default:
135139
providerConfig["provider_type"] = "remote::vllm"
136140
apiKeyField = "api_token"
137141
}
@@ -173,11 +177,11 @@ func buildLlamaStackInferenceProviders(_ *common_helper.Helper, _ context.Contex
173177
case "watsonx", "bam":
174178
// These providers are not supported by Llama Stack
175179
// They are handled directly by lightspeed-stack (LCS), not Llama Stack
176-
return nil, fmt.Errorf("provider type '%s' (provider '%s') is not currently supported by Llama Stack. Supported types: openai, azure_openai, rhoai_vllm, rhelai_vllm", provider.Type, provider.Name)
180+
return nil, fmt.Errorf("provider type '%s' (provider '%s') is not currently supported by Llama Stack. Supported types: openai, gemini, azure_openai, rhoai_vllm, rhelai_vllm", provider.Type, provider.Name)
177181

178182
default:
179183
// Unknown provider type
180-
return nil, fmt.Errorf("unknown provider type '%s' (provider '%s'). Supported types: openai, azure_openai, rhoai_vllm, rhelai_vllm", provider.Type, provider.Name)
184+
return nil, fmt.Errorf("unknown provider type '%s' (provider '%s'). Supported types: openai, gemini, azure_openai, rhoai_vllm, rhelai_vllm", provider.Type, provider.Name)
181185
}
182186

183187
providers = append(providers, providerConfig)

0 commit comments

Comments
 (0)