DeepSeek引領潮流:低成本為團隊打造定製化AI平臺(上篇)

新鈦雲服已累計為您分享832篇技術乾貨
近期,隨著大模型的快速發展,DeepSeek等大模型成為了AI領域的熱門話題。如今,團隊可以透過本地部署一套AI框架,結合遠端呼叫大模型的官方API,而無需配備大量伺服器或高效能顯示卡,便可輕鬆實現大模型的使用。這種方式不僅降低了硬體成本,也讓AI技術的應用變得更加靈活和高效。
在人工智慧(AI)領域,其實不僅僅有大模型,還有框架演算法等核心概念,它們之間有著密切的關係。理解它們的區別和聯絡對於深入學習和應用AI技術至關重要。以下是對它們的詳細解釋和相互關係:
AI模型(Model)
AI模型是經過訓練,能夠處理和學習資料的數學結構。模型的核心作用是根據輸入資料進行預測、分類、生成等任務。AI模型通常是透過機器學習深度學習演算法構建的,經過大量的訓練資料來調整其內部引數。
AI框架(Framework)
AI框架是一組用於開發和訓練AI模型的工具和庫,它提供了處理和構建AI模型的基礎設施。框架包含了各種工具、API和預構建的模組,可以幫助開發者更高效地構建、訓練和部署AI模型。AI框架通常是開源的,它們封裝了許多複雜的實現細節,使得AI開發者能夠專注於演算法設計和業務邏輯。
AI演算法(Algorithm)
AI演算法是指執行特定任務的數學方法和規則。它們是建立AI模型的基礎,定義了模型如何從資料中學習、更新其引數和做出預測。不同的演算法適用於不同型別的任務和資料。AI演算法的目的是透過分析和最佳化輸入資料,使得模型能夠根據這些資料作出合理的判斷。
AI框架推薦
框架作為實現演算法和模型的工具,本期主要對定製化AI系統框架和工作原理進行介紹,首先推薦幾款開源的框架:
FastGPT

使用簡單,無需程式碼開發,開箱即用,但是功能有限擴充套件性不高。比較適合簡單使用和低程式碼開發的場景.
MetaGPT
Metagpt是一款Multi-Agent框架(多智慧體),專為應用開發者打造。使大模型以軟體公司的形式工作,協作處理更復雜的任務
  1. MetaGPT輸入一句話的老闆需求,輸出使用者故事 / 競品分析 / 需求 / 資料結構 / APIs / 檔案等
  2. MetaGPT內部包括產品經理 / 架構師 / 專案經理 / 工程師,它提供了一個軟體公司的全過程與精心調配的SOP
同樣作為多智慧體程式設計框架,AgentScope對於React框架更加友好,是阿里通義千問團隊開源的AI框架,適配多種大模型,Dashscope,OpenAI等。也是新鈦團隊最終選擇使用的框架。
Agenscope
同樣作為多智慧體程式設計框架,AgentScope對於React框架更加友好,是阿里通義千問團隊開源的AI框架,適配多種大模型,Dashscope,OpenAI等。也是新鈦團隊最終選擇使用的框架。
為什麼需要引入智慧運維?
傳統運維工作通常面臨高度重複、低效和響應慢的問題,尤其是在高頻告警和夜間告警情況下。運維人員需要逐一分析和定位故障,且故障恢復時間往往較長,容易受到人為疲勞和處理能力的限制。
此外,日常巡檢、工單處理,問題處理等任務消耗大量時間和人力,運維人員不得不手動完成這些繁瑣的操作,導致效率低下。
智慧運維的優勢
引入智慧運維平臺,透過自動化和智慧化手段解決這些問題,使運維工作更加高效、準確。
1.快速響應與自動化處理
對於告警,響應時間可以縮短至2-5分鐘,系統自動識別問題並執行處理,避免人工延遲。
2.自動故障診斷與處理
對於系統故障,智慧平臺能夠自動診斷並提供解決方案,減少人工干預,幫助運維人員快速定位和修復問題。
3.降低服務不可用時間
透過自動診斷和故障修復,顯著減少服務停機時間,確保業務持續穩定執行。
4.減輕運維人員負擔
智慧運維平臺承擔日常巡檢、告警處理,報表生成等重複性任務,讓運維人員專注於更高優先順序的工作,同時即時監控和報表生成幫助團隊最佳化決策。
5.提升系統智慧與自學習能力
平臺透過自我學習,不斷最佳化故障診斷和自動修復流程,提高處理新問題的能力和精準度。
6.風險預測
系統透過資料分析預測潛在風險,幫助團隊制定前瞻性決策,從而提升整體運營效率。
透過智慧運維平臺,企業可以大幅提升運維效率、減少人為錯誤,並確保系統的穩定性與業務連續性,讓運維團隊能夠更高效地應對挑戰,支援業務的可持續發展。
功能介紹

如上圖所示,智慧運維繫統透過多個功能專一的 Agent 組合而成,例如 日誌Agent、資料庫Agent、雲監控Agent 等。每個Agent負責處理特定領域的任務,並能夠獨立執行或協作完成更復雜的運維任務。透過這種 模組化 的設計,系統能夠根據實際需求靈活組合不同的Agent,提供高效、精確的解決方案。
功能展示
01
故障處理
介面錯誤處理
當介面發生錯誤時,系統能夠自動根據告警中的資訊,獲取該介面當時的呼叫鏈ID,具體的呼叫鏈詳情和相關日誌資訊,進行詳細分析並給出初步的診斷結果,同時生成故障報告。智慧運維平臺能夠減少人工干預,並迅速提供解決方案,幫助運維人員迅速定位問題並修復。
工作邏輯展示
1. 告警轉接到ReactAgent
2. 模型理解問題,並從知識庫中尋找排查步驟作為參考
3. 根據整理好的排查步驟分步進行資訊收集
獲取導致介面故障的呼叫鏈ID
獲取呼叫鏈詳情
自動生成查詢語句獲取日誌
4. 整合資訊進行分析並生成報告
報告展示
OOM應急處理
針對OOM(Out of Memory)告警,系統可以自動響應,進行日誌收集、記憶體使用情況分析、服務JVM配置分析,判斷FullGC情況進行分析。根據收集的資訊得出合適的處理規則,擴容副本,JVM配置調整,服務重啟等操作,併發送釘釘通知。
極大的縮減了因服務宕機導致的各種功能不可用,網頁打不開等風險。
02
日程巡檢
系統支援定時執行全面的巡檢任務,並生成詳細的報告,確保各項運維工作及時跟進。

03
資訊查詢
異常IP查詢
針對流量激增或異常訪問,平臺能夠快速提供流量突增的服務和介面資訊,精準剖析出來源IP及其訪問的具體內容,幫助運維人員高效定位問題。

CPU,記憶體等使用率查詢
支援對伺服器、容器、中介軟體等資源的CPU、記憶體、磁碟等使用詳情進行即時查詢,幫助運維人員全面掌握系統資源的使用情況,及時發現潛在問題。
前端展示
AgentScope 自帶的前端頁面,詳細記錄了框架和模型互動的過程,以及最終結果展示。

但是這樣的頁面並不適合作為直接面向用戶的互動介面。為了提供更友好的使用者體驗,我們使用 Gradio 建立了定製化的前端頁面。

系統架構和工作原理
系統入口
系統透過三個主要入口進行操作:釘釘機器人互動、Web頁面和告警介面。這三個入口分別接收使用者的需求、問題或告警資訊。透過 UserAgent 智慧體將這些資訊轉化為簡潔的“老闆需求”,以便於進一步處理。所有的資訊最終都彙總為一個統一的請求,並被傳遞到 AgentScope 環境中。
知識庫
在 AgentScope 環境中,React智慧體 根據請求呼叫 RAG(Retrieval-Augmented Generation) 知識庫,檢索相關文件和資訊。這一過程結合了檢索和生成的優勢,可以快速、精準地為複雜問題提供解決方案。對於需要額外處理的任務,系統會呼叫已有的工具包,以便在多步驟的操作中自動化處理複雜問題。
持續學習
經過詳細分析和處理後,系統生成最終的響應,並透過三個入口中的任一方式返回給使用者。為了不斷提升系統的智慧性,響應結果 會被記錄和儲存,且 知識庫 會隨著每次反饋進行更新和完善,從而實現系統的自我學習和進步。
這種設計方式不僅能夠即時處理告警和問題,還透過智慧體和工具包的有效配合,持續最佳化和提高決策和響應效率,使得每次互動都能帶來更高效、準確的服務。
程式碼展示
以 介面問題處理 為例,我們在知識庫中定義了該類問題的標準排查流程。大模型會根據這些定義好的排查思路,自動生成具體的執行步驟,並根據即時獲取的資訊進行彙總分析。最終,系統會結合這些資料生成解決方案,幫助快速定位並解決問題。
對接大模型
YOUR_MODEL_CONFIGURATION_NAME = "qwen_config"YOUR_MODEL_CONFIGURATION = {"model_type": "dashscope_chat","config_name": "qwen_config","model_name": "qwen-max-latest","api_key": "xxxxx","verbose": False,"max_tokens": 100000000,"enable_search": True# ...}agentscope.init( model_configs=YOUR_MODEL_CONFIGURATION, project="Conversation with ReActAgent", save_api_invoke=True,)user = UserAgent(name="User")react_agent = ReActAgent( name="運維AI", model_config_name=YOUR_MODEL_CONFIGURATION_NAME, verbose=True, service_toolkit=service_toolkit, sys_prompt="你是一個非常專業的運維工程師,專業友好地與使用者溝通交流。")
知識庫
定義複雜問題處理思路,大模型會理解並生成對應處理步驟
[ {"metadata": {"alertId": "5xx_error","alertType": "服務介面故障","tags": {"metricName": "Ingress響應碼-5xx告警","metricProject": "acs_ingress" },"solutionSteps": [ {"step": 1,"description": "根據告警url獲取失敗的traceID", }, {"step": 2,"description": "查詢上述獲取的traceID的完整呼叫鏈資訊" }, {"step": 3,"description": "透過知識庫獲得基於traceID查詢錯誤日誌的SLS查詢語句及其所需引數", }, {"step": 4,"description": "獲取該traceID的錯誤日誌", }, {"step": 5,"description": "最近統一進行分析,然後生成故障報告", } ] },"text": "用於在服務介面響應 5xx 錯誤時進行排查。它包含了詳細的步驟,可以有效識別和解決介面問題。" }]
工具篇舉例
查詢阿里雲sls日誌工具
def get_sls_logs(target: str) -> ServiceResponse:""" 查詢儲存在阿里雲SLS中的日誌。 Args: target (str): 自然語言描述的查詢需求,例如: - "查詢prodapp-java這個logstore的日誌,時間在2025-01-0615:13:37" """ rag_file = "aliyun_sls_log-get_sls_logs.json"# 提供給大模型的資訊 params_description = {"project": "str型別,project名稱,必選","logstore": "str型別,logstore名稱,必選","fromTime": "int/str型別,開始時間,可以是時間戳或'%Y-%m-%d %H:%M:%S'格式的字串,可選,預設None","toTime": "int/str型別,結束時間,可以是時間戳或'%Y-%m-%d %H:%M:%S'格式的字串,可選,預設None","topic": "str型別,日誌主題名稱,可選,預設None","query": "str型別,阿里雲SLS查詢語句,可選,預設None","line": "int型別,返回日誌的最大行數,可選,預設100","offset": "int型別,返回日誌的起始偏移行,可選,預設0","reverse": "bool型別,是否按時間倒序返回日誌,可選,預設False","power_sql": "bool型別,是否使用增強SQL模式,可選,預設False","scan": "bool型別,是否使用掃描模式,可選,預設False","forward": "bool型別,僅用於掃描查詢,true表示獲取下一頁,false表示獲取上一頁,可選,預設True","accurate_query": "bool型別,是否使用全域性有序時間模式,可選,預設True","from_time_nano_part": "int型別,查詢開始時間的納秒部分,可選,預設0","to_time_nano_part": "int型別,查詢結束時間的納秒部分,可選,預設0" }# 從知識庫獲取引數 kb_response = knowledge_base(target=target, rag_file=rag_file, params_description=params_description)ifnot kb_response:return ServiceResponse(ServiceExecStatus.ERROR, "無法理解查詢意圖") params = json.loads(params_match.group()) project = params.get('project') logstore = params.get('logstore') query = params.get('query')# SLS相關資訊 endpoint = 'cn-shanghai.log.aliyuncs.com'# 獲取到SLS日誌庫資訊和SQL。具體執行步驟省略 ...# 最終返回ServiceResponsereturn ServiceResponse(status, output)
查詢prometheus指示資料
defget_prometheus_metrics(target: str) -> ServiceResponse:""" 從prometheus查詢監控資料。 Args: target (str): 自然語言描述的查詢需求 Returns: ServiceResponse: 包含查詢結果或錯誤資訊的響應物件 """ rag_file = "prometheus.json" params_description: Dict = {"PromQL": "從知識庫獲取的Prometheus查詢語句,只能傳入一個。需要先移除SQL中的轉義符。","prometheus_cluster": "從知識庫獲取的Prometheus叢集,只能傳入一個。" }# 從utils匯入通用的知識庫引數獲取函式from services.utils.rag_utils import get_rag_params# 獲取知識庫引數 params = get_rag_params(target, rag_file, params_description)# 如果params是ServiceResponse,則直接返回if isinstance(params, ServiceResponse):return params promql = params.get('PromQL') prometheus_cluster = params.get('prometheus_cluster')ifnot promql ornot prometheus_cluster:return ServiceResponse(ServiceExecStatus.ERROR, "缺少必要的查詢引數")# 獲取到PromQL和叢集賬密後,獲取監控資料 ... return ServiceResponse(ServiceExecStatus.SUCCESS, str([result]))
總 結
透過智慧運維平臺的構建和應用,我們能夠有效提升運維團隊的工作效率,減少人為干預,快速響應和解決各種問題。從傳統的告警處理、故障診斷到資源使用監控,智慧運維平臺的自動化和智慧化使得運維管理更加高效、精準。
利用如DeepSeek等大模型以及API遠端呼叫的能力,不僅可以降低硬體需求,還能透過靈活的框架設計滿足不同運維需求。透過不同的AI框架,如MetaGPT、AgentScope等,我們可以針對具體的運維場景定製化開發解決方案,實現高度自動化和高效運維。
總的來說,智慧運維平臺不僅提升了團隊的效率,還能透過持續的自學習和知識庫的更新,保持系統的靈活性和適應性,從而在未來的運維工作中為企業帶來更加智慧、快速、精確的服務。這不僅是運維領域的一次技術創新,更是企業數字化轉型過程中的重要一步。
如有相關問題,請在文章後面給小編留言,小編安排作者第一時間和您聯絡,為您答疑解惑。
    推薦閱讀   

    推薦影片    

相關文章