來源:deephub ChatGPT對于一些簡單的問題,可以完美的完成任務(wù)。但是我讓它寫一篇完整的文章,看看它能否代替我進行寫作地的時候,我確定它不能完全取代人類。 但是我們可以使用更多的指導(dǎo)來讓AI在日常工作流程為我們工作,所以本文將討論如何有效利用ChatGPT。這個想法是從簡單的日常用例開始,然后進入更復(fù)雜的階段。最后讓我們看看ChatGPT能否替代搜索引擎,給我們提供日常需要的信息。 Google是用來顯示其他人類似的問題,而ChatGPT是來回答你確切的問題的。 像大多數(shù)人一樣,當(dāng)我不知道的時候,我會谷歌。標(biāo)準(zhǔn)的工作流程是去谷歌,點擊最上面的結(jié)果,然后閱讀,直到感覺你已經(jīng)得到了正確的答案。如果幸運的話,有人已經(jīng)問過你同樣的問題了,那我們能夠直接得到答案。但更多的時候,我們需要看很多結(jié)果,并將答案拼接在一起。 讓我們問一個非常簡單的問題: 這些Google搜索結(jié)果主要回答了這個問題:“如何從DynamoDB表中刪除項?!苯酉聛恚覀冃枰獙⑺阉髦貙憺椤叭绾蜗駾ynamoDB表中添加項”。然后我們需要自己拼湊答案,得到最終結(jié)果。 那么讓ChatGPT呢 ChatGPT提供了Python和AWS CLI的描述和確切的代碼。這就是我們上面說的:Google盡其所能返回與我的問題相似的內(nèi)容,而ChatGPT則盡其所能生成答案。 ChatGPT自動化了頂級結(jié)果并過濾出答案(當(dāng)然是它認(rèn)為的答案)。 對于這種簡單的問題 那么再復(fù)雜一點的問題呢 我們要完整以下的任務(wù) 使用Databricks調(diào)查S3中的數(shù)據(jù)。Databricks非常依賴sql,這意味著要執(zhí)行多個表連接、條件和復(fù)雜的分組。 ChatGPT是肯定可以回答一些簡單的問題,比如“如何在SQL中連接兩個表”。但是你可以用ChatGPT做更多的事情,就需要把上下文的信息給他 回應(yīng)如下: ChatGPT可以根據(jù)提供的輸入形成響應(yīng)。 可以看到,ChatGPT根據(jù)所提供的上下文定制其響應(yīng),這遠(yuǎn)遠(yuǎn)超過了Google所能做的。沒有任何搜索的結(jié)果會給出上面的代碼。所以就算我們有答案,也需要將多個不同的文章內(nèi)容拼接在一起。 ChatGPT在制定響應(yīng)時考慮整個對話的上下文,所以對于一個問題,越深入我們得到的答案越確切: ChatGPT會記住前面的對話,就像結(jié)對編程一樣。提供新的輸入,可以回滾到以前的步驟,或者嘗試一個實驗性的路徑。但是ChatGPT也會犯錯誤,就像人類一樣,所以還是需要我們?nèi)斯磉M行最終的判斷和對ChatGPT進行提示。 如果需要使用ChatGPT構(gòu)建一個復(fù)雜的解決方案。需要從簡單的開始,逐步增加復(fù)雜性。 我現(xiàn)在我們可以使用ChatGPT回答簡單的問題或構(gòu)建小的代碼片段。還能更進一步嗎? 這里一個很好的例子是使用ChatGPT為項目提供額外的思路。 比如說:如何能夠?qū)⒊绦蛟S可文件自動傳輸?shù)竭h(yuǎn)程開發(fā)環(huán)境中 ChatGPT給了一個可靠的答案,說明了上傳和下載文件的過程,以及管理AWS Secrets管理器所需的AWS IAM策略等等。每個部分都包括示例代碼和解釋。 然后我問了ChatGPT一個更普遍的問題: 它還提出了另外八件需要考慮的事情:權(quán)限、成本、加密、密鑰輪換、區(qū)域、資源策略、密鑰版本控制和初始帳戶設(shè)置。每一篇文章都有一段對主題的總結(jié)。 這些問題有一些是我們可能沒想到的,所以我們可以使用ChatGPT作為頭腦風(fēng)暴的伙伴嗎? 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對的工作進行頭腦風(fēng)暴是可行的,因為他的預(yù)料集我們可能一輩子都看不完 當(dāng)涉及到編寫自定義代碼庫(私有)代碼時,ChatGPT絕對是錯誤的工具(所以我這里會用GitHub Copilot替代)。但是當(dāng)涉及到編寫針對公共api的集成時,ChatGPT的表現(xiàn)非常出色。 如果仔細(xì)想想,這是有道理的。因為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./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./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構(gòu)建一個具有以下限制的小軟件程序:我不輸入任何代碼。只能執(zhí)行ChatGPT生成的。然后錯誤也會讓ChatGPT自己更正。一開始,ChatGPT做得很好。它很容易編寫一個RESTful客戶端。我告訴ChatGPT需要更多的調(diào)試語句,它在整個代碼中添加了打印語句。在其他庫中封裝函數(shù)調(diào)用也很漂亮。但是我想到,如果下載和重新上傳大文件,時間會很長,所以我問ChatGPT是否可以在命令行上用進度條可視化包裝它們。它是這樣做的:對于要求ChatGPT重構(gòu)代碼并添加抽象,得到的答案都出現(xiàn)了拼寫錯誤和邏輯錯誤。所以需要花費很多的時間與ChatGPT進行溝通修改(前面說了,為了測試,所有代碼都讓ChatGPT寫)對于這個問題,盲猜原因是ChatGPT的每個問題只得到有限的計算時間。情況越復(fù)雜,ChatGPT不能完全完善它的響應(yīng),只是拋出了一個未經(jīng)修飾的結(jié)果,還有可能是因為token大小的限制。ChatGPT擅長編寫單個函數(shù),但在處理抽象或多個方法時很快就會崩潰。但是對于ChatGPT,一個非常好的表現(xiàn)是他可以幫我們轉(zhuǎn)換代碼,比如:將Python代碼翻譯成Typescript。將linux的shell腳本變?yōu)閣indows的cmd腳本ChatGPT可以用來增強你的能力,而不是取代你的工作將ChatGPT融入到日常工作中,這是一個很酷的噱頭,也許它適用于其他人的工作流程,但不適用于我的。因為有一些工作要么太復(fù)雜,要么太專業(yè),外部AI工具無法發(fā)揮作用。最后還有一個問題,ChatGPT數(shù)據(jù)的更新時間是2022年,所以最近數(shù)據(jù)它是沒有的,這對于經(jīng)常需要最新數(shù)據(jù)的行業(yè)來說基本就沒什么幫助了。所以回到我們的標(biāo)題:進行頭腦風(fēng)暴,并作為簡單代碼的結(jié)對程序員是一個非常好應(yīng)用場景,可以提高我們的效率,但是它并不能代替谷歌,除了時間以外,對于一些信息我們更看重的是準(zhǔn)確性。未來智能實驗室的主要工作包括:建立AI智能系統(tǒng)智商評測體系,開展世界人工智能智商評測;開展互聯(lián)網(wǎng)(城市)大腦研究計劃,構(gòu)建互聯(lián)網(wǎng)(城市)大腦技術(shù)和企業(yè)圖譜,為提升企業(yè),行業(yè)與城市的智能水平服務(wù)。每日推薦范圍未來科技發(fā)展趨勢的學(xué)習(xí)型文章。目前線上平臺已收藏上千篇精華前沿科技文章和報告。
|