123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { fal } from './fal-client';
- // 类型定义
- interface TestResult {
- data?: {
- images?: Array<{ url: string }>;
- };
- }
- // 测试 fal AI 连接
- export async function testFalConnection(): Promise<{ success: boolean; message: string }> {
- try {
- // 检查API密钥是否已配置
- if (!process.env.FAL_KEY) {
- return {
- success: false,
- message: 'FAL_KEY 环境变量未配置。请在 .env.local 文件中设置您的 fal AI API 密钥。'
- };
- }
- // 尝试调用 Kontext Pro 模型来测试连接
- const result = await fal.subscribe("fal-ai/flux-pro/kontext", {
- input: {
- prompt: "test connection - make it slightly brighter",
- image_url: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
- guidance_scale: 3.5,
- sync_mode: true,
- num_images: 1,
- },
- logs: true,
- }) as TestResult;
- if (result && result.data && result.data.images && result.data.images.length > 0) {
- return {
- success: true,
- message: '✅ Fal AI Kontext Pro 连接成功!现在可以使用最新的前沿图像编辑模型。'
- };
- } else {
- return {
- success: false,
- message: 'API 调用成功但未返回预期结果。请检查您的 API 配额。'
- };
- }
- } catch (error) {
- console.error('Fal AI connection test failed:', error);
-
- if (error instanceof Error) {
- if (error.message.includes('401') || error.message.includes('Unauthorized')) {
- return {
- success: false,
- message: 'API 密钥无效。请检查您的 FAL_KEY 配置。访问 https://fal.ai 获取有效密钥。'
- };
- }
-
- if (error.message.includes('quota') || error.message.includes('limit')) {
- return {
- success: false,
- message: 'API 配额已用完。请检查您的 fal.ai 账户余额或升级套餐。'
- };
- }
- if (error.message.includes('403') || error.message.includes('Forbidden')) {
- return {
- success: false,
- message: '无权限访问 Kontext Pro 模型。请确保您的账户已开通相应权限。'
- };
- }
-
- return {
- success: false,
- message: `连接失败: ${error.message}`
- };
- }
- return {
- success: false,
- message: '未知错误,请稍后重试。'
- };
- }
- }
- // 获取模型信息
- export async function getFalAccountInfo() {
- try {
- return {
- success: true,
- message: '如需查看账户信息,请访问 https://fal.ai 控制台',
- models: {
- 'kontext-pro': 'FLUX.1 Kontext [pro] - 前沿图像编辑模型'
- },
- features: [
- '智能图像编辑',
- '精确细节调整',
- '创意风格变换',
- '背景移除'
- ],
- documentation: 'https://fal.ai/models/fal-ai/flux-pro/kontext/api'
- };
- } catch (error) {
- return {
- success: false,
- message: '无法获取模型信息'
- };
- }
- }
|