腾讯混元大模型与GPT3.5代码能力对比

今日,别的事情不干,来使用一下"腾讯混元大模型"。对比一下"GPT3.5",看看效果。据说"腾讯混元大模型"代码方面是强项,特意申请了一个来体验一波。

✨本章仅以Python为主题,展开体验。最后有总结!

代码优化1

如下代码为例子,来看看两者的效果。
💬下述代码作用就是循环数据,不满足条件的加入指定数据,并计数

def ChargeBatJump(self):
        """Bat充电"""
        BatChargeValue = {"JumpNum": 0, "JumpValue": [], "MaxJump": 0}
        MaxNumber = []
        if self.batValues:
            for num in range(len(self.batValues) - 1):
                CountNumber = int(self.batValues[num + 1][1]) - int(self.batValues[num][1])
                if CountNumber > 1:
                    """跳"""
                    BatChargeValue["JumpNum"] += 1
                    MaxNumber.append(CountNumber)
                    BatChargeValue["JumpValue"].append(self.batValues[num + 1])
                if CountNumber < 0:
                    """掉"""
                    BatChargeValue["JumpNum"] += 1
                    MaxNumber.append(CountNumber)
                    BatChargeValue["JumpValue"].append(self.batValues[num + 1])
            if MaxNumber:
                BatChargeValue["MaxJump"] = max(MaxNumber)
        return BatChargeValue

腾讯混元大模型

先来看看"腾讯混元大模型":

def analyze_bat_values(self):
    bat_charge_value = {"JumpNum": 0, "JumpValue": [], "MaxJump": 0}
    max_number = []

    if self.batValues:
        for num in range(len(self.batValues) - 1):
            count_number = int(self.batValues[num + 1][1]) - int(self.batValues[num][1])
            if count_number > 1 or count_number < 0:
                """跳或掉"""
                bat_charge_value["JumpNum"] += 1
                max_number.append(count_number)
                bat_charge_value["JumpValue"].append(self.batValues[num + 1])

        if max_number:
            bat_charge_value["MaxJump"] = max(max_number)

    return bat_charge_value

💬腾讯混元大模型针对上述代码给出的优化点如下:
1、将变量名改为小写字母和下划线的形式,以符合 Python 的命名规范。
2、将 if CountNumber > 1 和 if CountNumber < 0 合并为一个条件,避免重复判断。
3、将 MaxNumber 改为 max_number,以保持变量名的一致性。
4、删除多余的缩进,使代码更易读。


GTP3.5

再来看看"GTP3.5"

class BatChargeAnalyzer:
    def __init__(self, bat_values):
        self.bat_values = bat_values

    def analyze(self):
        jump_info = {"JumpNum": 0, "JumpValue": [], "MaxJump": 0}
        max_number = []

        if self.bat_values:
            for num in range(len(self.bat_values) - 1):
                count_number = int(self.bat_values[num + 1][1]) - int(self.bat_values[num][1])

                if count_number != 0:
                    jump_info["JumpNum"] += 1
                    max_number.append(count_number)
                    jump_info["JumpValue"].append(self.bat_values[num + 1])

            if max_number:
                jump_info["MaxJump"] = max(max_number)

        return jump_info


# 使用示例
bat_values = [("timestamp1", 10), ("timestamp2", 15), ("timestamp3", 8), ("timestamp4", 20)]
analyzer = BatChargeAnalyzer(bat_values)
result = analyzer.analyze()
print(result)

💬GPT3.5给出的优化点:
1、将原始的函数封装成一个类,使得代码更加面向对象。
2、修改变量名,使其更符合 Python 命名规范。
3、使用 != 0 替代 > 1,这样可以捕捉到任何变化,而不仅仅是增加或减少



代码优化2

上述代码,可能数据处理方面不是很有难度,所以这里增加一点难度看看。以下是原代码:

def DataTimes(self, stime, etime):
        """计算时长"""
        is_key = JSONREAD().is_key_present("Day")
        if is_key:
            Day = JSONREAD().getData("Day")[:10]
            Last = self.currentTime[:10]
            Day_time = Day + " " + stime
            Last_time = Last + " " + etime
            start_time = datetime.datetime.strptime(Day_time, "%Y_%m_%d %H:%M:%S.%f")
            end_time = datetime.datetime.strptime(Last_time, "%Y_%m_%d %H:%M:%S.%f")
            duration = end_time - start_time
        else:
            start_format = '%H:%M:%S.%f' if len(stime) >= 12 else '%H:%M:%S'
            end_format = '%H:%M:%S.%f' if len(etime) >= 12 else '%H:%M:%S'
            start_time = datetime.datetime.strptime(stime, start_format)
            end_time = datetime.datetime.strptime(etime, end_format)
            duration = end_time - start_time
        if len(str(duration)) > 8:
            return str(duration)[:-3]
        else:
            return str(duration)

腾讯混元大模型

from datetime import datetime

def parse_time(time_str, format_str):
    return datetime.strptime(time_str, format_str)

def calculate_duration(start_time, end_time):
    return end_time - start_time

def DataTimes(self, stime, etime):
    """计算时长"""
    is_key = JSONREAD().is_key_present("Day")
    if is_key:
        Day = JSONREAD().getData("Day")[:10]
        Last = self.currentTime[:10]
        Day_time = Day + " " + stime
        Last_time = Last + " " + etime
        start_time = parse_time(Day_time, "%Y_%m_%d %H:%M:%S.%f")
        end_time = parse_time(Last_time, "%Y_%m_%d %H:%M:%S.%f")
        duration = calculate_duration(start_time, end_time)
    else:
        start_format = '%H:%M:%S.%f' if len(stime) >= 12 else '%H:%M:%S'
        end_format = '%H:%M:%S.%f' if len(etime) >= 12 else '%H:%M:%S'
        start_time = parse_time(stime, start_format)
        end_time = parse_time(etime, end_format)
        duration = calculate_duration(start_time, end_time)

    return str(duration)[:-3] if len(str(duration)) > 8 else str(duration)

💬腾讯混元大模型针对上述代码给出的优化点如下:
1、使用 datetime.datetime.strptime() 函数时,可以将其提取到一个单独的函数中,以避免重复代码。
2、将 start_time 和 end_time 的计算提取到一个单独的函数中,以避免重复代码。
3、将 duration 的计算提取到一个单独的函数中,以避免重复代码。
4、使用 if 语句来检查 duration 的长度,可以使用更简洁的方式。

GPT3.5

import datetime
from JSONREAD import JSONREAD  # 请根据实际情况导入 JSONREAD 模块

class DataTimeCalculator:
    def __init__(self, stime, etime):
        self.stime = stime
        self.etime = etime
        self.current_time = self.get_current_time()

    def get_current_time(self):
        return datetime.datetime.now().strftime("%Y_%m_%d %H:%M:%S.%f")

    def get_day(self):
        if JSONREAD().is_key_present("Day"):
            return JSONREAD().getData("Day")[:10]
        return None

    def parse_time(self, time_str):
        format_str = '%H:%M:%S.%f' if len(time_str) >= 12 else '%H:%M:%S'
        return datetime.datetime.strptime(time_str, format_str)

    def calculate_duration(self, start_time, end_time):
        duration = end_time - start_time
        return str(duration)[:-3] if len(str(duration)) > 8 else str(duration)

    def calculate(self):
        day = self.get_day()
        if day:
            day_time = day + " " + self.stime
            last_time = self.current_time[:10] + " " + self.etime
            start_time = self.parse_time(day_time)
            end_time = self.parse_time(last_time)
        else:
            start_time = self.parse_time(self.stime)
            end_time = self.parse_time(self.etime)

        return self.calculate_duration(start_time, end_time)


# 使用示例
calculator = DataTimeCalculator("08:00:00", "17:00:00")
result = calculator.calculate()
print(result)

💬GPT3.5优化建议如下:
1、将原始的函数封装成一个类,使代码更加面向对象。
2、提取了获取当前时间、获取日期、解析时间和计算时长的方法,以减少冗余代码。



学习知识

腾讯混元大模型

19960ab8dc698ed0061cad4d8d516223.png 293d9c7e5ed2dbbe9a9716bb43efff76.png

GPT3.5

7faa211fa0018b7cc1ded7b67bcf0e7e.png

ac1e9018be7da003bc4c9905260608e3.png


如何学习Python?

腾讯混元大模型

8456a6e33f7ec1189e7a99ed0fd8c4ad.png

GPT3.5

368270c5e4d495cfb8909b260e10d90d.png 。。。 6ac400cdcba8e885214a2ad1d3f1fca5.png

提问代码示例

腾讯混元大模型

f4804a8560b682aaa2be273048d2fac2.png 3a4206eba3b2e1fbc44b22547d53cd2a.png

GPT3.5

781289e57f2032248af061ff5e622b96.png b406c988e6878d976718367fafbb8fdf.png

总结

⛅先说说代码优化:
1、各有优缺点,在简单的代码优化上,从本次使用的体验上,"腾讯混元大模型"更OK一些。复杂的代码中"腾讯混元大模型"也没有太大的毛病,将公共方法抽离出来,也比较贴合原代码,GPT3.5在这方面会更胜一筹,将代码模块化,这一块我个人还是比较偏向于GPT3.5。
2、优化建议方面,"腾讯混元大模型"给出的会更加让人易懂一些。这一点比"GPT3.5"要更加OK一些。

⛅再来看看学习知识:
3、当我想学习某一部分知识的时候,"GPT3.5"是要详细一些的,案例上来讲,"GPT3.5"略多于"腾讯混元大模型",并在文末附上官方地址,这点还是比较的加分的。

⛅提问学习方面:
4、"GPT3.5"给出了较为详细的学习步骤,并给出了对应的学习资源。"腾讯混元大模型"也是给出了学习路线。

⛅提问代码示例方面:
5、"GPT3.5"不仅给出了其他模块的示例代码,同时提问的示例代码也一样给出,这一点加分。但是也仅限于回答到了点上,如果这一段是无用代码,那就另说了。"腾讯混元大模型"也是给出了所需要的示例代码,也是OK的。


"腾讯混元大模型"总体上来说还是挺不错的,精准度上说比较OK,推荐没有T子的同学上个手,回复速度也是比较于"GPT3.5"要快上一些。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156053.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决Jira导出csv最大限度是1000的问题

JIRA为了防止过多影响性能&#xff0c; 设置了导出CSV的上线为1000&#xff0c;影响了搜索结果导出以及RestAPI。 可以通过以下配置参数修改此限制&#xff1a; 通过JIRA管理界面的"高级设置 “设置以下参数 系统管理 > 系统 > 一般设置>高级设置找到 jira.sea…

如何将图片转为excel或word?(客户端)

演示软件&#xff1a;金鸣表格文字识别大师3.6.1&#xff08;新版本界面可能会略有不同&#xff09; 第一部分 将图片转为excel或文表混合的word 一般的软件要将图片转为可编辑的excel&#xff0c;都需要待识别的图片要有明显清晰的表格线&#xff0c;但我们程序现已克服了这…

vue-组件生命周期+网络请求

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue-组件生命周期网络请求 目录 组件生命周期 1. Vue的生命周期 2. Vue 子组件和父组件执行顺序…

消息通讯-MQTT WebHookSpringBoot案例

一、EMQX WebHook介绍 1、EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。 2、WebHook 的内部实现是基于钩子&#xff0c;借助 Webhook 可以完成设备在线、上下线记录&#xff0c;订阅与消息存储、消息送达确认等诸…

【开源】基于Vue和SpringBoot的固始鹅块销售系统

项目编号&#xff1a; S 060 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S060&#xff0c;文末获取源码。} 项目编号&#xff1a;S060&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 鹅块类型模块2.3 固…

绕过类安全问题分析方法

什么是绕过 逻辑漏洞是指程序设计中逻辑不严密&#xff0c;使攻击者能篡改、绕过或中断程序&#xff0c;令其偏离开发人员预期的执行。 常见表现形式 1、接口&#xff08;功能类&#xff09;绕过&#xff1a;即接口或功能中通过某参数&#xff0c;绕过程序校验 2、流程类绕…

[模版总结] - 树的基本算法2 - BST

BST定义 BST - Binary Search Tree, 即二叉搜索树(有序二叉树) 特性 中序遍历有序查找/插入/删除某个数值可以通过 即树的高度&#xff0c;最优,最坏 . 有多种改进BST可以动态维持插入删除后树结构能尽可能保持平衡 BST基本操作 查询 - 二分查找 搜索数值 - 二分法 class…

有Mac或无Mac电脑通用的获取安卓公钥的方案

从2023年9月开始&#xff0c;所有上架应用市场的app都需要进行APP备案。 其中后端服务器在阿里云的可以在阿里云备案&#xff0c;后端服务器在腾讯云的可以在腾讯云备案。但无论你是在什么云厂商里做备案&#xff0c;无一例外的是&#xff0c;无论是上架安卓应用还是上架IOS应…

Python大数据学习问题整理汇总

day01 分区表与分桶表的区别 在这里插入代码片day02 数据仓分层/与本质 数据仓库(OLAP)的本质叫联机分析处理, 一般针对某些主题的历史数据进行分析 主要面向分析,支持管理决策。源数据层&#xff08;ODS&#xff09;&#xff1a; 此层数据无任何更改&#xff0c;直接沿用外围…

【2021集创赛】基于arm Cortex-M3处理器与深度学习加速器的实时人脸口罩检测 SoC

团队介绍 参赛单位&#xff1a;深圳大学 队伍名称&#xff1a;光之巨人队 指导老师&#xff1a;钟世达、袁涛 参赛队员&#xff1a;冯昊港、潘家豪、慕镐泽 图1 团队风采 1. 项目简介 新冠疫情席卷全球&#xff0c;有效佩戴口罩可以极大程度地减小病毒感染的风险。本项目开发…

JWT登录认证(3拦截器)

Jwt登录认证&#xff08;拦截器&#xff09;&#xff1a; 使用拦截器统一验证令牌 登录和注册接口需要放行 interceptors.LoginInterceptor&#xff1a;&#xff08;注册一个拦截器&#xff09; package com.lin.springboot01.interceptors;import com.lin.springboot01.pojo.…

wpf devexpress添加TreeListControl到项目

此教程示范如何添加TreeListControl到项目和绑定控件自引用数据源&#xff1a; 添加数据模型 绑定tree&#xff0c;并添加如下字段到数据源对象&#xff1a; Key字段包含唯一值索引节点 Parent字段包含父索引节点 添加数据模型&#xff08;Employee和Staff类&#xff09;到…

物理驱动深度学习方法总结

一、物理驱动深度学习方法总结 现有博主更新物理驱动深度学方法总体介绍 二、 PINN介绍 PINN综述Blog介绍&#xff1a;内嵌物理知识神经网络 &#xff08;Physics Informed Neural Network&#xff0c;简称PINN&#xff09; 是一种科学机器在传统数值领域的应用方法&…

软件测试基础 —— 单元测试

Hello&#xff01;大家好&#xff0c;我是BugBear&#xff0c;一个专注于分享软件测试干货的测试开发。 对于软件测试&#xff0c;我们先按照开发阶段来进行划分&#xff0c;将软件测试分为单元测试、集成测试、系统测试、验收测试&#xff0c;下面我们来聊聊单元测试。 1、什…

JVM-HotSpot虚拟机对象探秘

目录 一、对象的实例化 &#xff08;一&#xff09;创建对象的方式 &#xff08;二&#xff09;创建对象的步骤 二、对象的内存布局 &#xff08;一&#xff09;对象头 &#xff08;二&#xff09;实例数据 &#xff08;三&#xff09;对齐填充 三、 对象的访问定位 &…

小迈迈驰组态软件支持国产龙芯2K1000等处理器

自2019年起&#xff0c;南京迈思德电气自动化有限公司组织研发团队&#xff0c;进行跨平台组态软件的研发&#xff0c;适配国产处理器&#xff0c;目前已经完成单机版产品的研发&#xff0c;并在基于龙芯2K1000处理器[Loongnix操作系统]的加固人机界面产品上应用。 Loongnix是龙…

可逆矩阵的性质

如果矩阵A可逆&#xff0c;那么它的逆矩阵也可逆&#xff0c;并且如果矩阵A可逆&#xff0c;假设是一个不为0的数&#xff0c;那么也可逆&#xff0c;并且如果矩阵A和都可逆&#xff0c;而且它们的阶数也相同&#xff0c;那么它们的乘积也是可逆的&#xff0c;并且如果矩阵A可逆…

docker数据卷详细讲解及数据卷常用命令

docker数据卷详细讲解及数据卷常用命令 Docker 数据卷是一种将宿主机的目录或文件直接映射到容器中的特殊目录&#xff0c;用于实现数据的持久化和共享。Docker 数据卷有以下特点&#xff1a; 数据卷可以在一个或多个容器之间共享和重用&#xff0c;不受容器的生命周期影响。…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 2》(6)

《Linux操作系统原理分析之Linux 进程管理 2》&#xff08;6&#xff09; 4 Linux 进程管理4.2 Linux 进程的状态和标识4.2.1 Linux 进程的状态及转换4.2.2 Linux 进程的标识4.2.3 进程标识哈希表 4 Linux 进程管理 4.2 Linux 进程的状态和标识 4.2.1 Linux 进程的状态及转换…

提高Producer的发送速度

发送一条消息出去要经过三步&#xff0c;一是客户端发送请求到服务器&#xff0c;二是服务器处理该请求&#xff0c;三是服务器向客户端返回应答&#xff0c;一次消息的发送耗时是上述三个步骤的总和。在一些对速度要求高&#xff0c;但是可靠性要求不高的场景下&#xff0c;比…