Vercel ai gateway (#7)

* feat: use vercel ai gateway

* chore: update UI
This commit is contained in:
2025-10-11 12:15:30 +02:00
committed by GitHub
parent ff84b75847
commit 7c9635ba83
14 changed files with 2348 additions and 1809 deletions

54
utils/aiGatewayClient.ts Normal file
View File

@@ -0,0 +1,54 @@
import { generateText } from 'ai';
interface AiGatewayResponse {
text: string;
tokensUsed: number;
}
export async function queryAiGateway(
text: string,
model: string
): Promise<AiGatewayResponse> {
const requestId = Math.random().toString(36).substring(7);
const startTime = Date.now();
console.info(`[AI-${requestId}] Starting Vercel Gateway AI request`, {
promptLength: text.length,
model,
timestamp: new Date().toISOString()
});
try {
const response = await generateText({
model,
prompt: text
});
const duration = Date.now() - startTime;
const tokensUsed = response.usage?.totalTokens || 0;
console.info(
`[AI-${requestId}] Vercel Gateway AI response received in ${duration}ms`,
{
responseLength: response.text.length,
tokensUsed,
usage: response.usage
}
);
return {
text: response.text,
tokensUsed
};
} catch (error) {
const duration = Date.now() - startTime;
console.error(
`[AI-${requestId}] Vercel Gateway AI error after ${duration}ms:`,
{
error: error instanceof Error ? error.message : String(error),
promptLength: text.length
}
);
throw new Error(`Vercel Gateway AI error: ${JSON.stringify(error)}.`);
}
}