華為云 Flexus+DeepSeek 征文|搭建部署Dify-LLM推理引擎,賦能AI Agent智能體實現動態聯網搜索能力

華為云 Flexus 云服務器 X 實例專門為 AI 應用場景設計。它提供了強大的計算能力,能夠滿足 DeepSeek 模型以及后續搭建 AI Agent 智能體過程中對于數據處理和模型運行的高要求。在網絡方面,具備高速穩定的網絡帶寬,這對于需要頻繁聯網搜索信息的 AI Agent 智能體至關重要,能確保快速獲取網絡數據。并且其具備良好的擴展性,當我們后續需要對智能體進行功能擴展或者處理更大規模數據時,可以方便地進行資源調整。同時,在成本控制上,Flexus 云服務器 X 實例提供了按需和包月等多種計費方式,適合不同規模和預算的開發者與企業。
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

graph TDA[User Agent] --> B[Dify API Server]B --> C[LLM Inference Engine]C --> D[Search Plugin]D --> E[Google/Bing API]C --> F[Knowledge Base]

安裝搭建步驟

步驟一:準備華為云 Flexus 云服務器 X 實例

1.1 登錄華為云官網,在云服務器產品頁面中選擇 Flexus 云服務器 X 實例。

1.2 根據實際需求選擇合適的配置,包括 CPU、內存、存儲等。如果預計處理大量數據和復雜任務,建議選擇較高配置以確保運行流暢。

1.3 選擇操作系統,如 Ubuntu 20.04 等,因為其對后續軟件安裝和配置的兼容性較好。

1.4 完成配置選擇后,點擊創建實例,按照提示完成支付等流程。等待實例創建完成,獲取服務器的公網 IP 地址、用戶名和初始密碼。

步驟二:在 Flexus 云服務器上部署 DeepSeek 模型

2.1 使用 SSH 工具,輸入服務器的公網 IP 地址、用戶名和密碼,登錄到 Flexus 云服務器。例如,在 Linux 系統下,可以在終端中執行命令ssh username@server_ip,然后輸入密碼即可登錄。

在這里插入圖片描述

2.2 安裝必要的依賴軟件
根據 DeepSeek 模型的運行要求,安裝相應的依賴軟件。這可能包括 Python 環境(建議 Python 3.8 及以上版本)、CUDA(如果服務器配備 GPU 且模型支持 GPU 加速)、cuDNN 等。例如,安裝 Python 3.8 可以通過以下命令:

sudo apt update
sudo apt install software - properties - common
sudo add - apt - repository ppa:deadsnakes/ppa
sudo apt install python3.8

2.3 下載 DeepSeek 模型
從 DeepSeek 官方網站或者其指定的開源代碼托管平臺(如 GitHub)下載 DeepSeek 模型的相關文件。確保下載的模型版本與服務器環境和后續使用需求相匹配。下載完成后,將模型文件解壓到合適的目錄,例如/home/user/deepseek_model。

# For Base Model
git lfs install
git clone https://huggingface.co/deepseek-ai/DeepSeek-V3-Base
# For Chat Model
git lfs install
git clone https://huggingface.co/deepseek-ai/DeepSeek-V3

在這里插入圖片描述

2.4 配置 DeepSeek 模型
進入模型解壓目錄,根據模型提供的配置文件模板,創建并編輯配置文件。配置文件中需要設置模型運行的相關參數,如模型權重文件路徑、輸入輸出格式、是否啟用 GPU 加速等。例如,如果使用 GPU 加速,需要在配置文件中正確設置 CUDA 相關參數:

{"use_gpu": true,"cuda_device": 0,"model_path": "/home/user/deepseek_model/model_weights.bin"
}

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

步驟三:獲取API Key

打開瀏覽器,訪問博查 AI 搜索的官方網站open.bochaai.com。
在網站首頁,使用微信掃碼進行登錄。如果沒有賬號,按照提示進行注冊。
登錄成功后,點擊右上角的 “AP KEY 管理”。
在 AP KEY 管理頁面中,點擊創建 API KEY。創建成功后,復制生成的 API KEY,后續在配置 AI Agent 智能體聯網搜索功能時會用到。

在這里插入圖片描述

步驟四:搭建 AI Agent 智能體聯網搜索功能

在這里插入圖片描述

安裝相關框架和庫
在 Flexus 云服務器上,使用 pip 安裝搭建 AI Agent 智能體所需的框架和庫,如 LangChain 等。LangChain 是一個用于開發由語言模型驅動的應用程序的框架,它提供了豐富的工具和接口來連接大模型與各種外部工具,包括 Web Search API。安裝命令如下:

pip install langchain

編寫代碼實現聯網搜索功能
使用 Python 編寫代碼,利用 LangChain 框架將 DeepSeek 模型與博查 Web Search API 進行集成:

在這里插入圖片描述

from langchain.llms import CustomLLM
from langchain.tools import BaseTool, StructuredTool, Tool, tool
from langchain.agents import initialize_agent, AgentType
import requests# 自定義DeepSeek模型調用類
class DeepSeekLLM(CustomLLM):def _call(self, prompt, stop = None):# 實現調用DeepSeek模型的邏輯,根據模型的API進行請求發送和結果獲取response = requests.post('http://deepseek_model_api_url', json = {'prompt': prompt})return response.json()['answer']@propertydef _identifying_params(self):return {}@propertydef _llm_type(self):return "deepseek"# 定義博查Web Search API工具
@tool
def web_search(query):api_key = "your_api_key"url = "https://api.bochaai.com/web_search"headers = {"Authorization": f"Bearer {api_key}","Content - Type": "application/json"}data = {"query": query}response = requests.post(url, headers = headers, json = data)if response.status_code == 200:return response.json()else:return "Web search error"# 初始化DeepSeek模型實例
deepseek_llm = DeepSeekLLM()# 初始化智能體
tools = [web_search]
agent = initialize_agent(tools, deepseek_llm, agent = AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose = True)# 測試智能體
result = agent.run("最近有什么重大的科技新聞")
print(result)

在上述代碼中,首先自定義了DeepSeekLLM類來調用 DeepSeek 模型,然后定義了web_search工具來調用博查 Web Search API 進行聯網搜索,最后使用initialize_agent函數初始化智能體,并將 DeepSeek 模型和聯網搜索工具整合在一起。運行代碼時,將your_api_key替換為實際獲取的博查 Web Search API Key,并根據 DeepSeek 模型的實際 API 地址修改http://deepseek_model_api_url。

步驟五:測試與優化

功能測試
在代碼中設置不同的查詢問題,如 “最近的人工智能研究進展”“當前熱門的科技產品有哪些” 等,運行代碼后觀察智能體的回答。檢查回答是否準確地包含了通過聯網搜索獲取的最新信息,并且回答的邏輯和內容是否合理。

測試項純LLM響應聯網增強響應
實時股價查詢? 無法獲取? 準確結果
最新賽事比分? 過時信息? 實時更新

性能優化
如果在測試過程中發現智能體的響應速度較慢,可以從以下幾個方面進行優化:
檢查服務器資源使用情況,確保服務器有足夠的 CPU、內存和網絡帶寬。如果資源不足,可以考慮升級服務器配置或者優化代碼中的資源使用方式。
優化博查 Web Search API 的調用參數,例如調整搜索結果的數量、設置合理的搜索時間范圍等,以減少不必要的數據獲取,提高搜索效率。
對 DeepSeek 模型的配置進行微調,例如調整模型的緩存策略、優化模型的計算資源分配等,以加快模型的推理速度。
錯誤處理優化
檢查代碼中的錯誤處理機制是否完善。例如,當博查 Web Search API 調用失敗時,智能體是否能夠給出合理的提示信息,而不是返回錯誤代碼或者崩潰。完善錯誤處理代碼,確保智能體在面對各種異常情況時都能穩定運行,并給用戶提供友好的反饋。

結尾

通過以上步驟,我們成功地使用華為云 Flexus+DeepSeek搭建了具備聯網搜索能力的 AI Agent 智能體,能夠為用戶提供更全面、及時的信息服務。在實際應用中,可以根據具體需求進一步擴展和優化智能體的功能。

本文聯網搜索使用的是開源免費的searxng
github項目開源地址 https://github.com/searxng/searxng

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84630.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 100個常用函數全面解析

Python 100個常用函數全面解析 1. 類型轉換函數 1.1 int() 將字符串或數字轉換為整數。 # 基本用法 int(123) # 123 int(3.14) # 3# 指定進制轉換 int(1010, 2) # 10 (二進制轉十進制) int(FF, 16) # 255 (十六進制轉十進制)# 臨界值處理 int() # ValueError: …

分享在日常開發中常用的ES6知識點【面試常考】

前言 在日常的業務開發中,可以熟悉運用掌握的知識點快速解決問題很重要。這篇分享JS相關的知識點,主要就是對數據的處理。 注意:本篇分享的知識點,只是起到一個拋磚引玉的作用,詳情的使用和更多的ES6知識點還請參考官…

CHI協議驗證中的異常及邊界驗證

CHI協議驗證中的異常及邊界驗證 針對 CHI 協議的錯誤注入工具、覆蓋率衡量方法及實際項目中的投入平衡 CHI 協議作為多核系統中復雜的緩存一致性協議,驗證其行為需要強大的工具和方法來執行錯誤注入和邊界條件測試,并衡量測試覆蓋率。以下詳細討論常用工具、覆蓋率評估方法及…

技術專欄|LLaMA家族——模型架構

LLaMA的模型架構與GPT相同,采用了Transformer中的因果解碼器結構,并在此基礎上進行了多項關鍵改進,以提升訓練穩定性和模型性能。LLaMA的核心架構如圖 3.14 所示,融合了后續提出的多種優化方法,這些方法也在其他模型&a…

電腦插入多塊移動硬盤后經常出現卡頓和藍屏

當電腦在插入多塊移動硬盤后頻繁出現卡頓和藍屏問題時,可能涉及硬件資源沖突、驅動兼容性、供電不足或系統設置等多方面原因。以下是逐步排查和解決方案: 1. 檢查電源供電問題 問題原因:多塊移動硬盤同時運行可能導致USB接口供電不足&#x…

Go 語言實現高性能 EventBus 事件總線系統(含網絡通信、微服務、并發異步實戰)

前言 在現代微服務與事件驅動架構(EDA)中,事件總線(EventBus) 是實現模塊解耦與系統異步處理的關鍵機制。 本文將以 Go 語言為基礎,從零構建一個高性能、可擴展的事件總線系統,深入講解&#…

npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js`

npm install 報錯如下, npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @biomejs/biome@1.9.4 postinstall: `node scripts/postinstall.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @biomejs/biome@1.9.4 postinstall script. npm ERR! This is pro…

APMPlus × veFaaS 一鍵開啟函數服務性能監控,讓函數運行全程可觀測

資料來源:火山引擎-開發者社區 近年來,無服務器架構(Serverless)的崛起讓開發者得以從基礎設施的復雜性中解放,專注于業務邏輯創新。但隨著采用率提升,新的問題開始出現——函數實例的短暫生命周期、動態變…

瑪哈特零件矯平機:精密制造中的平整度守護者

在精密制造、模具、沖壓、鈑金加工、汽車零部件、航空航天以及電子設備等眾多工業領域,零件的平整度(Flatness)是一項至關重要的質量指標。微小的翹曲、扭曲或彎曲都可能導致裝配困難、功能失效、外觀缺陷甚至影響整機性能。為了消除零件在加…

std::make_shared簡化智能指針 `std::shared_ptr` 的創建過程,并提高性能(減少內存分配次數,提高緩存命中率)

std::make_shared 是 C 標準庫中的一個函數模板,用于簡化智能指針 std::shared_ptr 的創建過程。引入 std::make_shared 的主要原因是提高代碼的安全性、性能和可讀性。以下是詳細分析: 1. 安全性提升 避免顯式調用 new 導致的錯誤 在不使用 std::make…

JDK版本如何絲滑切換

一句話總結 》》》步驟分為: 下載對應JDK配置環境變量 下載JDK 如何下載JDK這里不必多提,提出一點,就是多個版本的JDK最好放在一個文件夾里(忽略我的java文件夾,這里都是不同的jdk版本): 配置環…

Rust 通用代碼生成器:蓮花,紅蓮嘗鮮版三十六,啞數據模式圖片初始化功能介紹

Rust 通用代碼生成器:蓮花,紅蓮嘗鮮版三十六,啞數據模式圖片初始化功能介紹 Rust 通用代碼生成器蓮花,紅蓮嘗鮮版三十六。支持全線支持圖片預覽,可以直接輸出帶圖片的啞數據模式快速原型。啞數據模式和枚舉支持圖片。…

45. Jump Game II

目錄 題目描述 貪心 題目描述 45. Jump Game II 貪心 正向查找可到達的最大位置 時間復雜度O(n) class Solution { public:int jump(vector<int>& nums) {int n nums.size();if(n 1)return 0;int cur_cover 0;int cover 0;int res 0;for(int i 0;i < …

model.classifier 通常指模型的分類頭 是什么,詳細舉例說明在什么部位,發揮什么作用

model.classifier 通常指模型的分類頭 是什么,詳細舉例說明在什么部位,發揮什么作用 在深度學習模型中,分類頭(Classifier Head)是指模型末端用于完成分類任務的組件,通常是一個或多個全連接層(線性層)。它的作用是將模型提取的高層語義特征映射到具體的分類標簽空間。…

機器學習+城市規劃第十四期:利用半參數地理加權回歸來實現區域帶寬不同的規劃任務

機器學習城市規劃第十四期&#xff1a;利用半參數地理加權回歸來實現區域帶寬不同的規劃任務 引言 在城市規劃中&#xff0c;如何根據不同地區的地理特征來制定有效的規劃方案是一個關鍵問題。不同區域的需求和規律是不同的&#xff0c;因此我們必須考慮到地理空間的差異性。…

Kivy的ButtonBehavior學習

Kivy的ButtonBehavior學習 ButtonBehavior 簡介1、主要特點2、基本用法3、主要事件4、常用屬性5、方法代碼示例 文檔&#xff1a;https://kivy.org/doc/stable/api-kivy.uix.behaviors.button.html#kivy.uix.behaviors.button.ButtonBehavior ButtonBehavior 簡介 ButtonBeha…

WPS中將在線鏈接轉為圖片

WPS中將在線鏈接轉為圖片 文章目錄 WPS中將在線鏈接轉為圖片一&#xff1a;解決方案1、下載圖片&#xff0c;精確匹配&#xff08;會員功能&#xff09;2、將在線鏈接直接轉為圖片 一&#xff1a;解決方案 1、下載圖片&#xff0c;精確匹配&#xff08;會員功能&#xff09; …

API:解鎖數字化協作的鑰匙及開放實現路徑深度剖析

API:解鎖數字化協作的鑰匙及開放實現路徑深度剖析 一、API 的概念與本質 (一)定義與基本原理 API(Application Programming Interface,應用程序編程接口)是一組定義、協議和工具,用于構建和集成軟件應用程序。它如同一個精心設計的合約,詳細規定了軟件組件之間相互交…

Azure 虛擬機端口資源:專用 IP 和公共 IP Azure Machine Learning 計算實例BUG

## 報錯無解 找不到Azure ML 計算實例關聯的 NSG .env 文件和 ufw status&#xff1a; .env 文件中 EXPOSE_NGINX_PORT8080 是正確的&#xff0c;它告訴 docker-compose.yaml 將 Nginx 暴露在宿主機的 8080 端口。 sudo ufw status 顯示 Status: inactive&#xff0c;意味著宿…

深入理解Python協程:async def、async for、await、yield詳解

前言 在現代編程中&#xff0c;異步編程已成為提高程序效率和性能的重要方式。 Python 作為一種流行的編程語言&#xff0c;自然也提供了強大的異步編程支持。 本文將詳細介紹 Python 中的協程&#xff0c;以及 async def、async for、await 和 yield 等關鍵字的使用。 協程簡介…