0. 应用效果预览
应用效果如下图:命令行输入 aichat 进入聊天应用开始交互式聊天,输入 exit 退出聊天应用。
1. 注册 Deepseek 账号并获取 API Key
- 打开网页 Deepseek API 平台 注册账号。
- 点击 API Keys Tab,创建一个新的 API Key。
- 随意输入一个 API 名称,复制 API Key。
2. 使用 OpenAI SDK 调用 Deepseek API
- 创建一个 Nodejs 项目
# 创建文件夹
mkdir ai-chat
# 进入项目
cd ai-chat
# npm 初始化
npm init -y; npm pkg set type="module";
# 创建 index.js
touch index.js
- 安装 OpenAI SDK
# 安装 OpenAI SDK
npm install openai
- 调用 Deepseek API
import OpenAI from "openai";
// 初始化 OpenAI SDK
const openai = new OpenAI({
baseURL: "https://api.deepseek.com",
// 你的 Deepseek API Key
apiKey: "<DeepSeek API Key>",
});
async function main() {
// 调用 Deepseek API
const completion = await openai.chat.completions.create({
// 聊天消息 Hello!
messages: [{ role: "user", content: "Hello!" }],
model: "deepseek-chat",
});
// 打印调用结果
console.log(completion.choices[0].message.content);
}
main();
命令行运行 node index.js,得到返回结果:
3. 使用 Readline 搭建命令行交互式 AI 聊天应用
- 安装
readline依赖
npm install readline
- 使用
readline创建一个可交互的命令行应用
#!/usr/bin/env node
import OpenAI from "openai";
import Readline from "readline";
// 创建 OpenAI 客户端
const client = new OpenAI({
baseURL: "https://api.deepseek.com",
apiKey: "sk-1b46aa0d8f6d454eb7d39da6ce2dc21f",
});
// 创建 Readline 实例
const rl = Readline.createInterface({
input: process.stdin,
output: process.stdout,
});
// 存储上下文
const messages = [];
async function main() {
try {
// 持续对话
while (true) {
// 获取用户输入信息
const question = await new Promise((resolve) => {
rl.question("User: ", (answer) => {
resolve(answer);
});
});
// 输入 exit 退出
if (question.toLowerCase() === "exit") {
rl.close();
return;
}
// 记录输入信息
messages.push({ role: "user", content: question });
// 调用 Deepseek API
const response = await client.chat.completions.create({
model: "deepseek-chat",
messages,
});
const answer = response.choices[0].message.content;
// 记录输出结果
messages.push({ role: "assistant", content: answer });
// 打印输出结果
console.log("\x1b[32m%s\x1b[0m", "Deepseek: " + answer);
}
} catch (error) {
console.error("请求出错:", error);
rl.close();
}
}
main();
- 本地注册命令
# 获取文件路径,复制路径
pwd
# 注册本地命令到配置文件(.zshrc/.bashrc/.bash_profile)
# {pwd} 需替换为上文获取的文件路径
echo "\nalias aichat='node {pwd}/index.js'" >> ~/.zshrc
# 重新加载配置
source ~/.zshrc
大功告成!此时就可以在命令行输入 aichat 进入聊天应用开始交互式聊天,输入 exit 退出聊天应用。