sol-mem-gen/src/app/api/grok/route.ts
2024-12-20 14:53:36 -05:00

48 lines
1.2 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
import OpenAI from "openai";
if (!process.env.XAI_API_KEY) {
throw new Error('XAI_API_KEY is not configured in environment variables')
}
const GROK_API_URL = 'https://api.openai.com/v1'
export async function POST(req: NextRequest): Promise<NextResponse> {
try {
const { prompt } = await req.json()
if (!prompt) {
return NextResponse.json(
{ error: 'Prompt is required' },
{ status: 400 }
)
}
const openai = new OpenAI({
apiKey: process.env.XAI_API_KEY,
baseURL: GROK_API_URL,
});
const image = await openai.images.generate({ model: "dall-e-3", prompt: prompt });
// Extract the image URL from Grok's response
const imageUrl = image.data[0].url
if (!imageUrl) {
console.error('No image in response:', data)
throw new Error('No image generated in Grok API result')
}
return NextResponse.json({ imageUrl })
} catch (error) {
console.error('Grok generation error:', error)
return NextResponse.json(
{ error: error instanceof Error ? error.message : 'Failed to generate image' },
{ status: 500 }
)
}
}
export const dynamic = 'force-dynamic'