fix: use agent avatar for auto mode and hide selector in agent mode
This commit is contained in:
parent
9cb6a779c3
commit
afd231dde0
@ -3,7 +3,6 @@ import {
|
||||
getAgentAiModelWithProvider,
|
||||
getDefaultAiModel,
|
||||
getEnabledAiModelsWithProvider,
|
||||
getSiteSettings,
|
||||
} from "@/lib/db/queries";
|
||||
import { ChatSDKError } from "@/lib/errors";
|
||||
import { isAiModelAgentAuto } from "@/lib/db/ai-model-flags";
|
||||
@ -34,7 +33,6 @@ export async function GET() {
|
||||
const modelsWithProvider = await getEnabledAiModelsWithProvider(false);
|
||||
const agentModelWithProvider = await getAgentAiModelWithProvider();
|
||||
const defaultModel = await getDefaultAiModel();
|
||||
const siteSettings = await getSiteSettings();
|
||||
const visibleModelsWithProvider = sortModelsForDisplay(
|
||||
modelsWithProvider
|
||||
.filter(({ model }) => !isAiModelAgentAuto(model))
|
||||
@ -68,32 +66,6 @@ export async function GET() {
|
||||
sortOrder: model.sortOrder ?? 0,
|
||||
}));
|
||||
|
||||
// Agent 模式在前端展示头像/参数时,优先使用“Agent模式 - 默认生图模型”的配置
|
||||
// 避免展示成分析模型(如视觉模型)的头像,导致与管理员设置不一致
|
||||
const imageGenModelsWithProvider = visibleModelsWithProviderSorted.filter(
|
||||
({ model }) => model.supportsImageGen
|
||||
);
|
||||
const configuredAutoImageModelId =
|
||||
typeof siteSettings?.canvasAutoModeDefaultModelId === "string"
|
||||
? siteSettings.canvasAutoModeDefaultModelId.trim()
|
||||
: "";
|
||||
const configuredAutoImageModel = configuredAutoImageModelId
|
||||
? imageGenModelsWithProvider.find(
|
||||
({ model }) => model.id === configuredAutoImageModelId
|
||||
)
|
||||
: undefined;
|
||||
const defaultImageGenModel =
|
||||
(defaultModel &&
|
||||
!isAiModelAgentAuto(defaultModel) &&
|
||||
defaultModel.supportsImageGen
|
||||
? imageGenModelsWithProvider.find(({ model }) => model.id === defaultModel.id)
|
||||
: undefined) || imageGenModelsWithProvider[0];
|
||||
const agentDisplayModelWithProvider =
|
||||
configuredAutoImageModel ||
|
||||
defaultImageGenModel ||
|
||||
agentModelWithProvider ||
|
||||
null;
|
||||
|
||||
const resolvedDefaultModelId =
|
||||
(defaultModel &&
|
||||
!isAiModelAgentAuto(defaultModel) &&
|
||||
@ -106,13 +78,13 @@ export async function GET() {
|
||||
return Response.json({
|
||||
models,
|
||||
defaultModelId: resolvedDefaultModelId,
|
||||
agentModel: agentDisplayModelWithProvider
|
||||
agentModel: agentModelWithProvider
|
||||
? {
|
||||
id: agentDisplayModelWithProvider.model.id,
|
||||
displayName: agentDisplayModelWithProvider.model.displayName,
|
||||
avatarUrl: agentDisplayModelWithProvider.model.avatarUrl,
|
||||
providerType: agentDisplayModelWithProvider.provider.type,
|
||||
imageGenConfig: agentDisplayModelWithProvider.model.imageGenConfig,
|
||||
id: agentModelWithProvider.model.id,
|
||||
displayName: agentModelWithProvider.model.displayName,
|
||||
avatarUrl: agentModelWithProvider.model.avatarUrl,
|
||||
providerType: agentModelWithProvider.provider.type,
|
||||
imageGenConfig: agentModelWithProvider.model.imageGenConfig,
|
||||
}
|
||||
: null,
|
||||
});
|
||||
|
||||
@ -5386,32 +5386,34 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
|
||||
</div>
|
||||
|
||||
<div className="flex items-center gap-2 flex-shrink-0">
|
||||
<Select
|
||||
value={modelSelectValue}
|
||||
onValueChange={(value) => {
|
||||
setSelectedModelId(value);
|
||||
if (value !== "auto" || !aiDetailGenerationEnabled) {
|
||||
setIsDetailGenerationMode(false);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger className="h-8 w-8 rounded-full border border-[#cfd4dc] bg-white p-0 justify-center [&>svg]:hidden">
|
||||
<span className="h-6 w-6 overflow-hidden rounded-full bg-white flex items-center justify-center">
|
||||
{selectDisplayModel?.avatarUrl ? (
|
||||
<img
|
||||
src={selectDisplayModel.avatarUrl}
|
||||
alt={selectDisplayModel.displayName || "模型头像"}
|
||||
className="h-full w-full object-cover"
|
||||
/>
|
||||
) : (
|
||||
<span className="flex h-full w-full items-center justify-center text-[10px] font-medium text-[#4b5563]">
|
||||
{(selectDisplayModel?.displayName || "A").slice(0, 1)}
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
</SelectTrigger>
|
||||
{renderModelSelectContent()}
|
||||
</Select>
|
||||
{activeComposerMode !== "agent" ? (
|
||||
<Select
|
||||
value={modelSelectValue}
|
||||
onValueChange={(value) => {
|
||||
setSelectedModelId(value);
|
||||
if (value !== "auto" || !aiDetailGenerationEnabled) {
|
||||
setIsDetailGenerationMode(false);
|
||||
}
|
||||
}}
|
||||
>
|
||||
<SelectTrigger className="h-8 w-8 rounded-full border border-[#cfd4dc] bg-white p-0 justify-center [&>svg]:hidden">
|
||||
<span className="h-6 w-6 overflow-hidden rounded-full bg-white flex items-center justify-center">
|
||||
{selectDisplayModel?.avatarUrl ? (
|
||||
<img
|
||||
src={selectDisplayModel.avatarUrl}
|
||||
alt={selectDisplayModel.displayName || "模型头像"}
|
||||
className="h-full w-full object-cover"
|
||||
/>
|
||||
) : (
|
||||
<span className="flex h-full w-full items-center justify-center text-[10px] font-medium text-[#4b5563]">
|
||||
{(selectDisplayModel?.displayName || "A").slice(0, 1)}
|
||||
</span>
|
||||
)}
|
||||
</span>
|
||||
</SelectTrigger>
|
||||
{renderModelSelectContent()}
|
||||
</Select>
|
||||
) : null}
|
||||
|
||||
<Button
|
||||
size="icon"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user