Skip to content

Commit bccbbb2

Browse files
committed
fix(server): check text generation fallbacks against the model they would use
1 parent e89c4fa commit bccbbb2

2 files changed

Lines changed: 15 additions & 10 deletions

File tree

‎apps/server/src/textGeneration/TextGeneration.ts‎

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ import type { ModelSelection, ProviderInstanceId } from "@t3tools/contracts";
55
import { isProviderAvailable, isProviderTextGenerationCapable } from "@t3tools/contracts";
66
import * as DateTime from "effect/DateTime";
77
import { exhaustedUsageWindow } from "@t3tools/shared/usageLimits";
8-
import { fallbackTextGenerationModelSelection } from "@t3tools/shared/serverSettings";
8+
import {
9+
defaultTextGenerationModel,
10+
fallbackTextGenerationModelSelection,
11+
} from "@t3tools/shared/serverSettings";
912
import * as ServerSettings from "../serverSettings.ts";
1013
import type { ProviderTextGeneration } from "@t3tools/provider-core/server/textGeneration";
1114
import { TextGenerationError } from "@t3tools/contracts";
@@ -98,7 +101,7 @@ export const make = Effect.gen(function* () {
98101
);
99102
const fallback = fallbackTextGenerationModelSelection(
100103
settings.providerInstances,
101-
(instanceId) => {
104+
(instanceId, driver) => {
102105
const provider = snapshots.find((candidate) => candidate.instanceId === instanceId);
103106
return (
104107
instanceId !== selection.instanceId &&
@@ -107,7 +110,7 @@ export const make = Effect.gen(function* () {
107110
provider.auth.status !== "unauthenticated" &&
108111
isProviderAvailable(provider) &&
109112
isProviderTextGenerationCapable(provider) &&
110-
!exhaustedUsageWindow(provider, now)
113+
!exhaustedUsageWindow(provider, now, defaultTextGenerationModel(driver))
111114
);
112115
},
113116
{

‎packages/shared/src/serverSettings.ts‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,15 @@ export function fallbackTextGenerationModelSelection(
125125
) {
126126
return threadDefault;
127127
}
128-
return {
129-
instanceId,
130-
model:
131-
DEFAULT_TEXT_GENERATION_MODEL_BY_PROVIDER[driver] ??
132-
DEFAULT_MODEL_BY_PROVIDER[driver] ??
133-
DEFAULT_TEXT_GENERATION_MODEL,
134-
};
128+
return { instanceId, model: defaultTextGenerationModel(driver) };
129+
}
130+
131+
export function defaultTextGenerationModel(driver: ProviderDriverKind): string {
132+
return (
133+
DEFAULT_TEXT_GENERATION_MODEL_BY_PROVIDER[driver] ??
134+
DEFAULT_MODEL_BY_PROVIDER[driver] ??
135+
DEFAULT_TEXT_GENERATION_MODEL
136+
);
135137
}
136138

137139
export function resolveSourceControlWriterModelSelection(

0 commit comments

Comments
 (0)