DeepSeek引领潮流:低成本为团队打造定制化AI平台(上篇)

人工智能
在人工智能(AI)领域,其实不仅仅有大模型,还有框架和算法等核心概念,它们之间有着密切的关系。理解它们的区别和联系对于深入学习和应用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等,我们可以针对具体的运维场景定制化开发解决方案,实现高度自动化和高效运维。

总的来说,智能运维平台不仅提升了团队的效率,还能通过持续的自学习和知识库的更新,保持系统的灵活性和适应性,从而在未来的运维工作中为企业带来更加智能、快速、精确的服务。这不仅是运维领域的一次技术创新,更是企业数字化转型过程中的重要一步。

责任编辑:姜华 来源: 新钛云服
相关推荐

2013-09-25 17:31:08

Storwize V5虚拟化存储

2020-06-09 15:13:15

2013-11-28 09:21:19

2011-08-06 23:03:01

京瓷复合一体机

2009-03-19 10:00:06

2020-06-18 09:40:13

智慧城市数据存储基础架构

2023-12-07 12:38:09

架构低成本开发

2013-01-23 09:40:11

云计算云平台信息化

2010-01-27 15:17:50

2021-12-21 06:36:00

虚拟化VMware虚拟化课程

2021-12-21 23:21:16

DDOS防御安全

2021-03-16 16:38:10

亚马逊云科技EFS

2014-03-13 09:46:36

Linux操作系统开源

2010-03-31 16:35:36

信息化

2019-03-27 10:06:00

SAP沈自所人工智能

2011-03-24 14:57:23

SUSE Linux云计算

2009-04-07 16:08:22

LinuxXenSUSE

2025-02-11 09:39:00

点赞
收藏

51CTO技术栈公众号