使用 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.");

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

### 集成 DeepSeekOpenAI SDK 到 Node.js 应用 DeepSeek 是一种先进的大语言模型,而 OpenAI 提供了一系列强大的自然语言处理工具和服务。要在 Node.js 庢应用中集成这两个服务,可以按照以下方式操作。 #### 安装必要的依赖项 为了在 Node.js使用这些 API,需要安装 `axios` 或其他 HTTP 请求库来发送请求到远程服务器。此外,还需要设置环境变量以存储 API 密钥[^4]。 ```bash npm install axios dotenv ``` #### 设置环境变量 创建 `.env` 文件并保存您的 API 密钥: ```dotenv DEEPSEEK_API_KEY=your-deepseek-api-key OPENAI_API_KEY=your-openai-api-key ``` 加载环境变量的代码如下所示: ```javascript require('dotenv').config(); const axios = require('axios'); ``` #### 调用 DeepSeek API 以下是调用 DeepSeek API 的示例代码片段。此代码通过 POST 方法向其端点发送数据,并解析返回的结果[^5]。 ```javascript async function callDeepSeekAPI(prompt) { const apiKey = process.env.DEEPSEEK_API_KEY; try { const response = await axios.post( 'https://api.deepseek.com/v1/completions', { prompt, max_tokens: 100, temperature: 0.7, }, { headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json' } } ); console.log(response.data.choices[0].text); return response.data.choices[0].text; } catch (error) { console.error(`Error calling DeepSeek API: ${error.message}`); throw error; } } ``` #### 使用 OpenAI SDK 对于 OpenAI,官方提供了专门的 JavaScript SDK 来简化开发过程。首先需安装该包: ```bash npm install openai ``` 接着初始化客户端实例并与之交互: ```javascript const { Configuration, OpenAIApi } = require("openai"); function initializeOpenAI() { const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY, }); return new OpenAIApi(configuration); } async function generateTextWithOpenAI(openaiInstance, inputPrompt) { try { const completion = await openaiInstance.createCompletion({ model: "text-davinci-003", prompt: inputPrompt, max_tokens: 100, temperature: 0.7, }); console.log(completion.data.choices[0].text); return completion.data.choices[0].text; } catch (err) { console.error(err.response ? err.response.data : err.message); throw err; } } ``` #### 结合两者的功能 如果希望在一个项目里同时利用这两种技术,则可分别调用上述两个函数完成各自的任务后再做进一步处理[^6]。 ```javascript (async () => { const deepSeekResult = await callDeepSeekAPI("Explain quantum computing."); const openAIResult = await generateTextWithOpenAI(initializeOpenAI(), "What is machine learning?"); console.log({deepSeekResult, openAIResult}); })(); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hefeng_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值