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

近期,隨著大模型的快速發展,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框架(多智能體),專為應用開發者打造。使大模型以軟件公司的形式工作,協作處理更復雜的任務。
- MetaGPT輸入一句話的老板需求,輸出用戶故事 / 競品分析 / 需求 / 數據結構 / APIs / 文件等。
- 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,提供高效、精確的解決方案。
功能展示
1.故障處理
接口錯誤處理
當接口發生錯誤時,系統能夠自動根據告警中的信息,獲取該接口當時的調用鏈ID,具體的調用鏈詳情和相關日志信息,進行詳細分析并給出初步的診斷結果,同時生成故障報告。智能運維平臺能夠減少人工干預,并迅速提供解決方案,幫助運維人員迅速定位問題并修復。
工作邏輯展示
告警轉接到ReactAgent。

模型理解問題,并從知識庫中尋找排查步驟作為參考。

根據整理好的排查步驟分步進行信息收集。
獲取導致接口故障的調用鏈ID。

獲取調用鏈詳情。

自動生成查詢語句獲取日志。

整合信息進行分析并生成報告。

報告展示:

OOM應急處理
針對OOM(Out of Memory)告警,系統可以自動響應,進行日志收集、內存使用情況分析、服務JVM配置分析,判斷FullGC情況進行分析。根據收集的信息得出合適的處理規則,擴容副本,JVM配置調整,服務重啟等操作,并發送釘釘通知。
極大的縮減了因服務宕機導致的各種功能不可用,網頁打不開等風險。

2.日程巡檢
系統支持定時執行全面的巡檢任務,并生成詳細的報告,確保各項運維工作及時跟進。

3.信息查詢
異常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_cnotallow=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-06 15: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_descriptinotallow=params_description)
if not 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。具體執行步驟省略
...
# 最終返回ServiceResponse
return ServiceResponse(status, output)查詢prometheus指示數據
def get_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')
if not promql or not prometheus_cluster:
return ServiceResponse(ServiceExecStatus.ERROR, "缺少必要的查詢參數")
# 獲取到PromQL和集群賬密后,獲取監控數據
...
return ServiceResponse(ServiceExecStatus.SUCCESS, str([result]))總結
通過智能運維平臺的構建和應用,我們能夠有效提升運維團隊的工作效率,減少人為干預,快速響應和解決各種問題。從傳統的告警處理、故障診斷到資源使用監控,智能運維平臺的自動化和智能化使得運維管理更加高效、精準。
利用如DeepSeek等大模型以及API遠程調用的能力,不僅可以降低硬件需求,還能通過靈活的框架設計滿足不同運維需求。通過不同的AI框架,如MetaGPT、AgentScope等,我們可以針對具體的運維場景定制化開發解決方案,實現高度自動化和高效運維。
總的來說,智能運維平臺不僅提升了團隊的效率,還能通過持續的自學習和知識庫的更新,保持系統的靈活性和適應性,從而在未來的運維工作中為企業帶來更加智能、快速、精確的服務。這不僅是運維領域的一次技術創新,更是企業數字化轉型過程中的重要一步。






















