当前位置:首页 > 物联网 > 智能应用
[导读]DeepSeek开源AI模型的发布在技术界引起了很多兴奋。它允许开发人员完全在本地构建应用程序,而无需连接到在线AI模型(例如Claude,Chatgpt等)。开源模型在构建与生成AI集成的企业应用程序时为新机会打开了大门。

DeepSeek开源AI模型的发布在技术界引起了很多兴奋。它允许开发人员完全在本地构建应用程序,而无需连接到在线AI模型(例如Claude,Chatgpt等)。开源模型在构建与生成AI集成的企业应用程序时为新机会打开了大门。

在本文中,您将学习如何在个人机器上本地运行这样的模型,并构建全栈React和Nodejs驱动的应用程序,而不仅仅是另一个聊天机器人。您将能够使用此应用程序来更快地分析简历并做出更明智的招聘决定。在构建应用程序之前,重要的是要了解开源LLM的好处。

开源大语模型的好处

开源模型与使用专有模型相对于使用专有模型提供了一些关键好处:

具有成本效益且无许可证

开源LLM具有成本效益,不需要特殊许可。例如,截至撰写本文的日期,OpenAI的O1的成本为每百万美元的产出代币,开源DeepSeek R1的价格为2.19美元。

可自定义且可调

开源模型可以轻松地进行微调以满足独特的业务案例 - 允许构建更多特定于领域的用例。这导致企业应用程序中的优化性能。

增强数据安全性和隐私

开源使应用程序更加安全,因为宝贵的个人数据不需要上传到第三方服务器,并且只能停留在本地机器或公司网络上仅留在本地机器或公司网络中。这提供了很高的数据安全性。此外,可以对开源模型进行微调以删除所有数据偏差。

社区驱动,没有供应商锁定

开源模型享有巨大的社区支持,并受益于功能开发的快速发展。另一方面,使用属性模型使应用程序供应商锁定并依赖供应商公司提供功能更新。

借助此信息,您可以使用DeepSeek R1开源模型,Node.js和React构建一个真实的应用程序。

项目和建筑概述

您将构建简历分析仪的应用程序 - 它将帮助您了解上传简历的好处和缺点。 DeepSeek R1 LLM将分析上传的简历并提供反馈。您可以通过下面的插图了解应用程序的体系结构。

建筑图

基于React的用户界面使用REST API与基于NODEJS的后端进行通信。然后,Nodejs后端将用户请求发送到使用Ollama托管的DeepSeek R1。整个技术堆栈可以在单台计算机上运行,就像您在整个文章中所做的那样,也可以在更复杂的用例中托管多个容器。

先决条件

· 要运行该项目,您将需要一台具有一些计算功率的计算机,最好是具有NVIDIA图形卡的计算机。该项目已在NVIDIA 4090RTX基于Windows Machine和M2 MacBook Pro上开发和测试。

· 您需要在计算机上安装NodeJ。该项目已建立在Nodejs版本22.3.0上。您可以使用命令验证nodejs安装node -v。

· 您还需要您选择的编辑来完成代码。 构建应用程序时已经使用了Visual Studio代码,通常建议使用。

在本地设置并运行DeepSeek

要在本地运行DeepSeek R1,请按照以下步骤操作:

1。从其官方网站安装Ollama 。

2。安装完成后,您将能够使用ollama run计算机终端中的命令运行模型。

3。运行您选择的DeepSeek模型。本教程是使用DeepSeek R1 8-Billon参数模型构建的。您可以使用命令来运行它ollama run deepseek-r1:8b。

4。如果您的规范计算机比前提条件部分中提到的机器较低,则7b和1.5b参数模型也将起作用,但是生成的输出质量可能较低。

5。模型可能需要花费一些时间才能下载,因为它们需要下载。模型运行后,您应该能够在终端中提出一个问题并获取输出。您可以参考下面的插图,以查看行动中的DeepSeek R1 8B模型。

Ollama DeepSeek R1

6。DeepSeekR1是一种推理模型,因此,它在给出可以产生的第一个答案之前就考虑了。正如上面插图中强调的那样,它在给我们提示的答案之前就在思考。可以在标签中看到这种想法 。

克隆和运行nodejs后端

Ollama服务也可以通过API访问。您将利用此API并构建基于Nodejs的后端层。该层将从用户中取上上载的PDF并从中提取文本。文本提取后,后端将通过Ollama API将文本馈送到DeepSeek R1模型,并恢复响应。此响应将发送给客户端以显示给用户。

1。使用此URL从GitHub克隆后端项目。理想情况下,您应该分配项目,然后克隆自己的本地副本。

2。克隆后,要运行项目,请使用CD转到项目根目录deepseek-ollama-backend。

3。一旦进入项目根,就通过给出npm install命令来安装依赖项。安装完成后,可以使用命令运行项目npm start。项目的核心是app.js 文件。检查下面提供的代码。

const express = require('express');

const multer = require('multer');

const pdfParse = require('pdf-parse');

const axios = require('axios');

const fs = require('fs');

const cors = require('cors');

const app = express();

app.use(cors());

app.use(express.json());

const upload = multer({

dest: 'uploads/',

fileFilter: (req, file, cb) => {

file.mimetype === 'application/pdf' ? cb(null, true) : cb(new Error('Only PDF files are allowed!'));

}

}).single('pdfFile');

app.post('/analyze-pdf', (req, res) => {

upload(req, res, async function(err) {

if (err) {

return res.status(400).json({ error: 'Upload error', details: err.message });

}

try {

if (!req.file) {

return res.status(400).json({ error: 'No PDF file uploaded' });

}

const dataBuffer = fs.readFileSync(req.file.path);

const data = await pdfParse(dataBuffer);

const pdfText = data.text;

fs.unlinkSync(req.file.path);

const response = await axios.post('http://127.0.0.1:11434/api/generate', {

model: "deepseek-r1:8b",

prompt: `Analyze this resume. Resume text is between two --- given ahead: ---${pdfText}---`,

stream: false

});

res.json({ success: true, message: 'Successfully connected to Ollama', ollamaResponse: response.data });

} catch (error) {

if (req.file && fs.existsSync(req.file.path)) {

fs.unlinkSync(req.file.path);

}

res.status(500).json({ error: 'Error processing PDF', details: error.message });

}

});

});

if (!fs.existsSync('uploads')) {

fs.mkdirSync('uploads');

}

const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {

console.log(`Server is running on port ${PORT}`);

});

4。客户通过调用/analyze-pdf类型的API端点与后端进行交互POST。客户端将用户删除的PDF文件作为有效载荷发送给此API。

5。服务器将该文件uploads临时存储在目录中,并将文本提取在文件中。

6。然后使用Ollama的Localhost API端点提示DeepSeek R1 。

7。DeepSeek R1分析了简历的内容并提供了反馈。然后,使用此分析使用该服务器对客户端响应res.json()。

克隆和运行React用户界面

该项目的用户界面将允许用户上传简历,将此简历发送到后端,然后将DeepSeek R1简历分析的结果显示给用户。它还将显示内部思想链或对DeepSeek R1的思考。

1。要开始,分叉然后从此Github URL中克隆该项目。如果您不打算进行许多自定义,则可以简单地克隆它。

2。克隆项目后,使用命令转到根项目目录cd deepseek-ollama-frontend。

3。在项目根部内,使用npm install命令安装必要的依赖项。安装完成后,使用命令启动项目npm run dev。

4。此React应用的主要组成部分是重新分析仪。在您选择的编辑中打开它并进行分析。

5。此组件提供了一个输入字段供用户上传文件。

6。上传的文件使用API端点发送到服务器。

7.服务器的响应分为两个部分的内部思考和模型的实际响应。

8。该AnalysisSection组件显示模型的响应以及包含ExpandableSection组件,该组件用于显示DeepSeek R1的内部思维。

9。导航到浏览器中的URL加载应用程序。上传您的简历(或任何样本简历),并观察DeepSeek R1收到的分析。

结论

DeepSeek R1提供了一个独特的机会,可以在内部完全 构建Genai-Power应用程序,并根据您的需求对其进行自定义。

在本文中,您了解了使用开源Genai模型的好处。此外,您已经使用DeepSeek R1,Node.js和React设置了一个真实的应用程序。此设置使您可以使用AI完全离线执行简历分析。您可以使用此工具在您的组织中雇用SMART,我建议您继续基于本文获得的知识并探索更多用例和应用程序。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭