穿越火线空白名怎么改(穿越火线空白名)

时间:2024-01-31 17:19:48 来源:网友上传 编辑:心若向阳

讯飞星火iFlyCode编程实测,领先主流开发大模型

出品 | CSDN(ID:CSDNnews)

AI 持续火爆的今天,国内已经诞生出上百家大模型,他们分布在营销、文旅、航空、医疗、教育、金融等各个领域,仅最近一个月,多家厂商都在紧锣密鼓的发布或更新自己的大模型。由于大模型其出色的性能和效果、泛化能力、降低成本的优势,未来会有更多的大模型加入,作为应用侧落地的一线开发者该如何抉择就变得非常重要。

2023 年 8 月 15 日,讯飞正式发布讯飞星火 2.0 版,发布会重点介绍了代码能力和多模态能力,并且发布了全新的智能编程助手 iFlyCode,该助手是一款 AI 编程工具,基于讯飞星火 2.0 大模型,具备 代码生成,代码补齐,代码纠错,代码解释,单元测试生成 5 项关键能力,而且代码生成和补齐维度上已经超过了 ChatGPT,耳听为虚,眼见为实,这次我们将通过两个真实需求,全方位体验 iFlyCode 这款工具。

其中,iFlyCode 与 4 款主流编码大模型,测试 50 道算法题(答案代码控制在 30 行内)的运行统计结果可明显看到 iFlyCode 已经领先于主流编码大模型,尤其是其运行时间与代码一次生成可用率。并且 iFlyCode 所有注释全部中文标记,无需声明特别指令。

考核维度

iFlyCode

ChatGPT 3.5

ChatGPT 4

StableCode

StarCoder

平均运行时间

1.5S

4S+

5S+

7S+

7S+

代码正确率

80%

80%

86%

50%

50%

代码注释

100%

100%

100%

不足40%

不足40%

自带测试用例

100%

低于70%

低于70%

CSDN实测 50道算法题运行统计结果

本次实战开发中,iFlyCode 还有很多优异的运行与能力表现,以下为实测详细内容:

iFlyCode 要挑战的两个实战需求

整体的体验过程会围绕两个需求展开,第一条是算法题解析,第二条是完成一个需求简易版 Demo。

需求一:用 Python 实现下述算法题

算法题我们拿一道比较简单的大厂 ACM 机试题,题目如下:

描述

将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”

所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

数据范围:输入的字符串长度满足 1≤n≤1000

注意本题有多组输入

输入描述

输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

输出描述

得到逆序的句子

示例

输入:I am a boy

输出:boy a am I

需求二:用Python调用指定API,返回数据结果

通过 Python 调用 CSDN 指数查询接口,返回文字质量分。

以下代码都在 VSCode 中实现,按照下述步骤完成插件安装。

iFlyCode VS 国外 AI 工具实现算法题

我们选择了多款主流AI工具进行算法题解答,下图是 iFlyCode 与 ChatGPT 的运行对比。

下述是 2 的平台的代码对比,可以看到对于常规算法题,二者给出的代码逻辑基本一致。

Python# iFlyCode 输出代码def reverse_sentence(s): words = s.split() reversed_words = words[::-1] return ' '.join(reversed_words)# 测试input_str = \"I am a boy\"output_str = reverse_sentence(input_str)print(output_str)# ChatGPT 输出代码while True: try: # 读取输入 input_str = input().strip() # 将输入字符串按空格分割成单词列表,然后逆序排列 words = input_str.split() reversed_sentence = ' '.join(words[::-1]) # 输出逆序的句子 print(reversed_sentence) except EOFError: break

为了测试得到更详尽的数据,笔者测试了 4 款主流编码大模型,测试了 50 道算法题(答案代码控制在30行内),得到如下结果。

考核维度

iFlyCode

ChatGPT 3.5

ChatGPT 4

StableCode

StarCoder

平均运行时间

1.5S

4S+

5S+

7S+

7S+

代码正确率

80%

80%

86%

50%

50%

代码注释

100%

100%

100%

不足40%

不足40%

自带测试用例

100%

低于70%

低于70%

通过 50 道算法题运行统计结果可明显看到 iFlyCode 已经领先于主流编码大模型,尤其是国内其运行时间与代码一次生成可用率。并且 iFlyCode 所有注释全部中文标记,无需声明特别指令,这一点让使用过程变得特别舒适。

几款大模型测试能看到,iFlyCode 可用度高,安装、配置、使用流畅简单,及易上手。

另外,在学习代码的时候,好的注释对代码阅读有非常大的帮助,但很多开源代码并没有编写注释,接下来我们使用 iFlyCode 的代码注释功能,标记一算法的核心逻辑。

首先选中【代码解释】功能,iFlyCode 可以特别快的对思路进行清晰的说明。

在实战中发现,可以直接选中部分代码,然后输入指令“给选中代码,添加详细注释”,可直接添加注释。

通过多次测试 iFlyCode 代码注释功能,发现如下优点:

•注释清晰,每行代码都有清晰注释;

•注释与代码匹配度高,不会出现添加注释后,但注释与代码不匹配情况;

•每行代码的注释不是单纯翻译代码,iFlyCode 增加了理解注释,例如 \"将 totalNum 加上 2,表示匹配到了两个字符\" ,这行注释就非常清晰易理解;

•iFlyCode 还可以给重点代码逻辑添加注释,即不使用逐行注释。

iFlyCode 在应用落地中的实战

在讯飞星火发布会上提到了一个关键词“10 倍工程师”,使用 iFlyCode 之后效率会有很大的提升,这一点对很多人来说,吸引力是巨大的。

接下来,我们通过 iFlyCode 交互式操作完成一款爬虫程序 Demo 的制作。

第一步,通过交互问答,完成接口初次调用

请求网址:/d/file/gt/2023-09/wwzy0kkbeh5.asp Prompt 得到第一步代码。

Python编写Python代码,通过 POST 形式访问 /d/file/gt/2023-09/bsqpbrwk1hp.asp 参数,其值为 Python

生成如下代码:

Pythonimport requestsurl = \"/d/file/gt/2023-09/wb5tepabrvh.asp = {\"txtName\": \"Python\"}response = requests.post(url, data=data)print(response.text)

运行之后提示出现下述错误信息(编码错误),接下来继续通过 iFlyCode 智能问答进行修改。

ShellTraceback (most recent call last): File \"▒㷨▒▒▒▒▒.py\", line 9, in <module> print(response.text)UnicodeEncodeError: 'gbk' codec can't encode character '\xcd' in position 28: illegal multibyte sequence

输入如下 Prompt 指令。

刚刚代码报错 UnicodeEncodeError: 'gbk' codec can't encode character '\xcd' in position 25: illegal multibyte sequence 请修改完善

得到最新的代码,运行新代码,发现已解决上述编码错误问题。

Pythonimport requestsurl = \"/d/file/gt/2023-09/wb5tepabrvh.asp = {\"txtName\": \"Python\"}response = requests.post(url, data=data)print(responsentent.decode('gbk'))

第二步,提取网页目标数据

这一步很重要,需要配合一些基础逻辑实现,首先通过一个目标元素模板,获取用于提取目标元素的正则表达式。

HTML<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"100%\"><tbody><tr><td><font size=\"3\"><b>Python可以这样学</b></font></td></tr> <tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tbody><tr><td><hr size=\"1\" color=\"#DFF3FC\"></td></tr> <tr><td class=\"bookinfo\">索书号:<b>TP311.56/D652</b></td></tr> <tr><td class=\"bookinfo\">著 者:董付国著</td></tr> <tr><td class=\"bookinfo\">出版社:清华大学出版社 2017.2</td></tr><tr><td class=\"bookinfo\">馆 藏:总计<b>6</b>册,在库<b>6</b>册【初中部图书馆<b>2</b>册,初中部智能柜②<b>1</b>册,二楼开架书库<b>3</b>册】</td></tr></tbody></table></td></tr></tbody></table>

输入关键 Prompt 如下所示。

网页返回的结果如下所示

这里添加刚刚的HTML表格模板

使用正则提取表格中的文字信息

在 iFlyCode 中的输入效果如下。

此时得到一个可运行的 Python 代码,直接复制代码再次出现了编码错误,询问 iFlyCode 之后添加文件头 # -*- coding: utf-8 -*- 即可解决 。

Python# -*- coding: utf-8 -*-import rehtml = \"\"\"<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" width=\"100%\"><tbody><tr><td><font size=\"3\"><b>Python可以这样学</b></font></td></tr> <tr><td><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tbody><tr><td><hr size=\"1\" color=\"#DFF3FC\"></td></tr> <tr><td class=\"bookinfo\">索书号:<b>TP311.56/D652</b></td></tr> <tr><td class=\"bookinfo\">著 者:董付国著</td></tr> <tr><td class=\"bookinfo\">出版社:清华大学出版社 2017.2</td></tr><tr><td class=\"bookinfo\">馆 藏:总计<b>6</b>册,在库<b>6</b>册【初中部图书馆<b>2</b>册,初中部智能柜2<b>1</b>册,二楼开架书库<b>3</b>册】</td></tr></tbody></table></td></tr></tbody></table>\"\"\"# 提取索书号so_number = re.search(r'索书号:<b>(.*?)</b>', html)(1)print(\"索书号:\", so_number)# 提取著者author = re.search(r'著 者:(.*?)<', html)(1)print(\"著者:\", author)# 提取出版社publisher = re.search(r'出版社:(.*?) ', html)(1)print(\"出版社:\", publisher)# 提取馆藏信息collection = re.search(r'馆 藏:总计<b>(.*?)</b>册,在库<b>(.*?)</b>册', html)(1, 2)print(\"馆藏:总计\", collection[0], \"册,在库\", collection[1], \"册\")

运行代码得到如下结果,达到预期。

上述代码通过传入不同 HTML 源码进行了多次生成,最终找到了一个匹配度高的正则表达式,开发者在实践的时候,也可以传入多个示例,得到完美答案。

下面只需要将第一步获取的网页结果中,提取出对应的表格元素拼接到整体代码中,即可完成本案例,这里我们依旧使用 iFlyCode 的交互问答。

最后只需要简单的代码拼接,实现本案例,下述代码就是我们拼接之后的第二步完整代码。

Python# -*- coding: utf-8 -*-import requestsfrom bs4 import BeautifulSoupimport reurl = \"/d/file/gt/2023-09/wb5tepabrvh.asp = {\"txtName\": \"Python\"}response = requests.post(url, data=data)html = responsentent.decode('gbk')soup = BeautifulSoup(html, 'html.parser')# 找到第2个表格table_2 = soup.find_all('table')[1]# 找到表格中的所有子表格sub_tables = table_2.find_all('table')# 打印子表格的HTML代码for sub_table in sub_tables: # print(sub_table) # 提取索书号 so_number = re.search(r'索书号:<b>(.*?)</b>', str(sub_table))(1) print(\"索书号:\", so_number) # 提取著者 author = re.search(r'著 者:(.*?)<', str(sub_table))(1) print(\"著者:\", author) # 提取出版社 publisher = re.search(r'出版社:(.*?) ', str(sub_table))(1) print(\"出版社:\", publisher) # 提取馆藏信息 collection = re.search(r'馆 藏:总计<b>(.*?)</b>册,在库<b>(.*?)</b>册', str(sub_table))(1, 2) print(\"馆藏:总计\", collection[0], \"册,在库\", collection[1], \"册\")

在 Python 环境中运行上述代码,得到目标结果。

在使用 iFlyCode 基于生成代码的过程中,碰到细节问题,直接使用交互问答就可以得到修改建议,例如下面询问的 bs4.element.Tag 对象如何转换为字符串。

iFlyCode 使用总结及未来展望

今天给大家展示了讯飞星火新推出的 AI Code 工具:iFlyCode,整个应用过程中,体验非常好,优点如下所示:

流畅的生产速度

iFlyCode 生产代码速度极快,包含其交互问答部分,输出也非常流畅。

代码准确度

做到了一键出码,其生产代码可用度极高,笔者重点测试了国外主流产品的正则表达式生成功能,iFlyCode 可以完胜。

代码纠错,修BUG能力

使用大模型生成代码,无法避免代码BUG,因此代码纠错能力属于及高频动作,实战中我们会用其修复已有代码,也会修复其自生成代码,iFlyCode 在纠错能力上表现优异,极少出现其它大模型反复提供相同代码的问题。

AI 大模型不止在国内,在全球都在掀起新一轮技术革命和商业浪潮,以前要反复编写的代码,现在只需使用一句 “用 Python 提取视频的3~20秒” ,即可全自动化实现。除了通用大模型之外,与行业深度结合的大模型,将会给各个领域带来更大的价值。

iFlyCode 已经展示了星火大模型与编程领域之间的初步结合,仅仅 1.0 版本就让我们看到其在编程场景下的巨大助力,逻辑不复杂且重复度高的代码,直接让 AI 编程助手解决;需要检索的问题,一键搜索答案;有潜在风险的代码,一键完善优化……未来,AI 编程助手会进一步简化程序员的工作,提升生产效率,让更多开发者的精力得到释放,去做更多创造性的工作。

基于讯飞星火大模型的 iFlyCode 在国内已经走出了关键的第一步,相信不久的将来掌握 AI 工具的新程序员就会大量的出现,一个新时代已经到来,大家一起加入吧!

声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送至邮件举报,一经查实,本站将立刻删除。转载务必注明出处:http://www.hixs.net/article/20240131/169624314725536.html