使用 OpenAI 的 Node.js 通过 Ollama 在本地运行 DeepSeek R1

介绍

DeepSeek R1 是一款开源 LLM,可提供强大的生成式 AI 功能。如果您使用Ollama 在本地运行它,您可能想知道如何将其与您的 Node.js 应用程序集成。本指南将向您展示如何设置和使用OpenAI SDK 以及您本地运行的 DeepSeek R1 模型

步骤 1:使用 Ollama 在本地启动 DeepSeek R1

确保 Ollama 正在运行并且已下载 DeepSeek R1 模型。如果尚未安装,请执行以下操作:

复制代码
ollama pull deepseek-r1:1.5b

然后,启动测试会话以验证其是否正常工作:

复制代码
ollama run deepseek-r1:1.5b

第 2 步:安装依赖项(Nodejs)

首先,确保您已安装 Node.js,然后安装 OpenAI SDK:

复制代码
npm install openai

步骤 3:配置 OpenAI SDK 以使用 Ollama

const OpenAI = require("openai");

const openai = new OpenAI({

baseURL: "http://localhost:11434/v1", // Pointing to Ollama's local API

apiKey: "ollama", // Required by the OpenAI SDK, but Ollama doesn't validate it

});

async function chatWithDeepSeek(prompt) {

try {

const response = await openai.chat.completions.create({

model: "deepseek-r1:1.5b", // Ensure this model is running

messages: [{ role: "user", content: prompt }],

});

console.log(response.choices[0].message.content);

} catch (error) {

console.error("Error:", error.message);

}

}

// Test the function

chatWithDeepSeek("Hello, how are you?");

步骤 4:启用流式响应

为了提高性能并实时获得响应,请启用流式

传输函数的流式传输版本

async function chatWithDeepSeekStream(prompt) {

try {

const stream = await openai.chat.completions.create({

model: "deepseek-r1:1.5b",

messages: [{ role: "user", content: prompt }],

stream: true, // Enable streaming

});

for await (const chunk of stream) {

process.stdout.write(chunk.choices[0]?.delta?.content || "");

}

console.log("\n");

} catch (error) {

console.error("Error:", error.message);

}

}

chatWithDeepSeekStream("Tell me a fun fact about space.");

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

相关推荐
醉方休7 小时前
npm/pnpm软链接的优点和使用场景
前端·npm·node.js
一支鱼8 小时前
基于 Node.js 的短视频制作神器 ——FFCreator
前端·node.js·音视频开发
龙潜月七8 小时前
Joplin-解决 Node.js 中 “digital envelope routines::unsupported“ 错误
node.js
不知名raver(学python版)1 天前
npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR!
前端·npm·node.js
惜.己1 天前
针对nvm不能导致npm和node生效的解决办法
前端·npm·node.js
freephp1 天前
企业级LLM已经到了next level:LangChain + DeepSeek = 王炸
langchain·deepseek
上单带刀不带妹1 天前
Node.js 的模块化规范是什么?CommonJS 和 ES6 模块有什么区别?
前端·node.js·es6·模块化
cdcdhj2 天前
数据库存储大量的json文件怎么样高效的读取和分页,利用文件缓存办法不占用内存
缓存·node.js·json
HWL56792 天前
在本地使用Node.js和Express框架来连接和操作远程数据库
node.js·express
Sammyyyyy2 天前
Node.js 做 Web 后端优势为什么这么大?
开发语言·前端·javascript·后端·node.js·servbay