我使用 Firebase Genkit 创建了一个云函数来生成图像中项目的描述,但 90% 的情况下它会抛出此错误:
FAILED_PRECONDITION:生成导致没有与提供的输出模式匹配的候选者。
我的架构如下所示:
const InventoryItem = z.object({
name: z.string().describe("the name of the item"),
description: z
.string()
.describe("a brief description of the item"),
funFact: z.string().optional().describe("a fun fact about the item"),
});
我的流程如下:
export const identifyItemFromUrl = onFlow(
{
name: "identifyItemFromUrl",
inputSchema: z.string().url(),
outputSchema: InventoryItem,
authPolicy: noAuth(),
},
async (url) => {
const prompt =
"Identify this item.";
const llmResponse = await generate({
model: gemini15Pro,
prompt: [
{ text: prompt },
{
media: {
url: url,
contentType: "image/jpeg",
},
},
],
output: { schema: InventoryItem },
});
return llmResponse.output()!;
}
);
generate
方法如何运作?它是否只是随机创建响应直到它们与模式匹配?有什么办法可以让输出更可靠吗?
您尝试过降低温度吗?也许是0.2。我也有同样的问题。