之前一篇博客已经写了有关AI在博客编写方面的优势与对未来博客的编写方面的思考。这篇文档我继续分享一个我在开发中的一个案例和相关的感想。

事件还原

我发现ChatGPT也可以帮助我编写OData,于是我也利用GPT帮助我编程。

  • OData如何将filter与apply字段联合使用?答案如下:
GET /odata/Products?$apply=groupby((Category), aggregate(UnitsInStock with sum as TotalUnitsInStock))&$filter=TotalUnitsInStock gt 100

ChatGPT提供了一个思路,不过这个例子却不能正确运行,因为通过聚合输出的结果已经不能再进行进一步的OData筛选操作了。

于是我继续告诉它这个不对,让他重新编写,却一直得不到令我满意的结果。

那么换一个问题,关于聚合查询的,对应的数据类型,可以看之前的我发的文章,我提问“我需要使用odata查询按照adcode进行归类,统计每个类别下面的attachdeviceinfo数量、deviceinfo数量和attachdevicetype数量”。回答如下:

/odata/DeviceInfos?$apply=groupby((Adcode), aggregate(AttachDevices/$count as NumAttachDevices, $count as NumDeviceInfos, AttachDevices/AttachDeviceType/$countdistinct as NumAttachDeviceTypes))

运行后报错,提示缺少with,于是我定位了问题之后,我重新提问“提示AttachDevices/$count缺少with,请重新修改”

ChatGPT开始给我乱写了:

“这个错误提示是由于count操作需要与一些其他操作一起使用,例如count操作需要与一些其他操作一起使用,例如filter或select。您需要将select。您需要将count操作与其中一个操作组合使用才能使其有效。

例如,如果您想要统计满足某个过滤条件的设备数量,您可以使用以下URL:

/AttachDevices?$filter=Property eq 'Value'&$count=true

请注意,在此URL中,count操作需要与count操作需要与filter操作组合使用,并且filter操作必须出现在filter操作必须出现在count操作之前。”

已经开始给我扯东扯西了,然后我继续修改提问的方式,依旧没有得到的我想要的结果。我总结一下:

  • OData相关的资料比较少,数据集相对也较少,所以适配并不好,感觉还是一个冷门的技术....
  • AI提供的思路完全没有问题,但是具体实现的语法上并不符合OData的规范。
  • prompt的方式或许也需要改进,提供更多的上下文或者辅助信息,帮助AI更好地解决问题。

最后,我想到如果$count不行,那么使用实体的具体属性用于统计是否可以?改成以下就OK了。

odata/attachdeviceinfos?$apply=groupby((deviceinfo/Adcode), aggregate($count as NumAttachDevices, deviceinfo/deviceid with countdistinct as NumDevices, attachdevicetype/id with countdistinct as NumTypes))

机会

所以,提供给程序员的机会:

  • 依然需要掌握一些相对冷门,或者较为复杂的技术,这样在AI给的解决方案错误的情况下,不至于完全抓瞎。
  • 掌握快速Troubleshooting的技巧,遇见AI也不能解决的问题时,通过文档和相关经验迅速给出符合场景要求的方案。

所以,请警惕完全依赖AI时,它可能无法提供答案或者是错误答案。我想起了一个很久之前的电影《机械公敌》,人类在AI背叛的时候一时束手无策。。。希望我们未来不会这样。

ChatGPT与码农的机会的更多相关文章

  1. [2013 eoe移动开发者大会]靳岩:从码农到极客的升级之路

    (国内知名Android开发论坛 eoe开发者社区推荐:http://www.eoeandroid.com/) 前天,2013 eoe 移动开发者大会在国家会议中心召开,eoe 开发者社区创始人靳岩在 ...

  2. 老码农冒死揭开行业黑幕:如何编写无法维护的代码[ZZ]

    下面是一篇有意思的"代码大全",可谓 逆软件工程. 老码农冒死揭开行业黑幕:如何编写无法维护的代码 原文如下 让自己稳拿铁饭碗 ;-) – Roedy Green(翻译版略有删节) ...

  3. 管理与技术未必不可兼得,一个20年IT老兵的码农生涯

    作者|康德胜 我是一个喜欢写代码但几乎不太有机会写代码的CTO,也是一个看得懂财务报表.通过所有CFA(金融特许分析师)考试并获得FRM(金融风险经理)认证的拿到金融MBA的CTO,如果我有幸被称作码 ...

  4. 拥抱Mac之码农篇

    拥抱Mac之码农篇 使用Mac大概两年时间.之前用着公司配的一台27寸的iMac.无奈机械硬盘严重拖慢速度,影响工作心情.于是入手Macbook Retina 13.这两年的开发工作所有在Mac上完毕 ...

  5. 6年DotNet码农的盲目经历

    前言   第一篇没有选择记录与技术相关的文档,是考虑到有必要给查阅这篇文档的伙伴们“自我介绍”一下,大佬们看了求带或指导,我很愿意学习,初学者们看了千万不要重复走我之前的“学习之路”:我老家贵州,再过 ...

  6. 码农英语四级考了6次,也能进知名IT外企

    程序员学英语 这显然不是新鲜的话题,但再怎么重复强调都不过分! 为啥要学 IT是当今世界发展最快的行业,没有之一!作为其中的从业人员,要始终保持对最新技术的关注度,难免需要阅读英文新闻或文章 平时工作 ...

  7. 【整理】待毕业.Net码农就业求职储备

    声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术 ...

  8. <开心一笑> 码农 黑客和2B程序员之间的区别

    笔记本电脑 码农: 黑客: 2B程序员: 求2的32次方: 码农: System.out.println(Math.pow(2, 32)); 黑客: System.out.println(1L< ...

  9. 经典算法C++版(参考一线码农博文)

    鉴于一线码农的算法博文基本通过C#完成,此处用C++再实现一遍,具体解法可参考其博文. 地址:http://www.cnblogs.com/huangxincheng/category/401959. ...

  10. 专门为码农定制的14款创意的T裇(T-Shirt)设计

    T裇衫是人们在各种场合都可穿着的服装,如在T裇衫上作适当的装饰,即可增添无穷的韵味.通过图案直接反映人类的精神风貌,你可以把日常生活中的兴趣.习惯.喜怒哀乐.嗜好等展露无疑,张扬个性.秀出自我.对于码 ...

随机推荐

  1. AX2012 查询后台数据库记录

    AX2012 自带的数据库查询功能比较慢(特别是查询删除的情况),有些业务可能需要频繁查询删除人和删除时间等,这种情况下还是用代码来查询比较快. 例: static void SysDataBaseL ...

  2. switch组件的使用

    正常情况下,path和component是一一对应的关系 switch可以提高路由匹配效率(单一匹配)

  3. GIMP选择,GIMP画布大小,GIMP图层

    基本概念 1. 画布 2. 图层 你只能操作一个图层--就是你选中的.就看起来所有的图像都在一起,但是不同的图层中的图像是不同,不能操作没有选中的图层. 对于选择操作,要注意你选中的图层. 要获取图像 ...

  4. 查看Linux 日志

    # 直接定位到第100行 less +100g xx.log   # 定位到最后一行 less +GG xx.log   # 定位到第100个字节的位置 less +100P xx.log   # 直 ...

  5. Long类型转换为IP String

    package com.barry.iputil.util; public class IPFormat { public static String toIPStr(Long LongIP) { i ...

  6. deepin系统编辑pdf文件的两个简单方法(终端命令行模式)

    DEEPIN深度系统编辑PDF文件有时竟然超级简单好用,比WINDOWS系统需要单独下载一个PDF编辑软件的方法强多了,而且windows系统PDF编辑软件还有版权限制,各种作啊. 下面的两条命令,使 ...

  7. 励志成为python大佬的第一天

    1.编码 2.格式化字符 3.list,dict,tuple,set 4.return 5.参数

  8. java从键盘输入数据

    一.从键盘输入字符串 1.nex和nextLine的区别 next()读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Enter键或Tab键等结束符,next()会自动将其去掉,只有在 ...

  9. IOS文件下载时,文件名的处理

    string contentType = MimeMapping.GetMimeMapping(name);var isIOS = false; if (Request.UserAgent != nu ...

  10. 循环神经网络(Recurrent Neural Networks)(第一部分)

    参考 https://www.cnblogs.com/royhoo/p/Recurrent-Neural-Networks-1.html