乐趣区

关于人工智能:ChatGPT可以取代搜索引擎吗

ChatGPT 对于一些简略的问题,能够完满的实现工作。然而我让它写一篇残缺的文章,看看它是否代替我进行写作地的时候,我确定它不能齐全取代人类。

然而咱们能够应用更多的领导来让 AI 在日常工作流程为咱们工作,所以本文将探讨如何无效利用 ChatGPT。这个想法是从简略的日常用例开始,而后进入更简单的阶段。最初让咱们看看 ChatGPT 是否代替搜索引擎,给咱们提供日常须要的信息。

从 Google 迁徙到 ChatGPT

Google 是用来显示其余人类似的问题,而 ChatGPT 是来答复你确切的问题的。

像大多数人一样,当我不晓得的时候,我会谷歌。规范的工作流程是去谷歌,点击最下面的后果,而后浏览,直到感觉你曾经失去了正确的答案。如果侥幸的话,有人曾经问过你同样的问题了,那咱们可能间接失去答案。但更多的时候,咱们须要看很多后果,并将答案拼接在一起。

让咱们问一个非常简单的问题:

这些 Google 搜寻后果次要答复了这个问题:“如何从 DynamoDB 表中删除项。”接下来,咱们须要将搜寻重写为“如何向 DynamoDB 表中增加项”。而后咱们须要本人拼凑答案,失去最终后果。

那么让 ChatGPT 呢

ChatGPT 提供了 Python 和 AWS CLI 的形容和确切的代码。这就是咱们下面说的:Google 尽其所能返回与我的问题类似的内容,而 ChatGPT 则尽其所能生成答案。

ChatGPT 自动化了顶级后果并过滤出答案(当然是它认为的答案)。

对于这种简略的问题

  • 能够通过谷歌失去同样的答案吗? 是的。
  • 能够通过 ChatGPT 更快地失去答案吗? 没问题。
  • 人工智能能取代我的工作吗? 无奈取代
  • 人工智能能进步我的速度吗? 相对能够

那么再简单一点的问题呢

应用 ChatGPT 进行结对编程

咱们要残缺以下的工作

应用 Databricks 考察 S3 中的数据。Databricks 十分依赖 sql,这意味着要执行多个表连贯、条件和简单的分组。

ChatGPT 是必定能够答复一些简略的问题,比方“如何在 SQL 中连贯两个表”。然而你能够用 ChatGPT 做更多的事件,就须要把上下文的信息给他

回应如下:

ChatGPT 能够依据提供的输出造成响应。

能够看到,ChatGPT 依据所提供的上下文定制其响应,这远远超过了 Google 所能做的。没有任何搜寻的后果会给出下面的代码。所以就算咱们有答案,也须要将多个不同的文章内容拼接在一起。

ChatGPT 在制订响应时思考整个对话的上下文,所以对于一个问题,越深刻咱们失去的答案越确切:

ChatGPT 会记住后面的对话,就像结对编程一样。提供新的输出,能够回滚到以前的步骤,或者尝试一个实验性的门路。然而 ChatGPT 也会犯错误,就像人类一样,所以还是须要咱们人工来进行最终的判断和对 ChatGPT 进行提醒。

如果须要应用 ChatGPT 构建一个简单的解决方案。须要从简略的开始,逐渐减少复杂性。

我当初咱们能够应用 ChatGPT 答复简略的问题或构建小的代码片段。还能更进一步吗?

应用 ChatGPT 进行头脑风暴

这里一个很好的例子是应用 ChatGPT 为我的项目提供额定的思路。

比如说:如何可能将程序许可文件主动传输到近程开发环境中

ChatGPT 给了一个牢靠的答案,阐明了上传和下载文件的过程,以及治理 AWS Secrets 管理器所需的 AWS IAM 策略等等。每个局部都包含示例代码和解释。

而后我问了 ChatGPT 一个更广泛的问题:

它还提出了另外八件须要思考的事件: 权限、老本、加密、密钥轮换、区域、资源策略、密钥版本控制和初始帐户设置。每一篇文章都有一段对主题的总结。

这些问题有一些是咱们可能没想到的,所以咱们能够应用 ChatGPT 作为头脑风暴的搭档吗?

 I am a software engineer at a software company with a public REST API.  I want to start stress-testing it, and I am evaluating several frameworks.  What are the important features I should be looking for?
 
 I am a software company that runs a SaaS product.  I need to add SSO to my product so each company can log in with its authentication platform.  I’m trying to compare tools like Auth0 and WorkOS.  What are some important features to consider?
 
 I’m a software engineer at a company building an enterprise (self-hosted) application.  In my case, the customers manage the entire product themselves without me.  I am worried about the maintenance burden of supporting my app long term.  What should I consider?

下面这几个问题返回的答案十分有用,这是一个很好的例子,因为这些无奈在谷歌上搜寻到。

应用 ChatGPT 对的工作进行头脑风暴是可行的,因为他的意料集咱们可能一辈子都看不完

应用 ChatGPT 编写简单代码

当波及到编写自定义代码库(公有)代码时,ChatGPT 相对是谬误的工具 (所以我这里会用 GitHub Copilot 代替)。然而当波及到编写针对公共 api 的集成时,ChatGPT 的体现十分杰出。

如果认真想想,这是有情理的。因为 ChatGPT 无法访问你的自定义代码库,而 Copilot 会扫描本地的代码。

咱们问 ChatGPT 一个公共 API 的问题:

这里是它生成的代码如下:

 import requests
 import os
 
 GITHUB_TOKEN = 'YOUR_GITHUB_TOKEN'
 ASANA_TOKEN = 'YOUR_ASANA_TOKEN'
 ASANA_PROJECT_ID = 'YOUR_ASANA_PROJECT_ID'
 GITHUB_REPOS = ["user/repo1", "user/repo2", ...]  # List your repos here
 
 HEADERS_GITHUB = {'Authorization': f'token {GITHUB_TOKEN}',
     'Accept': 'application/vnd.github.v3+json',
 }
 
 HEADERS_ASANA = {'Authorization': f'Bearer {ASANA_TOKEN}',
     'Accept': 'application/json',
     'Content-Type': 'application/json',
 }
 
 def fetch_github_issues(repo):
     url = f"https://api.github.com/repos/{repo}/issues"
     response = requests.get(url, headers=HEADERS_GITHUB)
     return response.json()
 
 def find_or_create_asana_section(project_id, name):
     # Check if section exists
     sections_url = f"https://app.asana.com/api/1.0/projects/{project_id}/sections"
     response = requests.get(sections_url, headers=HEADERS_ASANA)
     for section in response.json().get("data", []):
         if section["name"] == name:
             return section["gid"]
     
     # Create new section
     data = {
         "data": {"name": name,}
     }
     response = requests.post(sections_url, headers=HEADERS_ASANA, json=data)
     return response.json()["data"]["gid"]
 
 def create_asana_task(project_id, section_gid, issue):
     url = f"https://app.asana.com/api/1.0/tasks"
     data = {
         "data": {"projects": [project_id],
             "memberships": [
                 {
                     "project": project_id,
                     "section": section_gid,
                 }
             ],
             "name": issue["title"],
             "notes": issue["body"],
         }
     }
     requests.post(url, headers=HEADERS_ASANA, json=data)
 
 def main():
     for repo in GITHUB_REPOS:
         issues = fetch_github_issues(repo)
         section_name = repo.split("/")[-1]  # Assuming you want the repo name as the section name
         section_gid = find_or_create_asana_section(ASANA_PROJECT_ID, section_name)
         for issue in issues:
             create_asana_task(ASANA_PROJECT_ID, section_gid, issue)
 
 if __name__ == "__main__":
     main()

看着十分不错,上面咱们进步难度让 ChatGPT 构建一个具备以下限度的小软件程序:

我不输出任何代码。只能执行 ChatGPT 生成的。而后谬误也会让 ChatGPT 本人更正。

一开始,ChatGPT 做得很好。它很容易编写一个 RESTful 客户端。我通知 ChatGPT 须要更多的调试语句,它在整个代码中增加了打印语句。在其余库中封装函数调用也很漂亮。

然而我想到,如果下载和从新上传大文件,工夫会很长,所以我问 ChatGPT 是否能够在命令行上用进度条可视化包装它们。它是这样做的:

略显臃肿,然而能够用。

对于要求 ChatGPT 重构代码并增加形象,失去的答案都呈现了拼写错误和逻辑谬误。所以须要破费很多的工夫与 ChatGPT 进行沟通批改(后面说了,为了测试,所有代码都让 ChatGPT 写)

对于这个问题,盲猜起因是 ChatGPT 的每个问题只失去无限的计算工夫。状况越简单,ChatGPT 不能齐全欠缺它的响应,只是抛出了一个未经润饰的后果,还有可能是因为 token 大小的限度。

ChatGPT 善于编写单个函数,但在解决形象或多个办法时很快就会解体。

然而对于 ChatGPT,一个十分好的体现是他能够帮咱们转换代码,比方:

将 Python 代码翻译成 Typescript。将 linux 的 shell 脚本变为 windows 的 cmd 脚本

总结

ChatGPT 能够用来加强你的能力,而不是取代你的工作

将 ChatGPT 融入到日常工作中,这是一个很酷的噱头,兴许它实用于其他人的工作流程,但不适用于我的。因为有一些工作要么太简单,要么太业余,内部 AI 工具无奈发挥作用。

最初还有一个问题,ChatGPT 数据的更新工夫是 2022 年,所以最近数据它是没有的,这对于常常须要最新数据的行业来说根本就没什么帮忙了。

所以回到咱们的题目:进行头脑风暴,并作为简略代码的结对程序员是一个十分好利用场景,能够进步咱们的效率,然而它并不能代替谷歌,除了工夫以外,对于一些信息咱们更看重的是准确性。

https://avoid.overfit.cn/post/cb049c14e06441f98063d8d478ff1474

作者:Elliot Graebert

退出移动版