// 火山引擎 API 的配置 const VOLC_API_URL = "https://ark.cn-beijing.volces.com/api/v3/chat/completions"; export default { async fetch(request) { // 处理CORS预检请求 if (request.method === 'OPTIONS') { return new Response(null, { headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'POST, OPTIONS', 'Access-Control-Allow-Headers': '*', 'Access-Control-Max-Age': '86400', } }); } try { // 克隆原始请求用于读取body const clonedReq = request.clone(); const originalBody = await clonedReq.json(); // 处理messages数组 if (originalBody.messages && Array.isArray(originalBody.messages)) { originalBody.messages = originalBody.messages.map(message => { // 转换content字段 if (message.content && Array.isArray(message.content)) { // 拼接所有text内容 message.content = message.content .map(item => item.text) // 提取text值 .join('\n'); // 用换行符连接 } return message; }); } // 创建代理请求 const proxyReq = new Request(VOLC_API_URL, { method: request.method, headers: request.headers, body: JSON.stringify(originalBody) }); // 发送请求并获取响应 const response = await fetch(proxyReq); // 统一使用流式管道传输 const { readable, writable } = new TransformStream(); response.body.pipeTo(writable); // 构建最终响应头 return new Response(readable, { status: response.status, headers: response.headers }); } catch (error) { return new Response(JSON.stringify({ error: { message: error.message, type: 'proxy_error' } }), { status: 500, headers: { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } }); } } };