feat(frontend): add structured gemini API request/response logging

This commit is contained in:
2026-06-03 16:10:48 -07:00
parent 9d3aef33e8
commit a1650abe06

View File

@@ -128,12 +128,33 @@ export async function callGeminiChat(opts: {
const fns = toGeminiFunctions(opts.tools ?? []);
if (fns) config.tools = fns;
console.log("\n========================================================");
console.log("➡️ [GEMINI API REQUEST]");
console.log("========================================================");
console.log(
`System Prompt: ${typeof config.systemInstruction === "string" ? config.systemInstruction.slice(0, 1000) + "..." : "None"}`,
);
console.log(
"Contents Payload:",
JSON.stringify(toGeminiContents(opts.messages), null, 2),
);
console.log("========================================================\n");
const response = await ai.models.generateContent({
model: GEMINI_MODEL,
contents: toGeminiContents(opts.messages),
config,
});
console.log("\n========================================================");
console.log("⬅️ [GEMINI API RESPONSE]");
console.log("========================================================");
console.log(
"Raw Candidates:",
JSON.stringify(response.candidates, null, 2),
);
console.log("========================================================\n");
console.log(
"[GeminiChat] Raw Response:",
JSON.stringify(response, null, 2),
@@ -218,6 +239,18 @@ export async function* streamGeminiChat(opts: {
const fns = toGeminiFunctions(opts.tools ?? []);
if (fns) config.tools = fns;
console.log("\n========================================================");
console.log("➡️ [GEMINI STREAM REQUEST]");
console.log("========================================================");
console.log(
`System Prompt: ${typeof config.systemInstruction === "string" ? config.systemInstruction.slice(0, 1000) + "..." : "None"}`,
);
console.log(
"Contents Payload:",
JSON.stringify(toGeminiContents(opts.messages), null, 2),
);
console.log("========================================================\n");
const streamResult = await ai.models.generateContentStream({
model: GEMINI_MODEL,
contents: toGeminiContents(opts.messages),