来源:deephub
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()
总结
联系客服