mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-22 02:04:22 +01:00
fix: provider option transforms (#3331)
This commit is contained in:
@@ -105,6 +105,24 @@ export namespace ProviderTransform {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function providerOptions(npm: string | undefined, providerID: string, options: { [x: string]: any }) {
|
||||||
|
switch (npm) {
|
||||||
|
case "@ai-sdk/openai":
|
||||||
|
case "@ai-sdk/azure":
|
||||||
|
return {
|
||||||
|
["openai" as string]: options,
|
||||||
|
}
|
||||||
|
case "@ai-sdk/anthropic":
|
||||||
|
return {
|
||||||
|
["anthropic" as string]: options,
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return {
|
||||||
|
[providerID]: options,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function maxOutputTokens(
|
export function maxOutputTokens(
|
||||||
providerID: string,
|
providerID: string,
|
||||||
options: Record<string, any>,
|
options: Record<string, any>,
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import { Token } from "../util/token"
|
|||||||
import { Log } from "../util/log"
|
import { Log } from "../util/log"
|
||||||
import { SessionLock } from "./lock"
|
import { SessionLock } from "./lock"
|
||||||
import { NamedError } from "../util/error"
|
import { NamedError } from "../util/error"
|
||||||
|
import { ProviderTransform } from "@/provider/transform"
|
||||||
|
|
||||||
export namespace SessionCompaction {
|
export namespace SessionCompaction {
|
||||||
const log = Log.create({ service: "session.compaction" })
|
const log = Log.create({ service: "session.compaction" })
|
||||||
@@ -143,9 +144,7 @@ export namespace SessionCompaction {
|
|||||||
const stream = streamText({
|
const stream = streamText({
|
||||||
maxRetries: 10,
|
maxRetries: 10,
|
||||||
model: model.language,
|
model: model.language,
|
||||||
providerOptions: {
|
providerOptions: ProviderTransform.providerOptions(model.npm, model.providerID, model.info.options),
|
||||||
[model.npm === "@ai-sdk/openai" ? "openai" : model.providerID]: model.info.options,
|
|
||||||
},
|
|
||||||
abortSignal: signal,
|
abortSignal: signal,
|
||||||
onError(error) {
|
onError(error) {
|
||||||
log.error("stream error", {
|
log.error("stream error", {
|
||||||
|
|||||||
@@ -282,10 +282,7 @@ export namespace SessionPrompt {
|
|||||||
OUTPUT_TOKEN_MAX,
|
OUTPUT_TOKEN_MAX,
|
||||||
),
|
),
|
||||||
abortSignal: abort.signal,
|
abortSignal: abort.signal,
|
||||||
providerOptions: {
|
providerOptions: ProviderTransform.providerOptions(model.npm, model.providerID, params.options),
|
||||||
[model.npm === "@ai-sdk/openai" || model.npm === "@ai-sdk/azure" ? "openai" : model.providerID]:
|
|
||||||
params.options,
|
|
||||||
},
|
|
||||||
stopWhen: stepCountIs(1),
|
stopWhen: stepCountIs(1),
|
||||||
temperature: params.temperature,
|
temperature: params.temperature,
|
||||||
topP: params.topP,
|
topP: params.topP,
|
||||||
@@ -1822,9 +1819,7 @@ export namespace SessionPrompt {
|
|||||||
}
|
}
|
||||||
generateText({
|
generateText({
|
||||||
maxOutputTokens: small.info.reasoning ? 1500 : 20,
|
maxOutputTokens: small.info.reasoning ? 1500 : 20,
|
||||||
providerOptions: {
|
providerOptions: ProviderTransform.providerOptions(small.npm, small.providerID, options),
|
||||||
[small.providerID]: options,
|
|
||||||
},
|
|
||||||
messages: [
|
messages: [
|
||||||
...SystemPrompt.title(small.providerID).map(
|
...SystemPrompt.title(small.providerID).map(
|
||||||
(x): ModelMessage => ({
|
(x): ModelMessage => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user