mirror of
https://github.com/sst/opencode.git
synced 2025-12-23 10:11:41 +00:00
core: refactor providerOptions function to accept Provider.Model for cleaner API
This commit is contained in:
parent
2206e10d92
commit
f8bd4ff705
4 changed files with 8 additions and 9 deletions
|
|
@ -273,8 +273,8 @@ export namespace ProviderTransform {
|
|||
return options
|
||||
}
|
||||
|
||||
export function providerOptions(npm: string | undefined, providerID: string, options: { [x: string]: any }) {
|
||||
switch (npm) {
|
||||
export function providerOptions(model: Provider.Model, options: { [x: string]: any }) {
|
||||
switch (model.api.npm) {
|
||||
case "@ai-sdk/openai":
|
||||
case "@ai-sdk/azure":
|
||||
return {
|
||||
|
|
@ -302,7 +302,7 @@ export namespace ProviderTransform {
|
|||
}
|
||||
default:
|
||||
return {
|
||||
[providerID]: options,
|
||||
[model.providerID]: options,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -140,8 +140,7 @@ export namespace SessionCompaction {
|
|||
// set to 0, we handle loop
|
||||
maxRetries: 0,
|
||||
providerOptions: ProviderTransform.providerOptions(
|
||||
model.api.npm,
|
||||
model.providerID,
|
||||
model,
|
||||
pipe({}, mergeDeep(ProviderTransform.options(model, input.sessionID)), mergeDeep(model.options)),
|
||||
),
|
||||
headers: model.headers,
|
||||
|
|
|
|||
|
|
@ -562,7 +562,7 @@ export namespace SessionPrompt {
|
|||
OUTPUT_TOKEN_MAX,
|
||||
),
|
||||
abortSignal: abort,
|
||||
providerOptions: ProviderTransform.providerOptions(model.api.npm, model.providerID, params.options),
|
||||
providerOptions: ProviderTransform.providerOptions(model, params.options),
|
||||
stopWhen: stepCountIs(1),
|
||||
temperature: params.temperature,
|
||||
topP: params.topP,
|
||||
|
|
@ -1458,7 +1458,7 @@ export namespace SessionPrompt {
|
|||
await generateText({
|
||||
// use higher # for reasoning models since reasoning tokens eat up a lot of the budget
|
||||
maxOutputTokens: small.capabilities.reasoning ? 3000 : 20,
|
||||
providerOptions: ProviderTransform.providerOptions(small.api.npm, small.providerID, options),
|
||||
providerOptions: ProviderTransform.providerOptions(small, options),
|
||||
messages: [
|
||||
...SystemPrompt.title(small.providerID).map(
|
||||
(x): ModelMessage => ({
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ export namespace SessionSummary {
|
|||
if (textPart && !userMsg.summary?.title) {
|
||||
const result = await generateText({
|
||||
maxOutputTokens: small.capabilities.reasoning ? 1500 : 20,
|
||||
providerOptions: ProviderTransform.providerOptions(small.api.npm, small.providerID, options),
|
||||
providerOptions: ProviderTransform.providerOptions(small, options),
|
||||
messages: [
|
||||
...SystemPrompt.title(small.providerID).map(
|
||||
(x): ModelMessage => ({
|
||||
|
|
@ -138,7 +138,7 @@ export namespace SessionSummary {
|
|||
const result = await generateText({
|
||||
model: language,
|
||||
maxOutputTokens: 100,
|
||||
providerOptions: ProviderTransform.providerOptions(small.api.npm, small.providerID, options),
|
||||
providerOptions: ProviderTransform.providerOptions(small, options),
|
||||
messages: [
|
||||
...SystemPrompt.summarize(small.providerID).map(
|
||||
(x): ModelMessage => ({
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue