DeepSeek開源AI模型的發(fā)布在技術(shù)界引起了很多興奮。它允許開發(fā)人員完全在本地構(gòu)建應用程序,而無需連接到在線AI模型(例如Claude,Chatgpt等)。開源模型在構(gòu)建與生成AI集成的企業(yè)應用程序時為新機會打開了大門。
在本文中,您將學習如何在個人機器上本地運行這樣的模型,并構(gòu)建全棧React和Nodejs驅(qū)動的應用程序,而不僅僅是另一個聊天機器人。您將能夠使用此應用程序來更快地分析簡歷并做出更明智的招聘決定。在構(gòu)建應用程序之前,重要的是要了解開源LLM的好處。
開源大語模型的好處
開源模型與使用專有模型相對于使用專有模型提供了一些關(guān)鍵好處:
具有成本效益且無許可證
開源LLM具有成本效益,不需要特殊許可。例如,截至撰寫本文的日期,OpenAI的O1的成本為每百萬美元的產(chǎn)出代幣,開源DeepSeek R1的價格為2.19美元。
可自定義且可調(diào)
開源模型可以輕松地進行微調(diào)以滿足獨特的業(yè)務案例 - 允許構(gòu)建更多特定于領域的用例。這導致企業(yè)應用程序中的優(yōu)化性能。
增強數(shù)據(jù)安全性和隱私
開源使應用程序更加安全,因為寶貴的個人數(shù)據(jù)不需要上傳到第三方服務器,并且只能停留在本地機器或公司網(wǎng)絡上僅留在本地機器或公司網(wǎng)絡中。這提供了很高的數(shù)據(jù)安全性。此外,可以對開源模型進行微調(diào)以刪除所有數(shù)據(jù)偏差。
社區(qū)驅(qū)動,沒有供應商鎖定
開源模型享有巨大的社區(qū)支持,并受益于功能開發(fā)的快速發(fā)展。另一方面,使用屬性模型使應用程序供應商鎖定并依賴供應商公司提供功能更新。
借助此信息,您可以使用DeepSeek R1開源模型,Node.js和React構(gòu)建一個真實的應用程序。
項目和建筑概述
您將構(gòu)建簡歷分析儀的應用程序 - 它將幫助您了解上傳簡歷的好處和缺點。 DeepSeek R1 LLM將分析上傳的簡歷并提供反饋。您可以通過下面的插圖了解應用程序的體系結(jié)構(gòu)。
建筑圖
基于React的用戶界面使用REST API與基于NODEJS的后端進行通信。然后,Nodejs后端將用戶請求發(fā)送到使用Ollama托管的DeepSeek R1。整個技術(shù)堆??梢栽趩闻_計算機上運行,就像您在整個文章中所做的那樣,也可以在更復雜的用例中托管多個容器。
先決條件
· 要運行該項目,您將需要一臺具有一些計算功率的計算機,最好是具有NVIDIA圖形卡的計算機。該項目已在NVIDIA 4090RTX基于Windows Machine和M2 MacBook Pro上開發(fā)和測試。
· 您需要在計算機上安裝NodeJ。該項目已建立在Nodejs版本22.3.0上。您可以使用命令驗證nodejs安裝node -v。
· 您還需要您選擇的編輯來完成代碼。 構(gòu)建應用程序時已經(jīng)使用了Visual Studio代碼,通常建議使用。
在本地設置并運行DeepSeek
要在本地運行DeepSeek R1,請按照以下步驟操作:
1。從其官方網(wǎng)站安裝Ollama 。
2。安裝完成后,您將能夠使用ollama run計算機終端中的命令運行模型。
3。運行您選擇的DeepSeek模型。本教程是使用DeepSeek R1 8-Billon參數(shù)模型構(gòu)建的。您可以使用命令來運行它ollama run deepseek-r1:8b。
4。如果您的規(guī)范計算機比前提條件部分中提到的機器較低,則7b和1.5b參數(shù)模型也將起作用,但是生成的輸出質(zhì)量可能較低。
5。模型可能需要花費一些時間才能下載,因為它們需要下載。模型運行后,您應該能夠在終端中提出一個問題并獲取輸出。您可以參考下面的插圖,以查看行動中的DeepSeek R1 8B模型。
Ollama DeepSeek R1
6。DeepSeekR1是一種推理模型,因此,它在給出可以產(chǎn)生的第一個答案之前就考慮了。正如上面插圖中強調(diào)的那樣,它在給我們提示的答案之前就在思考??梢栽跇撕炛锌吹竭@種想法 。
克隆和運行nodejs后端
Ollama服務也可以通過API訪問。您將利用此API并構(gòu)建基于Nodejs的后端層。該層將從用戶中取上上載的PDF并從中提取文本。文本提取后,后端將通過Ollama API將文本饋送到DeepSeek R1模型,并恢復響應。此響應將發(fā)送給客戶端以顯示給用戶。
1。使用此URL從GitHub克隆后端項目。理想情況下,您應該分配項目,然后克隆自己的本地副本。
2。克隆后,要運行項目,請使用CD轉(zhuǎn)到項目根目錄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。客戶通過調(diào)用/analyze-pdf類型的API端點與后端進行交互POST。客戶端將用戶刪除的PDF文件作為有效載荷發(fā)送給此API。
5。服務器將該文件uploads臨時存儲在目錄中,并將文本提取在文件中。
6。然后使用Ollama的Localhost API端點提示DeepSeek R1 。
7。DeepSeek R1分析了簡歷的內(nèi)容并提供了反饋。然后,使用此分析使用該服務器對客戶端響應res.json()。
克隆和運行React用戶界面
該項目的用戶界面將允許用戶上傳簡歷,將此簡歷發(fā)送到后端,然后將DeepSeek R1簡歷分析的結(jié)果顯示給用戶。它還將顯示內(nèi)部思想鏈或?qū)eepSeek R1的思考。
1。要開始,分叉然后從此Github URL中克隆該項目。如果您不打算進行許多自定義,則可以簡單地克隆它。
2??寺№椖亢螅褂妹钷D(zhuǎn)到根項目目錄cd deepseek-ollama-frontend。
3。在項目根部內(nèi),使用npm install命令安裝必要的依賴項。安裝完成后,使用命令啟動項目npm run dev。
4。此React應用的主要組成部分是重新分析儀。在您選擇的編輯中打開它并進行分析。
5。此組件提供了一個輸入字段供用戶上傳文件。
6。上傳的文件使用API端點發(fā)送到服務器。
7.服務器的響應分為兩個部分的內(nèi)部思考和模型的實際響應。
8。該AnalysisSection組件顯示模型的響應以及包含ExpandableSection組件,該組件用于顯示DeepSeek R1的內(nèi)部思維。
9。導航到瀏覽器中的URL加載應用程序。上傳您的簡歷(或任何樣本簡歷),并觀察DeepSeek R1收到的分析。
結(jié)論
DeepSeek R1提供了一個獨特的機會,可以在內(nèi)部完全 構(gòu)建Genai-Power應用程序,并根據(jù)您的需求對其進行自定義。
在本文中,您了解了使用開源Genai模型的好處。此外,您已經(jīng)使用DeepSeek R1,Node.js和React設置了一個真實的應用程序。此設置使您可以使用AI完全離線執(zhí)行簡歷分析。您可以使用此工具在您的組織中雇用SMART,我建議您繼續(xù)基于本文獲得的知識并探索更多用例和應用程序。