Skip to content

Commit 6995aba

Browse files
authored
fix(stage-ui): auto fallback with LLM model listing when validating (#643)
1 parent e700a60 commit 6995aba

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

packages/stage-ui/src/stores/providers/openai-compatible-builder.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,25 @@ export function buildOpenAICompatibleProvider(
110110
}
111111

112112
const validationChecks = validation || []
113+
114+
// Auto-detect first available model for validation
115+
let model = 'test' // fallback to `test` if fails
116+
try {
117+
const models = await listModels({
118+
apiKey,
119+
baseURL: baseUrl,
120+
headers: {
121+
...additionalHeaders,
122+
Authorization: `Bearer ${apiKey}`,
123+
},
124+
})
125+
if (models && models.length > 0)
126+
model = models[0].id
127+
}
128+
catch (e) {
129+
console.warn(`Model auto-detection failed: ${(e as Error).message}`)
130+
}
131+
113132

114133
// Health check = try generating text (was: fetch(`${baseUrl}chat/completions`))
115134
if (validationChecks.includes('health')) {
@@ -121,7 +140,7 @@ export function buildOpenAICompatibleProvider(
121140
...additionalHeaders,
122141
Authorization: `Bearer ${apiKey}`,
123142
},
124-
model: 'test',
143+
model: model,
125144
messages: message.messages(message.user('ping')),
126145
max_tokens: 1,
127146
})
@@ -161,7 +180,7 @@ export function buildOpenAICompatibleProvider(
161180
...additionalHeaders,
162181
Authorization: `Bearer ${apiKey}`,
163182
},
164-
model: 'test',
183+
model: model,
165184
messages: message.messages(message.user('ping')),
166185
max_tokens: 1,
167186
})

0 commit comments

Comments
 (0)