只需替换openai配置即可快速搭建火山引擎命令行聊天机器人:配置volc_api_key、volc_model、volc_base_url三项参数,安装@langchain/openai等依赖,用chatopenai调用模型,再通过buffermemory或inquirer实现多轮对话与交互。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要快速搭建一个能稳定调用火山引擎AI大模型的命令行聊天机器人,你不需要从零写HTTP请求或手动拼接JSON,而是直接复用LangChain生态中已适配OpenAI协议的模块——因为火山引擎方舟平台完全兼容OpenAI API规范,只需替换基础地址和密钥即可跑通完整对话链路。
准备火山引擎模型访问凭证
登录火山引擎方舟平台控制台,在「我的应用」中新建应用,获取三项关键参数:【VOLC_API_KEY】(API密钥)、【VOLC_MODEL】(模型ID,如doubao-1-5-lite-32k-250115)、【VOLC_BASE_URL】(固定为https://ark.cn-beijing.volces.com/api/v3)。
这一步漏掉任一参数都会导致后续初始化失败,尤其是VOLC_BASE_URL必须带/api/v3后缀,少一个斜杠就返回404。
初始化Node项目并安装依赖
执行以下命令创建空项目并安装核心包:
mkdir volc-chat && cd volc-chat && npm init -y && npm install @langchain/openai @langchain/core dotenv
若使用Node.js 16或17版本,必须额外安装流兼容补丁:npm install web-streams-polyfill,否则ChatOpenAI实例化时会抛出TypeError: ReadableStream is not a constructor。
配置环境变量与基础代码
在项目根目录新建.env文件,填入如下内容(注意不要加引号,等号前后无空格):
VOLC_API_KEY=ak-xxxxxxVOLC_MODEL=doubao-1-5-lite-32k-250115VOLC_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
新建index.js,粘贴以下最小可行代码:
require('dotenv').config();const { ChatOpenAI } = require("@langchain/openai");const model = new ChatOpenAI({ apiKey: process.env.VOLC_API_KEY, model: process.env.VOLC_MODEL, configuration: { baseURL: process.env.VOLC_BASE_URL },});model.invoke("你好").then(console.log);
运行node index.js,看到输出含content字段的响应体,说明模型调用通了。
添加多轮对话记忆功能
第一步:引入内存模块
const { BufferMemory } = require("@langchain/core/memory");
第二步:初始化带记忆的链式调用器
const memory = new BufferMemory({ memoryKey: "history", returnMessages: true });const chain = model.pipe(memory);
第三步:发起带上下文的连续提问
await chain.invoke("北京天气怎么样?");await chain.invoke("那上海呢?"); // 此时模型能自动识别“上海”是与“北京”并列的城市,无需重复提“天气”
注意:BufferMemory仅在单次进程内有效,重启后历史清空;如需持久化,请改用RedisChatMessageHistory或自建数据库存储。
启动交互式命令行界面
方法一:用readline原生模块实现最简交互
在index.js末尾追加:
const readline = require("readline");const rl = readline.createInterface({ input: process.stdin, output: process.stdout });console.log("? 火山引擎聊天机器人已启动(输入 'exit' 退出)");rl.on("line", async (input) => { if (input.trim() === "exit") return rl.close(); const res = await model.invoke(input); console.log("?", res.content);});
方法二:升级为支持中断、历史回溯的inquirer交互(需先npm install inquirer)
const inquirer = require("inquirer");const questions = [{ type: "input", name: "msg", message: "? 说点什么:" }];(async () => { while (true) { const { msg } = await inquirer.prompt(questions); if (msg === "exit") break; const res = await model.invoke(msg); console.log("?", res.content); } })();
运行node index.js,即可开始实时问答。输入任意中文问题,几秒内获得豆包模型生成的回复。











