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

文章目录

    • 基础思路
    • 举一反三
    • Go 语言 Web 框架
    • 延伸思考
    • 思考
    • 结论

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 一样,机械呆滞地返回固定问题的答案。

Go 语言 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 框架和库。

延伸思考

我想说的是,这可能是一种引导方式。类似的,我们可以说:

在 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.mzph.cn/news/631005.shtml

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

相关文章

深入剖析 Git 对象底层原理

一、引言 在我们日常使用 Git 时,通常的操作是: 在写完一段代码后,执行 git add命令,将这段代码添加到暂存区中然后再执行 git commit和 git push 命令,将 本地 Git 版本库中的提交同步到服务器中的版本库中 Git 在…

vscode 格式化代码

在 Visual Studio Code 中,你可以使用以下步骤来格式化代码: 打开你的代码文件。选择你要格式化的代码部分或按 CtrlA 来全选。按下 ShiftAltF,这会触发 "格式化文档" 的命令。 如果你的键盘布局没有 "Alt" 键&#xf…

Three.js 学习笔记之模型(学习中1.17更新)

文章目录 模型 几何体 材质模型点模型Points - 用于显示点线模型Line | LineLoop | LineSegments网格模型mesh - 三角形 几何体BufferGeometry缓冲类型几何体BufferGeometry - 没有任何形状的空几何体创建几何体的方式BufferAttribute Types定义顶点法线 geometry.attributes…

Maven工程 — 继承与聚合 相关知识点详解

简介:这篇帖子主要讲解Maven工程中的继承与聚合的相关知识点,用简洁的语言和小编自己的理解,深入浅出的说明Maven工程的继承与聚合。 目录 1、继承 1.1 继承关系的实现 1.2 版本锁定 2、聚合 2.1 聚合方法 3、总结 1、继承 图 1-1 继承…

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

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

[go语言]输入输出

目录 知识结构 输入 1.Scan ​编辑 2.Scanf 3.Scanln 4.os.Stdin --标准输入,从键盘输入 输出 1.Print 2.Printf 3.Println 知识结构 输入 为了展示集中输入的区别,将直接进行代码演示。 三者区别的结论:Scanf格式化输入&#x…

【Ubuntu】使用NFS共享挂载硬盘

在Ubuntu系统上使用NFS(Network File System)将某个硬盘挂载并在另一个Ubuntu系统上进行挂载的过程可以分为两个步骤:一是将硬盘挂载到服务器上,二是在客户端上挂载这个共享。 以下是详细步骤: 在服务器上挂载硬盘并…

Python中re模块search和findall函数的使用

1.search函数: re.search(pattern,string,flags0) 用于整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果位None。 import re pattern\d\.\d sI study Python3.11 every day Python2.7 I love you matchr…

ElasticSearch(1):Elastic Stack简介

1 简介 ELK是一个免费开源的日志分析架构技术栈总称,官网https://www.elastic.co/cn。包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景&#xf…

MongoDB面试系列-02

1. MongoDB 中必须调用 getLastError 来确保写操作生效吗? MongoDB中不管有没有调用getLastError(又称为Safe Mode),服务器执行的操作都会一样。 而调用getLastError只是为了确认写操作是否成功提交,但是写操作的安全…

MySQL中根据出生日期计算年龄

创建student表 mysql> create table student( -> sid int primary key comment 学生号, -> sname varchar(20) comm…

「实战应用」如何用DHTMLX Gantt构建类似JIRA式的项目路线图(二)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求,是最完善的甘特图图表库。 在web项目中使用DHTMLX Gantt时,开发人员经常需要满足与UI外观相关的各种需求。因此他们必须确定JavaScript甘特图库的…

Android Studio由于开启代理无法下载依赖,一直在Build model

一、问题描述 正常打开AS项目,一直显示Build model就是不下载依赖 二、问题解决 1、首先选择No Proxy,可以看到这位同学之前是使用的代理。 2、打开下面文件,然后删除某尾的4行。 3、面对提示框,直接点击OK。 4、然后停…

IIS 缓存, 更新后前端资源不能更新问题

解决办法: 通常只需要index.html 不缓存即可, 其他文件都是根据index.html 中的引用去加载; 正确的做法是在 站点下增加 web.config 文件, 内容如下: 我这个是因为目录下有个config.js 配置文件, 也不能缓存, 所以加了两个 <?xml version"1.0" encoding&quo…

基于Python flask的猫眼电影票房数据分析可视化系统,可以定制可视化

技术方案 猫眼电影票房数据分析可视化系统是基于Python Flask框架开发的一款用于分析和展示猫眼电影票房数据的Web应用程序。该系统利用Flask提供了一个简单而强大的后端框架&#xff0c;结合Request库进行网络爬虫获取猫眼电影票房数据&#xff0c;并使用Pyecharts进行可视化…

消息中间件面试题

目录 一.为什么使用消息队列 二.RabbitMQ 1.RabbitMQ如何保证消息不丢失 2.RabbitMQ消息的重复消费问题 3.RabbitMQ延迟队列 4.RabbitMQ消息堆积 5.RabbitMQ高可用机制 三.Kafka 1.Kafka如何保证消息不丢失 2.Kafka如何保证消费消息的顺序性 3.Kafka高可用机制 4.Ka…

运维笔记之linux运维管理基础

课程链接 001_课程介绍_哔哩哔哩_bilibili 编辑器vi/vim 在 CentOS 上使用 Vim 编辑器时&#xff0c;可以进行更多操作&#xff0c;包括复制、粘贴、删除、查找等。以下是一些常用的 Vim 操作命令&#xff1a; 复制光标所在行&#xff1a;按下 yy 键。剪切光标所在行&#…

MongoDB聚合:$set

聚合$set阶段可以为文档添加新的字段。$set输出的文档包含输入文档中的所有现有字段和新添加的字段。$set是$addFields的别名&#xff0c;从MongoDB4.2开始支持。$set和$addFields等价于$project阶段&#xff0c;这两个阶段都等同于 $project 阶段&#xff0c;后者明确指定输入…

黑马程序员——javase基础——day05——面向对象基础

目录&#xff1a; 面向对象 面向对象介绍为什么要用面向对象编程面向对象.重点学习什么?类和对象 什么是类什么是对象对象的属性和行为类的定义对象的使用学生类的定义和使用对象内存图 Java内存分配单个对象多个对象思考&#xff1a;多个引用指向相同成员变量和局部变量的区…

未来能源转型之路:2023年第十三届中国国际储能大会启示录

在2023年第十三届中国国际储能大会上&#xff0c;全球各地的能源专家、学者和企业代表齐聚一堂&#xff0c;共同探讨了储能技术在推动能源转型中的重要作用。对于我们普通人来说&#xff0c;从这场大会中可以学到什么呢&#xff1f; 一、储能技术是未来能源发展的关键 随着可再…