需用axios封装NanoAI客户端,关键设X-API-Key请求头、baseURL及60秒超时,再调用chat方法传messages数组获取回复。
你需要在Node.js后端中快速接入纳米AI(NanoAI)提供的大模型服务,但官方未提供专用SDK,且其API格式与OpenAI不完全兼容,直接替换baseURL会报错400或401。
打开纳米AI控制台 → 进入「API管理」→ 点击「查看文档」,确认当前版本使用的是 【/v1/chat/completions】 路径,且请求头必须包含 X-API-Key(不是 Authorization: Bearer xxx),这是与OpenAI协议最核心的差异点。
若文档显示路径为 /api/v1/chat 或要求 api_key 放在 query string 中,则后续所有配置必须严格按此调整,否则请求必然失败。
在项目根目录执行:npm install axios dotenv。
新建 .env 文件,写入:
NANO_AI_API_KEY=ntk_xxx_your_real_key_here
NANO_AI_BASE_URL=https://api.nanoai.dev
注意:不要在 .env 中添加引号,否则读取后字符串会带多余空格,导致认证失败。
新建 lib/nanoai-client.js:
① 引入依赖:const axios = require('axios'); const dotenv = require('dotenv'); dotenv.config();
② 从环境变量读取配置:const { NANO_AI_API_KEY, NANO_AI_BASE_URL } = process.env;
③ 初始化 axios 实例,关键设置三项:
— baseURL 设为 NANO_AI_BASE_URL;
— headers 中必须显式声明 'X-API-Key': NANO_AI_API_KEY;
— 设置 timeout: 60000,因纳米AI部分模型响应较慢,超时默认值(10秒)易触发中断。
④ 编写 chat 方法,接收 messages 数组和可选 model 字符串(如 "nano-llm-3.5"),构造请求体并返回 response.data.choices[0].message.content。
方法一:直接实例化调用
const NanoAIClient = require('./lib/nanoai-client');
const nanoai = new NanoAIClient();
const reply = await nanoai.chat([{ role: 'user', content: '你好' }]);
方法二:注入到 Express 路由中
app.post('/api/ask', async (req, res) => {
const { prompt } = req.body;
try {
const result = await nanoai.chat([{ role: 'user', content: prompt }]);
res.json({ reply: result });
} catch (err) {
res.status(500).json({ error: err.message });
}
});