利用 ChatGPT 高效搜索:举一反三的思考方式,高效查找解决方案

news2024/12/28 21:21:09

文章目录

    • 基础思路
    • 举一反三
    • 基于我的已知推荐 Web 框架
    • 系统方案建议 - 让 ChatGPT 推断
    • 我的一些微末思考
    • 结论

2024-01-15-chatgpt-search-for-programmer.png

本文只是我的一些尝试,基于 ChatGPT 实现系统化快速搜索某编程语言的特定领域相关包或者基于其他语言类推荐落地方案的尝试。

这篇文章中描述的方式不一定是好方式,但应该会有一定的启示作用吧。让 ChatGPT 为我们的开发效率添砖加瓦。

基础思路

在学习和使用一门新的编程语言的过程中,找到合适的包对于解决特定问题至关重要。

传统上,还是主要依赖搜索引擎和社区资源来寻找这些包,但这个过程往往既耗时又充满挑战。现在,有了 ChatGPT,这一切都有了新的解决方案。

传统的搜索方法通常基于关键词搜索,但这种方法往往返回只是简单列举,我们要从大量不相关的结果找出我们想要的内容,需要花费大量时间去筛选。

ChatGPT 提供了一种更高效的方式:通过与 AI 对话来精确描述我们的需求,从而获得更加精准回答。不过我想说,不要像利用传统的搜索引擎一样利用 ChatGPT,ChatGPT 会思考。但毫无疑问,再聪明的好苗子,也是需要引导的。

举一反三

为了最大化 ChatGPT 的效用,我采用固定句式来描述我的需求,这么做的目标主要是为了引导它思考。

例如,当寻找 Golang 的 web 开发框架时,而不是简单地问“给我推荐一些 web 开发框架”,而是通过类比的方式地询问,如下所示:

按我这个句式说下关于 Go 的 xxx 相关内容:
Go 语言中,处理数据库的包通常分为三个主要层次:底层实现、数据库驱动以及上层的 ORM(对象关系映射)框架。首先,底层核心包是 sql/database,它为数据库操作提供了基础的接口和功能。接着,针对不同数据库类型的驱动包各不相同,例如,用于 MySQL 的驱动包是 go-sql-driver/mysql。最后,在更高的层面上,有基于如 sqlbuilderactiverecord 模式的实现,Go 语言中的相应包包括 ent 和 gorm,这些包提供了更高级别的数据库操作和抽象。

通过这种方式,引导 ChatGPT 去像我们一样地思考,举一反三,深入地理解我们的需求。而不是像以前的 AI 一样,机械呆滞地返回固定问题的答案。

基于我的已知推荐 Web 框架

我通过这个方式,以查找 Go 语言的 Web 框架包为例,我的问题描述如下:

按我这个句式推荐下 Go 的 Web 框架。[句式如上,省略]*

GPT 的回答如下所示:

在 Go 语言中,HTTP 框架的组织也可以分为几个主要层次,类似于处理数据库的包的结构。首先,底层核心包是 net/http,提供了构建 HTTP 服务器和客户端的基本工具,如路由、请求处理和发送响应。接下来,针对不同需求的 HTTP 中间件和路由工具,例如 Gorilla Mux 提供了高级的路由功能,而 Negroni 提供了易用的中间件管理。在更高的层次上,存在着基于如 mvcrestful 模式的全功能 Web 框架,如 Go 语言中的 Gin 和 Echo,它们提供了路由、中间件、模板渲染等更丰富的功能,以支持复杂的 Web 应用开发。此外,还有针对特定性能优化的 HTTP 工具,例如 Fasthttp,它专注于提供高性能的 HTTP 服务,适用于处理大量并发请求。这样的层次划分帮助开发者根据具体需求选择合适的 Go 语言 HTTP 框架和库。

系统方案建议 - 让 ChatGPT 推断

我想说的是,这可能是一种引导方式。类似的,我们针对同一个问题通常由不同的方案,通常我们可以通过提供对某个问题的一种方案,让 ChatGPT 衍生,提供我们想要的更加准确的结构。

一个例子,比如我们习惯于使用 GO 开发 web 项目,但是现在公司希望转入 Python 或者 rust,如何最快的找到对标的实现呢?

我们可以说:

在 Go Web 开发时,要用到的库有:Web 框架使用 gin、 orm 使用 gorm,用户权限认证使用 golang-jwt/jwt,依次类推 python 开发 Web 项目的推荐库

ChatGPT 返回内容:

对于Go Web开发,您提到的库选择是很不错的。以下是一些在Python Web项目中常用的库的推荐:

  1. Web框架:

    • Flask:Flask是一个轻量级的Python Web框架,适用于小型到中型的项目。
    • Django:Django是一个功能强大的Python Web框架,适用于大型项目和快速开发。
  2. ORM(对象关系映射):

    • SQLAlchemy:SQLAlchemy是一个流行的Python ORM库,它提供了多种数据库后端的支持,并具有强大的查询和模型定义功能。
  3. 用户权限认证:

    • Flask-Login:用于用户会话管理和身份验证的Flask扩展。
    • Django-Allauth:Django的全功能身份验证和账户管理解决方案。
  4. JWT(JSON Web Tokens):

    • PyJWT:PyJWT是Python中处理JWT的库,可以用于用户身份验证和授权。

这些库在Python Web开发中广泛使用,可以根据项目的需求选择合适的库。希望这些推荐对您有所帮助。如果您需要更多信息或有其他问题,请随时提问。

rust 是不熟悉的语言,我最近在尝试学习,同样的思路,还可以问 rust 的 web 开发套件。

chatGPT 回答如下:

当使用Rust进行Web项目开发时,以下是一些推荐的库和框架:

  1. Web框架:

    • Actix-web:Actix-web是一个高性能的、基于异步的Web框架,适用于构建快速、可伸缩的Web应用程序。
    • Rocket:Rocket是一个易于使用的Web框架,它提供了类型安全的路由和请求/响应处理。
  2. ORM(对象关系映射):

    • Diesel:Diesel是Rust的ORM库,它提供了类型安全的数据库查询和模型定义功能。
    • sqlx:sqlx是一个异步SQL库,允许您使用Rust进行数据库操作。
  3. 用户权限认证:

    • Keycloak:Keycloak是一个开源的身份和访问管理解决方案,可以用于用户身份验证和授权。
    • Auth0:Auth0是一个身份验证和授权服务,可以轻松集成到Rust应用程序中。
  4. JWT(JSON Web Tokens):

    • jsonwebtoken:jsonwebtoken是Rust中处理JWT的库,可用于身份验证和令牌生成。

这些库和框架可以帮助您构建高性能、安全的Rust Web应用程序。根据项目的需求和您的偏好,选择适合的库和框架进行开发。如果您需要更多信息或有其他问题,请随时提问。

不知道这个答案质量,你觉得如何呢?毫无疑问,这个答案,吊打搜索引擎。我这里只是简单举例,你还可以提供更复杂的需求,让它提供更多的推荐。

我的一些微末思考

通过上面的这些案例,我主要想说 ChatGPT 能像人类一样思考,但它的思考的模式是我们提供的。

这里面有一个非常简单的道理,如果你把 ChatGPT 想象是一个真正的人类,即使这个人类一个非常牛逼的大佬,但是如果他不是从教育你的角度出发,就不会说一些无关内容,一些的互动都是基于你的主动性,你的输入。如果你的问的简单,它必然是回答的简单。

同理,如果你想让 ChatGPT 思考,你需要告诉它如何思考。这就是你要提供的信息,这个信息最能体现你的个人能力了。ChatGPT 能思考,但是基于的内容是你的输入的扩展。

结论

我想说 ChatGPT 不仅是一个对话工具,更是一个强大的技术资源搜索助手,或者说,它可以成为你的朋友,导师,关键在于你是否了解如何与它交流,让它如何去做。

它改变了寻找技术解决方案的方式。我通过简单的对话,让它思考推导,而不是像以前的智障 AI 或搜索引擎一样针对问题固定返回某个回答。

这种结合 AI 技术的搜索方法不仅节省了我们的时间,还为我们提供了更加精确和深入的技术见解,而非是简单的列举。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ABAP IDOC 2 XML

有个需求,外围系统希望我们给到一个IDOC 记录的样例,但是我们we02中并无法看到 就找了一个demo去直接展示IDOC内容 *&---------------------------------------------------------------------* *& Report Z_IDOC_TO_XML *&------------…

关于前端或者postman传递Date数据测试接口报错

错误: org.apache.ibatis.exceptions.PersistenceException: \r\n### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String\r\n### Cause: java.lang.IllegalArgumentException: invali…

服务器运维小技巧(一)——如何进行远程协助

服务器运维中经常会遇到一些疑难问题,需要安全工程师,或者其他大神远程协助。很多人会选择使用todesk或者向日葵等一些远控软件。但使用这些软件会存在诸多问题: 双方都需要安装软件,太麻烦需要把服务器的公钥/密码交给对方不知道…

Android WorkManager入门(二)

WorkManager入门 上一篇前言创建 WorkRequest并提交 定时的任务(PeriodicWorkRequest)配合约束使用定义执行范围失败后的重试为WorkRequest打上TAG其他取消方法 传参和返回参数总结参考资料 上一篇 Android WorkManager入门(一) …

权威认证!腾讯微搭入选Forrester《2023年第四季度中国专业开发人员低代码平台市场分析报告》

在Forrester近日发布的《The Low-Code Platforms For Professional Developers Landscape In China,Q4 2023》(《2023年第四季度中国专业开发人员低代码平台市场分析报告》)中,腾讯云成功入选。该报告通过对中国的低代码市场进行了深入的研究…

2018年认证杯SPSSPRO杯数学建模C题(第一阶段)机械零件加工过程中的位置识别全过程文档及程序

2018年认证杯SPSSPRO杯数学建模 基于轮廓特征的机械零件位置识别研究 C题 机械零件加工过程中的位置识别 原题再现: 在工业制造自动生产线中,在装夹、包装等工序中需要根据图像处理利用计算机自动智能识别零件位置,并由机械手将零件自动搬…

[Android] Android架构体系(1)

文章目录 Android 的框架Dalvik 虚拟机JNI原生二进制可执行文件Android NDK中的binutils Bionic谷歌考虑到的版权问题Bionic与传统的C标准库(如glibc)的一些不同 参考 Android 的框架 Android 取得成功的关键因素之一就是它丰富的框架集。 没有这些框架…

游卡:OceanBase在游戏核心业务的规模化降本实践

从 2023 年 9 月测试 OceanBase,到如今 3 个核心业务应用 OceanBase,国内最早卡牌游戏研发者之一的游卡仅用了两个月。是什么原因让游卡放弃游戏行业通用的 MySQL方案,选择升级至 OceanBase?杭州游卡网络技术有限公司(…

WordPress设置回收站自动清理天数的插件Change Empty Trash Time

前面boke112百科跟大家分享的『WordPress回收站自动清空时间?如何关闭回收站或设置自动清理天数?』一文,就介绍了可以添加一行代码实现关闭或设置回收站自动清理时间,也可以通过安装Change Empty Trash Time插件来实现。 今天bok…

Jenkins-Pipeline

Pipeline 1 安装插件 2 新建一个 Pipline 工程 3 配置Pipeline 脚本 agent的使用可以参考这个文档 pipeline {agent anystages {stage(Build) { steps {echo Building project...}}stage(Test) { steps {echo Testing project...}}stage(Deploy) { steps {echo Deploying …

模具制造企业ERP系统有哪些?企业怎么选型适配的软件

模具的生产管理过程比较繁琐,涵盖接单报价、车间排期、班组负荷评估、库存盘点、材料采购、供应商选择、工艺流转、品质检验等诸多环节。 有些采用传统管理手段的模具制造企业存在各业务数据传递不畅、信息滞后、不能及时掌握订单和车间生产情况,难以对…

SD-WAN企业组网:实现高效、安全的跨国企业连接

在当今数字化时代,企业日益全球化,跨国办公成为常态。为了应对这一挑战,越来越多的企业选择采用先进的网络技术,其中SD-WAN(软件定义广域网)便是一种备受青睐的解决方案。 什么是SD-WAN企业组网&#xff1…

【LeetCode每日一题】2171. 拿出最少数目的魔法豆

2024-1-18 文章目录 [2171. 拿出最少数目的魔法豆](https://leetcode.cn/problems/removing-minimum-number-of-magic-beans/)思路: 2171. 拿出最少数目的魔法豆 思路: 对输入的数组进行排序,使得数组中的元素按照升序排列。初始化一个变量s…

易懂的方式讲解ARM中断原理以及中断嵌套方法

ARM有七种模式,我们这里只讨论SVC、IRQ和FIQ模式。 我们可以假设ARM核心有两根中断引脚(实际上是看不见的),一根叫 irq pin, 一根叫fiq pin。在ARM的cpsr中,有一个I位和一个F位,分别用来禁止IRQ和FIQ。 先…

flink 最后一个窗口一直没有新数据,窗口不关闭问题

flink 最后一个窗口一直没有新数据&#xff0c;窗口不关闭问题 自定义实现 WatermarkStrategy接口 自定义实现 WatermarkStrategy接口 代码&#xff1a; public static class WatermarkDemoFunction implements WatermarkStrategy<JSONObject>{private Tuple2<Long,B…

第17章_反射机制拓展练习(关于Class,反射的应用,综合练习)

文章目录 第17章_反射机制拓展练习关于Class1、获取Class对象 反射的应用2、创建对象3、修改属性值4、调用方法5、获取类型信息6、榨汁机7、获取泛型参数8、自定义注解19、自定义注解2 综合练习10、AtguiguDemo11、AtguiguStudent12、自定义注解 第17章_反射机制拓展练习 关于C…

AttributeError: ‘DataFrame‘ object has no attribute ‘ix‘

文章目录 报错信息报错原因解决方案 报错信息 AttributeError: DataFrame object has no attribute ix 报错原因 这个ix属性在最新的pandas版本中已经升级修改。 解决方案 修改前 column01 dataset.ix[1, roomtype] 修改后 column01 dataset.loc[:,total_price] 关注公…

芯片制造上下游产业链及其工艺

整个产业链可分为&#xff1a;设计验证&#xff0c;晶圆制造&#xff0c;封装测试 设计验证&#xff1a;系统设计&#xff0c;逻辑设计&#xff0c;电路设计&#xff0c;物理设计 晶圆制造&#xff1a;拉单晶&#xff0c;磨外圆&#xff0c;切片&#xff0c;倒角&#xff0c;…

海思3559 yolov5模型转wk详细笔记

文章目录 前言1.编译caffer1.1安装虚拟机1.2安装caffer1.3编译python接口 2.适应wk的yolov5模型训练2.1下载yolov5-6.0项目源码2.2安装yolov5-6.0运行环境2.3修改模型2.4修改数据集2.5修改模型算子2.6 模型训练 3.模型转换&#xff1a;pt->onnx->caffe->wk3.1 pt->…

Docker安装Nginx并部署MySQL容器构建

一.MySQL容器的构建 1.创建MySQL根目录及配置文件夹&data文件夹 mkdir -p mysql/{conf,data} 2.上传配置文件 将配置文件上传到conf文件夹&#xff08;数据库配置文件已放到置顶资源中&#xff09; 3.命令构建MySQL容器 /soft/mysql/conf/my.cnf:/etc/my.cnf目录为我们…