import { NextRequest, NextResponse } from 'next/server' import { authMiddleware } from '@/lib/auth-middleware' export async function POST(request: NextRequest) { try { // No authentication required for web-speech tool const { message, systemPrompt } = await request.json() if (!message || typeof message !== 'string') { return NextResponse.json({ error: 'Message is required' }, { status: 400 }) } // Check if OpenAI API key is configured if (!process.env.OPENAI_API_KEY) { return NextResponse.json({ error: 'OpenAI API key not configured' }, { status: 500 }) } // Prepare messages for OpenAI const messages = [ { role: 'system', content: systemPrompt || 'You are a helpful AI assistant. Provide clear, concise, and helpful responses to user queries.', }, { role: 'user', content: message, }, ] // Call OpenAI Chat Completions API const response = await fetch('https://api.openai.com/v1/chat/completions', { method: 'POST', headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ model: 'gpt-3.5-turbo', messages: messages, max_tokens: 1000, temperature: 0.7, top_p: 1, frequency_penalty: 0, presence_penalty: 0, }), }) if (!response.ok) { const errorData = await response.text() console.error('OpenAI Chat API error:', errorData) return NextResponse.json({ error: 'AI processing failed' }, { status: 500 }) } const chatResult = await response.json() if (!chatResult.choices || chatResult.choices.length === 0) { return NextResponse.json({ error: 'No response from AI' }, { status: 500 }) } return NextResponse.json({ response: chatResult.choices[0].message.content, usage: chatResult.usage, }) } catch (error) { console.error('OpenAI chat error:', error) return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) } }