华为开发者空间介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。

免费领取开发者空间云主机

PC端
移动端

案例介绍

案例介绍

1. 概述

1.1 背景介绍

随着科技的不断进步,大模型技术在各领域展现出巨大的应用潜力。在表格处理和数据分析方面,借助大模型能够实现更高效、精准的操作。本次案例将围绕基于大模型技术进行表格处理/数据分析展开,通过实际操作演示,助力大家掌握相关技能,无论是企业处理大量业务数据,还是个人开发者和高校学生应对学习、研究中的数据问题,都能从中受益,轻松搭建专属服务。

1.2 适用对象

企业、个人开发者、高校学生。

1.3 案例时间

本案例总时长预计60分钟。

1.4 案例流程

  • 基于大模型技术进行表格处理/数据分析的案例
  • 提示词工程介绍
  • 使用ollama启动模型服务
  • 在cherry studio中接入本地的ollama服务的deepseek模型
  • 在cherry studio中上传要处理、分析的表格
  • 在 cherry studio 中进行提示词工程,处理和分析表格数据

1.5 资源总览

本案例预计花费总计0元。

资源名称规格单价(元)时长(分钟)
云主机ARM | 4C8G | Ubuntu免费60

1.6 华为开发者空间介绍

华为开发者空间,是为全球开发者打造的专属开发者空间,致力于为每位开发者提供一台云主机(点击免费领取)、一套开发工具和云上存储空间,汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源,并提供配套案例指导开发者 从开发编码到应用调测,基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。

2. 操作步骤

2.1 安装Ollama

在云主机桌面右键选择“Open Terminal Here”,打开命令终端窗口,输入:

curl -fsSL https://ollama.com/install.sh | sh

在这里插入图片描述

安装完成后验证是否成功安装:

ollama --version
在这里插入图片描述

2.2 下载运行DeepSeekR1

使用 Ollama 下载 DeepSeek R1 模型:

ollama pull deepseek-r1:1.5b
在这里插入图片描述

然后启动模型:

ollama run deepseek-r1:1.5b

在这里插入图片描述

默认API地址:

http://ip:11434/v1/

2.3 安装Cherry Studio并调用 DeepSeek API

下载地址:

客户端下载 | CherryStudio

在这里插入图片描述

到对应的目录下面进行先赋予权限,然后运行

chmod +x Cherry-Studio-1.2.10-arm64.AppImage

./Cherry-Studio-1.2.10-arm64.AppImage --no-sandbox --disable-gpu

2.4 配置Cherry Studio 访问 DeepSeek API

进入设置进行配置API地址:

在这里插入图片描述

然后点击添加输入如下:deepseek-r1:1.5b

在这里插入图片描述

修改默认模型均为deepseek-r1:1.5b | Ollama
在这里插入图片描述

3. 在cherry studio中上传要处理和分析的表格

打开cherry studio,然后进行文档的拖拽式上传

在这里插入图片描述

测试是否上传成功:

在这里插入图片描述

4. 处理上传的文档和分析的表格

4.1 案例1,不同提示词的处理效果

表格内容为:

居民ID姓名年龄性别血压(mmHg)血糖(mmol/L)胆固醇(mmol/L)BMI健康风险等级建议项目
CQ1001王建国52142/926.85.928.4中风险心血管专项检查
CQ1002李淑芬67130/855.14.823.1低风险骨密度检测
CQ1003张建军48158/1029.26.731.6高风险糖尿病管理门诊
CQ1004陈晓梅59145/887.55.326.9中风险饮食干预计划
CQ1005赵志强71122/795.84.522.7低风险年度常规复查

提问一:赵志强的血压是多少
在这里插入图片描述

提问二:血压最高的是多少,是谁
在这里插入图片描述

提问三:其中每一项最高值都分别是什么
在这里插入图片描述

总结:体检数据分析交互评估

  1. 提示词精准度
  • 第二个问题(“血压最高是多少,是谁”)要求明确聚焦单一指标(血压)的极值定位,指令简洁无歧义:

    • 关键要素完整:明确目标指标(血压)、计算要求(最高值)、返回对象(人员信息)。

    • 无冗余信息:未引入无关字段(如年龄、血糖),避免干扰核心任务。

  1. 模型的上下文理解能力
  • 跨问题继承计算逻辑:

    • 上文(血压极值分析)已激活极值定位算法(遍历比较数值列),当第三个问题(“每一项最高值”)扩展为全字段极值分析时:

      • 直接复用遍历比较逻辑,无缝切换至多指标(年龄、血压、血糖等)。

      • 自动继承结构化输出范式(分项说明+汇总表格)。

  • 动态关联健康洞察:

    • 基于前文对“高风险”标签的解读经验(如张建军血压/血糖超标),在输出最高值时主动关联健康风险提示(例:张建军5项指标最高,需重点关注)。

4.2 案例2,开支明细表

表格内容为:

具体项目金额(元)支付方式购买地点
超市购物286.5支付宝永辉超市
钢琴课学费800银行转账艺术培训中心
夏季连衣裙299微信支付优衣库
水电燃气费327.9自动扣款支付宝生活缴费
必胜客披萨128美团支付美团外卖
汽油费300中石化APP加油站
电影院《沙丘2》136淘票票万达影城
感冒药+维生素78医保卡同仁堂药店
猫粮+猫砂195京东白条京东到家
朋友结婚红包500现金婚礼现场

计算各类支出
在这里插入图片描述

具体回复:

计算各类支出的分类统计需要将支出项目映射到对应类别,并按类别分组计算了总金额、消费次数和平均金额三项关键统计指标。

以下是一个示例代码:

import pandas as pd

def calculate_expense_stats():
    # 创建DataFrame (代替读取CSV)
    data = {
        '具体项目': ['超市购物', '钢琴课学费', '夏季连衣裙', '水电燃气费', '必胜客披萨', 
                  '汽油费', '电影院《沙丘2》', '感冒药+维生素', '猫粮+猫砂', '朋友结婚红包'],
        '金额(元)': [286.5, 800, 299, 327.9, 128, 300, 136, 78, 195, 500],
        '支付方式': ['支付宝', '银行转账', '微信支付', '自动扣款', '美团支付', 
                  '中石化APP', '淘票票', '医保卡', '京东白条', '现金'],
        '购买地点': ['永辉超市', '艺术培训中心', '优衣库', '支付宝生活缴费', '美团外卖', 
                  '加油站', '万达影城', '同仁堂药店', '京东到家', '婚礼现场']
    }
    df = pd.DataFrame(data)
    
    # 创建支出类别映射
    category_map = {
        '食品杂货': ['超市购物'],
        '教育': ['钢琴课学费'],
        '服装': ['夏季连衣裙'],
        '公用事业': ['水电燃气费'],
        '餐饮外卖': ['必胜客披萨'],
        '交通': ['汽油费'],
        '娱乐': ['电影院《沙丘2》'],
        '医疗健康': ['感冒药+维生素'],
        '宠物': ['猫粮+猫砂'],
        '礼物': ['朋友结婚红包']
    }
    
    # 为每个项目添加分类
    def map_category(item):
        for category, items in category_map.items():
            if item in items:
                return category
        return '其他'
    
    df['支出类别'] = df['具体项目'].apply(map_category)
    
    # 按类别分组统计
    stats = df.groupby('支出类别')['金额(元)'].agg(['sum', 'count', 'mean'])
    stats = stats.rename(columns={
        'sum': '总金额(元)',
        'count': '消费次数',
        'mean': '平均金额(元)'
    })
    
    return stats

# 执行并打印结果
results = calculate_expense_stats()
print("支出分类统计结果:")
print(results)
print("\n总支出金额:", results['总金额(元)'].sum())

可以看出,分类键名不太正确,我们需使用正确的分类键名,然后运行代码:

import pandas as pd

def calculate_expense_stats():
    # 创建DataFrame (代替读取CSV)
    data = {
        '具体项目': ['超市购物', '钢琴课学费', '夏季连衣裙', '水电燃气费', '必胜客披萨', 
                  '汽油费', '电影院《沙丘2》', '感冒药+维生素', '猫粮+猫砂', '朋友结婚红包'],
        '金额(元)': [286.5, 800, 299, 327.9, 128, 300, 136, 78, 195, 500],
        '支付方式': ['支付宝', '银行转账', '微信支付', '自动扣款', '美团支付', 
                  '中石化APP', '淘票票', '医保卡', '京东白条', '现金'],
        '购买地点': ['永辉超市', '艺术培训中心', '优衣库', '支付宝生活缴费', '美团外卖', 
                  '加油站', '万达影城', '同仁堂药店', '京东到家', '婚礼现场']
    }
    df = pd.DataFrame(data)
    
    # 创建支出类别映射
    category_map = {
        '食品杂货': ['超市购物'],
        '教育': ['钢琴课学费'],
        '服装': ['夏季连衣裙'],
        '公用事业': ['水电燃气费'],
        '餐饮外卖': ['必胜客披萨'],
        '交通': ['汽油费'],
        '娱乐': ['电影院《沙丘2》'],
        '医疗健康': ['感冒药+维生素'],
        '宠物': ['猫粮+猫砂'],
        '礼物': ['朋友结婚红包']
    }
    
    # 为每个项目添加分类
    def map_category(item):
        for category, items in category_map.items():
            if item in items:
                return category
        return '其他'
    
    df['支出类别'] = df['具体项目'].apply(map_category)
    
    # 按支出类别分组统计 - 使用正确的分类键名
    stats = df.groupby('支出类别').agg({
        '金额(元)': ['mean', 'sum', 'count'],
        '支付方式': lambda x: ', '.join(set(x))  # 显示该类别使用的支付方式
    })
    
    # 重命名列名使其更清晰
    stats.columns = ['平均金额', '总金额', '消费次数', '支付方式汇总']
    
    # 添加占总支出百分比
    stats['占比(%)'] = (stats['总金额'] / stats['总金额'].sum() * 100).round(1)
    
    return stats.sort_values('总金额', ascending=False)

# 执行并打印结果
print("支出分类统计结果:")
results = calculate_expense_stats()
print(results)
print("\n总支出金额:", results['总金额'].sum())

至此,本案例全部内容完成

开发者空间官网开发者空间活动专题

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐