@mixio-pro/kalaasetu-mcp
Version:
A powerful Model Context Protocol server providing AI tools for content generation and analysis
46 lines (39 loc) • 1.36 kB
text/typescript
import { fal } from "@fal-ai/client";
export async function callFalModel(
modelName: string,
input: any,
options: { falKey?: string; logs?: boolean } = {}
) {
const { falKey, logs = true } = options;
const key = falKey || process.env.FAL_KEY;
if (!key) {
throw new Error("FAL_KEY is required. Provide it via fal_key parameter or FAL_KEY environment variable.");
}
fal.config({
credentials: key,
});
console.log(`[${modelName}] Submitting request to FAL AI...`);
try {
const result = await fal.subscribe(modelName, {
input,
logs,
onQueueUpdate: (update) => {
if (update.status === "IN_PROGRESS") {
console.log(`[${modelName}] Status: ${update.status}`);
if (logs && "logs" in update && update.logs) {
update.logs.forEach((log) => {
console.log(`[${modelName}] ${log.message}`);
});
}
} else if (update.status === "IN_QUEUE") {
console.log(`[${modelName}] Status: ${update.status} - Waiting in queue...`);
}
},
});
console.log(`[${modelName}] Generation completed successfully`);
return result;
} catch (error: any) {
console.error(`[${modelName}] Error:`, error);
throw new Error(`FAL AI ${modelName} generation failed: ${error.message || JSON.stringify(error)}`);
}
}