华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建b站视频总结大模型

发布于:2025-06-24 ⋅ 阅读:(12) ⋅ 点赞:(0)

华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建b站视频总结大模型

什么是华为云ModelArts

  • 华为云ModelArts ModelArts是华为云提供的全流程AI开发平台,覆盖从数据准备到模型部署的全生命周期管理,帮助企业和开发者高效构建、训练、部署AI模型,实现智能化升级。

开始接触华为云ModelArts Studio大模型即服务平台

  • 访问官方地址https://www.huaweicloud.com/product/modelarts/studio.html
    在这里插入图片描述

快速搭建Dify-LLM应用开发平台

什么是Dify-LLM应用开发平台

  • Dify-LLM 应用开发平台是一个基于大型语言模型(LLM)的低代码/无代码开发平台,旨在帮助开发者快速构建、部署和管理基于 AI 的应用程序。它提供了可视化的操作界面和丰富的工具,简化了从模型调用到应用上线的全流程,适合不同技术背景的用户使用。

  • 华为云提供了一键部署快速搭建Dify平台的功能,使开发者可以快速搭建生产级的生成式AI应用

  • 快速搭建的方案架构如下
    在这里插入图片描述

  • 通过VPC与安全组构建安全网络,用户经ELB接入CCE部署的Dify服务集群,结合Embedding与reranker增强AI能力,并依托Redis、PostgreSQL、CSS与OBS实现多样化数据存储与处理,具备高可用、可扩展特性

开始搭建Dify-LLM应用开发平台

  • 先进入官网https://www.huaweicloud.com/solution/implementations/building-a-dify-llm-application-development-platform.html
    在这里插入图片描述

  • 选择一键部署(云服务器单机部署)
    在这里插入图片描述

  • 这里不做操作直接下一步
    在这里插入图片描述

  • 把密码设置好下一步
    在这里插入图片描述

  • 继续下一步
    在这里插入图片描述

  • 点击创建执行计划
    在这里插入图片描述

  • 可以查看费用,然后点击部署
    在这里插入图片描述

  • 可以看到正在按顺序部署
    在这里插入图片描述

  • 等待服务部署完毕,访问Dify-LLM应用开发平台
    在这里插入图片描述

  • 部署完毕,访问Dify-LLM应用开发平台
    在这里插入图片描述

  • 登录Dify-LLM应用开发平台
    在这里插入图片描述

  • 至此搭建Dify-LLM应用开发平台大功告成,不得不说,华为云一键部署Dify平台真是太方便了,全程不需要怎么操作,全是一键搞定


开始搭建b站视频总结大模型

什么是b站视频总结大模型

  • B站视频总结大模型是专门用于将B站(哔哩哔哩)视频内容提炼成出核心摘要的AI工具,通过自然语言处理技术快速提取关键信息,帮助用户高效获取视频主旨。

开始搭建

  • 开始搭建b站视频总结大模型,新建一个工作流
    在这里插入图片描述

  • 然后我们需要调用华为云的DeepSeek-V3-32K模型作为基底大模型

  • 安装dify中的大模型插件,OpenAI-API-compatible
    在这里插入图片描述

  • 等待安装完成
    在这里插入图片描述

  • 设置大模型
    在这里插入图片描述

  • 密钥从华为云中获取
    在这里插入图片描述

  • 进入api-key管理,创建自己的key,用于调用大模型
    在这里插入图片描述

  • 回来继续配置key,注意接口地址是https://api.modelarts-maas.com/v1
    在这里插入图片描述

  • 这样大模型就配置完毕了

  • 回到流水线,新建两个参数
    在这里插入图片描述

  • 然后创建代码执行

import json
import requests
import re

def main(arg1: str, arg2: str) -> dict:
    headers = {
        "Cookie": arg1,
        "Origin": "https://www.bilibili.com",
        "Referer": "https://www.bilibili.com",
    }
    
    bvid = arg2  
    result = {"title": "", "subtitles": ""}  
    
    try:
        video_info_url = f"https://api.bilibili.com/x/web-interface/view?bvid={bvid}"
        video_info_res = requests.get(video_info_url, headers=headers, timeout=10)
        video_info_res.raise_for_status()
        video_data = video_info_res.json()
        
       
        result["title"] = video_data["data"]["title"]
        
       
        aid = video_data["data"]["aid"]
        cid = video_data["data"]["cid"]
        
        subtitle_info_url = f"https://api.bilibili.com/x/player/wbi/v2?aid={aid}&cid={cid}"
        subtitle_info_res = requests.get(subtitle_info_url, headers=headers, timeout=10)
        subtitle_info_res.raise_for_status()
        
        
        subtitle_url_match = re.search(r'"subtitle_url":"(.*?)"', subtitle_info_res.text)
        if not subtitle_url_match:
            result["subtitles"] = "No subtitles available"
            return {"result": json.dumps(result, ensure_ascii=False)}  
        
        subtitle_url = f"https:{subtitle_url_match.group(1)}"
        subtitle_res = requests.get(subtitle_url, headers=headers, timeout=10)
        subtitle_res.raise_for_status()
        
        subtitle_data = json.loads(subtitle_res.text)
        subtitles = [item['content'] for item in subtitle_data['body']]
        result["subtitles"] = "\n".join(subtitles)  
        
        processed_subtitles = preprocess_subtitles(result["subtitles"])
        result["subtitles"] = processed_subtitles
        return {"result": json.dumps(result, ensure_ascii=False)}
    
    except Exception as e:
        return {"result": json.dumps({"error": str(e)}, ensure_ascii=False)}

在这里插入图片描述

  • 然后创建代码执行,用于提取返回值结果
import json

def main(data_str: str) -> dict:
    try:
        data = json.loads(data_str)  
        title = data.get("title", "未知标题")
        subtitles = data.get("subtitles", "")
        
        if not subtitles.strip():
            return {
                "title": title,
                "subtitles": "(无字幕内容)"
            }
        else:
            return {
                "title": title,
                "subtitles": subtitles
            }
    
    except json.JSONDecodeError:
        return {
            "title": "数据解析失败",
            "subtitles": ""
        }

在这里插入图片描述

  • 然后把结果返回给大模型进行汇总总结
你是一个专业的视频内容分析师,请根据以下视频标题和字幕,生成一份简洁且结构化的总结:

### 视频标题
/title

### 预处理后的字幕
/subtitles

### 总结要求
1. **背景**:用1句话概括视频主题(需包含标题关键词)。
2. **关键事件**:按时间顺序列出3-5个核心事件(避免细节,用短语描述)。
3. **亮点**:提取2-3个有趣/意外的内容(如反差、幽默、情感转折)。
4. **情感倾向**:判断视频整体情绪(积极/消极/中性)并说明原因。
5. **长度控制**:总结总字数不超过200字。

### 输出格式
```json
{
  "summary": {
    "background": "一句话背景",
    "key_events": ["事件1", "事件2", "事件3"],
    "highlights": ["亮点1", "亮点2"],
    "sentiment": {
      "tone": "积极/消极/中性",
      "reason": "判断依据"
    }
  }
}

在这里插入图片描述

  • 添加结束节点,输出结果

在这里插入图片描述

  • 然后发布更新,进行功能测试

在这里插入图片描述

  • 至此b站视频总结大模型搭建完毕

欢迎大家一起加入华为云

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到