Node.js接入AI API中转站:Express/Next.js实战
随着人工智能技术的飞速发展,越来越多的开发者开始将AI能力集成到自己的应用中。BAYLLM AI作为领先的AI API中转站服务商,提供了稳定、高效的多模型接入方案,支持OpenAI、Anthropic Claude、Google Gemini等17种主流模型,且国内直连,极大地简化了AI接入的复杂度...

Node.js接入AI API中转站:Express/Next.js实战指南
随着人工智能技术的飞速发展,越来越多的开发者开始将AI能力集成到自己的应用中。BAYLLM AI作为领先的AI API中转站服务商,提供了稳定、高效的多模型接入方案,支持OpenAI、Anthropic Claude、Google Gemini等17种主流模型,且国内直连,极大地简化了AI接入的复杂度。
本文将围绕Node.js AI API的实际场景,结合Express和Next.js两个主流框架,详细讲解如何通过BAYLLM AI实现AI能力接入,包含API路由封装、SSE流式输出等实用技巧,帮助开发者快速搭建稳定高效的AI服务。
引言
在AI开发领域,调用第三方API已成为常态。直接调用OpenAI等官方接口,虽然功能强大,但存在网络延迟、调用复杂、限流等问题,尤其是在国内环境下体验不佳。BAYLLM AI通过构建AI API中转站,提供国内直连,极大提升了稳定性和响应速度。
本文将重点介绍如何利用Node.js生态,基于BAYLLM AI的API中转站,实现高可用的JavaScript OpenAI调用,包括:
1. 了解BAYLLM AI中转站优势与API特点
BAYLLM AI作为AI API中转站,核心优势包括:
API基础地址为:
https://bayllm.com/v1
调用时需在请求头中携带API Key:
Authorization: Bearer sk-你的密钥
2. Node.js + Express封装AI API代理服务
在实际项目中,直接从前端调用AI接口存在安全隐患(API Key泄露),因此推荐使用后端代理。
以下示例基于Express框架,演示如何封装BAYLLM AI接口,支持普通调用及流式输出。
2.1 环境准备
npm init -y
npm install express axios
2.2 创建Express服务
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
const API_BASE_URL = 'https://bayllm.com/v1';
const API_KEY = 'sk-你的密钥';
// 普通调用接口
app.post('/api/ai', async (req, res) => {
try {
const response = await axios.post(`${API_BASE_URL}/chat/completions`, req.body, {
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
});
res.json(response.data);
} catch (error) {
res.status(error.response?.status || 500).json({ error: error.message });
}
});
// SSE流式输出接口
app.post('/api/ai/stream', async (req, res) => {
try {
const response = await axios({
method: 'post',
url: `${API_BASE_URL}/chat/completions`,
data: { ...req.body, stream: true },
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
responseType: 'stream',
});
res.set({
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
Connection: 'keep-alive',
});
response.data.on('data', (chunk) => {
res.write(`data: ${chunk.toString()}
`);
});
response.data.on('end', () => {
res.write('data: [DONE]
');
res.end();
});
} catch (error) {
res.status(error.response?.status || 500).json({ error: error.message });
}
});
const PORT = 3000;
app.listen(PORT, () => {
console.log(`AI Proxy Service running on http://localhost:${PORT}`);
});
2.3 说明
/api/ai:普通请求,适合非流式场景/api/ai/stream:开启stream: true,通过SSE传输数据,适合对话机器人、实时文本生成3. Next.js项目中接入BAYLLM AI API
Next.js提供API Routes,使得前后端代码融合开发成为可能。结合BAYLLM AI,可以轻松实现安全稳定的AI接口调用。
3.1 创建Next.js API路由
npx create-next-app@latest nextjs-ai-demo
cd nextjs-ai-demo
npm install axios
在pages/api/ai.js中:
import axios from 'axios';
const API_BASE_URL = 'https://bayllm.com/v1';
const API_KEY = 'sk-你的密钥';
export default async function handler(req, res) {
if (req.method !== 'POST') {
res.setHeader('Allow', ['POST']);
return res.status(405).end(`Method ${req.method} Not Allowed`);
}
try {
const response = await axios.post(`${API_BASE_URL}/chat/completions`, req.body, {
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
});
res.status(200).json(response.data);
} catch (error) {
res.status(error.response?.status || 500).json({ error: error.message });
}
}
3.2 流式输出API路由
在pages/api/ai/stream.js中:
import axios from 'axios';
const API_BASE_URL = 'https://bayllm.com/v1';
const API_KEY = 'sk-你的密钥';
export default async function handler(req, res) {
if (req.method !== 'POST') {
res.setHeader('Allow', ['POST']);
return res.status(405).end(`Method ${req.method} Not Allowed`);
}
try {
const response = await axios({
method: 'post',
url: `${API_BASE_URL}/chat/completions`,
data: { ...req.body, stream: true },
headers: {
Authorization: `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
responseType: 'stream',
});
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');
response.data.on('data', (chunk) => {
res.write(`data: ${chunk.toString()}
`);
});
response.data.on('end', () => {
res.write('data: [DONE]
');
res.end();
});
} catch (error) {
res.status(error.response?.status || 500).json({ error: error.message });
}
}
3.3 前端调用示例
在pages/index.js中,调用流式API:
import { useState } from 'react';
export default function Home() {
const [messages, setMessages] = useState([]);
const [input, setInput] = useState('');
const [loading, setLoading] = useState(false);
const handleSend = async () => {
if (!input.trim()) return;
setMessages((prev) => [...prev, { role: 'user', content: input }]);
setInput('');
setLoading(true);
const eventSource = new EventSource('/api/ai/stream');
eventSource.onmessage = (event) => {
if (event.data === '[DONE]') {
eventSource.close();
setLoading(false);
return;
}
setMessages((prev) => {
const last = prev[prev.length - 1];
if (last?.role === 'assistant') {
last.content += event.data;
return [...prev.slice(0, -1), last];
} else {
return [...prev, { role: 'assistant', content: event.data }];
}
});
};
eventSource.onerror = () => {
eventSource.close();
setLoading(false);
};
// 发送请求体(示例为固定内容,可根据需求动态调整)
fetch('/api/ai/stream', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: "gpt-4o-mini",
messages: [{ role: 'user', content: input }]
}),
});
};
return (
<div style={{ maxWidth: 600, margin: 'auto', padding: 20 }}>
<h1>Next.js AI Chat Demo</h1>
<div style={{ minHeight: 300, border: '1px solid #ccc', padding: 10, marginBottom: 10 }}>
{messages.map((msg, i) => (
<div key={i} style={{ margin: '10px 0', textAlign: msg.role === 'user' ? 'right' : 'left' }}>
<b>{msg.role === 'user' ? '你' : 'AI'}:</b> {msg.content}
</div>
))}
{loading && <div>AI 正在输入中...</div>}
</div>
<input
type="text"
value={input}
onChange={(e) => setInput(e.target.value)}
style={{ width: '80%', marginRight: 10 }}
/>
<button onClick={handleSend} disabled={loading}>发送</button>
</div>
);
}
4. SSE流式输出的优势与最佳实践
4.1 为什么选择SSE?
相比轮询或WebSocket,SSE在AI文本流场景下实现更为简单且稳定。
4.2 SSE实践技巧
5. 结合前端框架实现完整AI应用
通过本文示范的Next.js与Express两种方案,开发者可以灵活选择:
结合BAYLLM AI的多模型支持和高可用服务,开发者能够快速构建具备强大AI能力的应用,如智能客服、内容创作助手、代码生成工具等。
总结
本文详细介绍了如何利用BAYLLM AI这一高性能AI API中转站,结合Node.js生态中的Express和Next.js框架,实现安全、稳定、高效的AI服务接入。重点涵盖了API路由封装、流式输出的SSE实现以及前端交互示例,帮助开发者快速上手并构建生产级AI应用。
通过BAYLLM AI,开发者不仅能享受到多厂商、多模型的灵活选择,还能获得国内直连的极致体验,显著提升AI能力在实际产品中的集成效率。
相关文章
关键词:Node.js AI API, JavaScript OpenAI, Next.js AI, Express AI API, 前端AI接入
相关文章推荐
以下是 BAYLLM AI 文章中心的相关内容:
查看更多:[BAYLLM AI 文章中心](https://bayllm.com/articles)