import type { NextApiRequest, NextApiResponse } from 'next' import OpenAI from 'openai' export const config = { api: { responseLimit: false, }, } export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method !== 'POST') { return res.status(405).json({ error: 'Method not allowed' }) } const hfToken = process.env.HF_TOKEN if (!hfToken) { return res.status(500).json({ error: 'HF_TOKEN not configured' }) } const { messages } = req.body if (!messages || !Array.isArray(messages)) { return res.status(400).json({ error: 'Invalid messages format' }) } const openai = new OpenAI({ baseURL: '/static-proxy?url=https%3A%2F%2Frouter.huggingface.co%2Fv1', apiKey: hfToken, }) try { const stream = await openai.chat.completions.create({ model: 'zai-org/GLM-4.6V-Flash:zai-org', messages, stream: true, max_tokens: 1024, }) res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.setHeader('Cache-Control', 'no-cache') res.setHeader('Connection', 'keep-alive') for await (const chunk of stream) { const content = chunk.choices[0]?.delta?.content || '' res.write(content) } res.end() } catch (error) { console.error('API error:', error) res.status(500).json({ error: 'Failed to generate response' }) } }