fix: keep multimodal agent model for detail planning
This commit is contained in:
parent
7df5528056
commit
c5abfaf974
@ -5,11 +5,26 @@ import {
|
||||
getAgentAiModelWithProvider,
|
||||
getEnabledAiModelsWithProvider,
|
||||
} from "@/lib/db/queries";
|
||||
import { isAiModelMultimodal } from "@/lib/db/ai-model-flags";
|
||||
import { getLanguageModelById } from "@/lib/ai/dynamic-provider";
|
||||
|
||||
export const runtime = "nodejs";
|
||||
export const maxDuration = 60;
|
||||
|
||||
function supportsVisionPlanning(model: {
|
||||
supportsVision?: boolean | null;
|
||||
capabilities?: unknown;
|
||||
defaultParams?: unknown;
|
||||
}) {
|
||||
return (
|
||||
Boolean(model.supportsVision) ||
|
||||
isAiModelMultimodal({
|
||||
capabilities: model.capabilities,
|
||||
defaultParams: model.defaultParams,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
type DetailPlanRequest = {
|
||||
prompt?: string;
|
||||
count?: number;
|
||||
@ -738,8 +753,8 @@ export async function POST(request: Request) {
|
||||
let plannerConfig = preferredAgentConfig;
|
||||
|
||||
if (referenceImages.length > 0) {
|
||||
if (!plannerConfig?.model.supportsVision) {
|
||||
plannerConfig = reasoningCompatible.find((item) => item.model.supportsVision);
|
||||
if (!plannerConfig || !supportsVisionPlanning(plannerConfig.model)) {
|
||||
plannerConfig = reasoningCompatible.find((item) => supportsVisionPlanning(item.model));
|
||||
}
|
||||
}
|
||||
if (!plannerConfig) {
|
||||
@ -750,6 +765,19 @@ export async function POST(request: Request) {
|
||||
return NextResponse.json({ success: true, data: fallback });
|
||||
}
|
||||
|
||||
console.log("[Canvas Detail Plan] Planner model selected:", {
|
||||
id: plannerConfig.model.id,
|
||||
displayName: plannerConfig.model.displayName,
|
||||
modelId: plannerConfig.model.modelId,
|
||||
providerType: plannerConfig.provider.type,
|
||||
supportsVision: plannerConfig.model.supportsVision,
|
||||
multimodalFlag: isAiModelMultimodal({
|
||||
capabilities: plannerConfig.model.capabilities,
|
||||
defaultParams: plannerConfig.model.defaultParams,
|
||||
}),
|
||||
hasReferenceImages: referenceImages.length > 0,
|
||||
});
|
||||
|
||||
const model = await getLanguageModelById(plannerConfig.model.id);
|
||||
if (!model) {
|
||||
return NextResponse.json({ success: true, data: fallback });
|
||||
@ -776,7 +804,7 @@ export async function POST(request: Request) {
|
||||
.join("\n");
|
||||
|
||||
const imageInputs =
|
||||
plannerConfig.model.supportsVision && referenceImages.length > 0
|
||||
supportsVisionPlanning(plannerConfig.model) && referenceImages.length > 0
|
||||
? referenceImages.map((url) => ({ type: "image" as const, image: url }))
|
||||
: [];
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user