(done) 吳恩達版提示詞工程 6. 轉換 (翻譯,通用翻譯,語氣風格變換,文本格式轉換,拼寫檢查和語法檢查)

視頻:https://www.bilibili.com/video/BV1Z14y1Z7LJ/?spm_id_from=333.337.search-card.all.click&vd_source=7a1a0bc74158c6993c7355c5490fc600

別人的筆記:https://zhuanlan.zhihu.com/p/626966526


6. 轉換任務(Transforming)

大型語言模型非常擅長將輸入轉換為不同的格式。

例如輸入一種語言的文本,將其轉換或翻譯為另一種語言,或者幫助進行拼寫和語法的檢查和修改。因此,將一段不完全符合語法的文本作為輸入,可以讓它幫助你x糾正拼寫和語法。或者用來轉換文本格式,例如輸入 HTML ,讓它輸出 JSON 格式的文本。

我以前編寫應用程序的時候,要非常辛苦編寫一堆正則表達式。現在通過大語言模型和一些提示,就可以更簡單地實現。

是的,我現在基本上使用 ChatGPT 來校對我寫的任何東西,所以我很高興能向你展示 Notebook 中的更多例子。

6.1 文本翻譯

ChatGPT使用多種語言的源代碼進行訓練。這使模型能夠進行翻譯。以下是一些如何使用此功能的示例。

首先,我們導入 OpenAI,使用我們在本視頻中一直使用的 get_completion 輔助函數。

import openai
import os
from openai import OpenAI# 1. 根據環境變量獲取 openai key
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())openai.api_key = os.getenv('OPENAI_API_KEY') client = OpenAI()# 2. 定義 get_completion 方法
def get_completion(prompt, instructions=None, model="gpt-3.5-turbo"):response = client.responses.create(model=model,instructions=instructions,input=prompt,temperature=0, # this is the degree of randomness of the model's output)return response.output_text

我們要做的第一件事是翻譯任務。大型語言模型是在許多來源的大量文本上訓練出來的,其中很多內容來自互聯網,這當然會有許多不同的語言。因此, 這使模型具有翻譯能力。模型以不同程度的熟練掌握數百種語言。我們將通過一些例子來介紹如何使用這種能力。

讓我們從簡單的問題開始。在第一個例子中,提示是將以下英文文本翻譯成西班牙語: “Hi, I would like to order a blender”。

prompt = f"""
Translate the following English text to Spanish: \ 
```Hi, I would like to order a blender```
"""response = get_completion(prompt)print(response) 

模型的預期回答是“Hola,me gustaría ordenar una licuadora”。

很遺憾,我沒學過西班牙語,你肯定能看出來。

好,讓我們嘗試另一個例子。在這個例子中,提示是,告訴我這是什么語言。然后這是一句法語 “Combien co?te la lampe d’air”。

prompt = f"""
Tell me which language this is: 
```Combien co?te le lampadaire?```
"""
response = get_completion(prompt)
print(response) 

我們來運行一下。

This is French.

模型已經識別出這是法語。

模型也可以同時進行多種翻譯。在這個例子中,提示要求,將以下文本翻譯成法語和西班牙語,再加一個“海盜英語”。這段文本是,“我想訂購一個籃球”。

prompt = f"""
Translate the following text to French and Spanish
and English pirate: \
```I want to order a basketball```
"""
response = get_completion(prompt)
print(response) 

模型的輸出,這里是法語,西班牙語,還有海盜英語。

French: Je veux commander un ballon de basket

Spanish: Quiero ordenar un balón de baloncesto

English pirate: I be wantin' to order a basketball

在一些語言中,翻譯可能會因說話者與聽眾的關系而變化。你也可以向語言模型解釋這一點,這樣它就能進行相應的翻譯。

在這個例子中,我們提示要求,將以下文本翻譯成西班牙語,分別用正式的和非正式的用法表達,“你想訂購一個枕頭嗎?”。

prompt = f"""
Translate the following text to Spanish in both the \
formal and informal forms: 
'Would you like to order a pillow?'
"""
response = get_completion(prompt)
print(response) 

請注意,為了進行區別,我們在這里使用了不同于重音符的分隔符,而不是雙引號。使用什么分隔符并不重要,只要能實現清晰的分隔就可以。

Formal: ?Le gustaría ordenar una almohada?

Informal: ?Te gustaría ordenar una almohada?

模型的輸出,在這里有正式和非正式用法的區別。正式用法是指當你和比你資深的人交談或者在專業環境下使用的語氣,而非正式用法是指你和朋友說話時所使用的語氣。我其實不會說西班牙語,但是我爸爸會,他說這是正確的。

6.2 通用翻譯器

下一個例子,假設我們負責一家跨國電商公司,用戶發來的信息將會是各種不同的語言,因此他們會用各種不同的語言,告訴我們關于 IT 的問題。因此,我們需要一個通用的翻譯器。

首先,我們將粘貼一個各種不同語言的用戶信息的列表,然后我們將循環遍歷每一條用戶消息。

user_messages = ["La performance du système est plus lente que d'habitude.", # System performance is slower than normal "Mi monitor tiene píxeles que no se iluminan.", # My monitor has pixels that are not lighting"Il mio mouse non funziona", # My mouse is not working"Mój klawisz Ctrl jest zepsuty", # My keyboard has a broken control key"我的屏幕在閃爍" # My screen is flashing
]  

對于用戶消息中的問題,我將復制這個稍長一點的代碼塊。我們首先讓模型告訴我們,這個問題用的是什么語言,然后打印出原始消息使用的語言和問題的內容,然后我們要求模型將其翻譯成英語和韓語。

for issue in user_messages:prompt = f"Tell me what language this is: ```{issue}```"lang = get_completion(prompt)print(f"Original message ({lang}): {issue}")prompt = f"""Translate the following text to English \and Korean: ```{issue}```"""response = get_completion(prompt)print(response, "\n") 

讓我們運行一下。

Original message (This text is in French.): La performance du système est plus lente que d’habitude.

English: “The system performance is slower than usual.”

Korean: “??? ??? ???? ????.”

Original message (This sentence is in Spanish.): Mi monitor tiene píxeles que no se iluminan.

English: “My monitor has pixels that do not light up.”

Korean: “? ????? ??? ?? ??? ????.”

Original message (This phrase is in Italian. It translates to “My mouse is not working” in English.): Il mio mouse non funziona

English: My mouse is not working

Korean: ? ???? ???? ???

Original message (This text is in Polish.): Mój klawisz Ctrl jest zepsuty

English: My Ctrl key is broken

Korean: ? Ctrl ?? ?? ???

Original message (This text is in Chinese.): 我的屏幕在閃爍

English: My screen is flickering

Korean: ? ??? ??????

模型的輸出是,這條原始消息是法語,還有各種語言的消息,然后模型將它們翻譯成英語和韓語。你可以在這里看到,模型的輸出是 “This is French”, 這是因為此在提示中要求的響應格式是“This is French”。如果你希望只用一個單詞或不用句子來回答,你可以試著編輯這個提示。或者你也可以要求它以 JSON 格式或類似的方式,這將會鼓勵它不要使用整個句子來回答。

令人驚嘆的是,你剛剛構建了一款通用翻譯器。你可以隨時暫停視頻,在這里添加任何你想嘗試語言,也許是你自己說的語言,看看模型的表現如何。

6.3語氣和風格變換

ChatGPT可以產生不同的風格(語氣)。

接下來我們要深入探討的是風格轉換。

寫作可以根據預期的受眾不同而變化,我給同事或教授寫郵件的方式,顯然會與我給弟弟發短信的方式大不相同。ChatGPT 也可以幫助產生不同的語氣。

讓我們看一些例子。在第一個例子中,提示是,將以下俚語翻譯成商業信函:“老兄,這是喬,看看這盞落地燈的規格。”

prompt = f"""
Translate the following from slang to a business letter: 
'Dude, This is Joe, check out this spec on this standing lamp.'
"""
response = get_completion(prompt)
print(response) 

我們來執行一下。

Dear Sir/Madam,

I am writing to bring to your attention the specifications of the standing lamp.

Sincerely,

Joe

正如你所看到的,我們得到了一封更正式的商業信函,提出關于落地燈規格的建議。

6.4 文本格式轉換

接下來我們要做的是在不同的格式之間進行轉換。

ChatGPT 非常擅長在不同的格式之間進行轉換,比如從 JSON 到 HTML,XML,markdown,等等。 在提示中,我們將描述輸入和輸出格式。這里有一個例子。因此,我們一個 JSON 格式,包含一個餐廳員工的名單,包括他們的名字和電子郵件。

在提示中,我們要求模型將其從 JSON 轉換為 HTML,提示是:將以下的 Python 字典從 JSON 轉換為具有列頭和標題行的 HTML 表格。然后我們將從模型中獲得響應并將其打印出來。

data_json = { "resturant employees" :[ {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},{"name":"Bob", "email":"bob32@gmail.com"},{"name":"Jai", "email":"jai87@gmail.com"}]
}prompt = f"""
Translate the following python dictionary from JSON to an HTML \
table with column headers and title: {data_json}
"""
response = get_completion(prompt)
print(response) 

模型的輸出如下。

 <table><caption>Restaurant Employees</caption><thead><tr><th>Name</th><th>Email</th></tr></thead><tbody><tr><td>Shyam</td><td>shyamjaiswal@gmail.com</td></tr><tr><td>Bob</td><td>bob32@gmail.com</td></tr><tr><td>Jai</td><td>jai87@gmail.com</td></tr></tbody>
</table>

我們得到了HTML格式,顯示所有員工的名字和電子郵件。讓我們看看是否可以實際查看這個 HTML。我們將使用 Python 庫中的顯示函數,來顯示 HTML 響應。

from IPython.display import display, Markdown, Latex, HTML, JSON
display(HTML(response)) 

預期可以看到下面格式的 HTML 表格。
在這里插入圖片描述

6.5 拼寫檢查/語法檢查

我們的下一個轉換任務是拼寫檢查和語法檢查。

這是 ChatGPT 的一個非常流行的用途。我強烈推薦這樣做。我一直都這樣做。當你在非母語語言中工作時,特別有用。

這里有一些常見的語法和拼寫問題的例子,這個例子展示語言模型如何幫助解決這些問題。

我將粘貼一個有一些語法或拼寫錯誤的句子列表,然后我們將循環遍歷每個句子,要求模型校對并進行糾正。我們要使用一些分隔符。最后獲取響應并將其打印出來。

text = [ "The girl with the black and white puppies have a ball.", # The girl has a ball."Yolanda has her notebook.", # ok"Its going to be a long day. Does the car need it’s oil changed?", # Homonyms"Their goes my freedom. There going to bring they’re suitcases.", # Homonyms"Your going to need you’re notebook.", # Homonyms"That medicine effects my ability to sleep. Have you heard of the butterfly affect?", # Homonyms"This phrase is to cherck chatGPT for speling abilitty" # spelling
]for t in text:prompt = f"Proofread and correct: ```{t}```"response = get_completion(prompt)print(response) 

運行程序,模型輸出如下。

The girl with the black and white puppies has a ball.
Yolanda has her notebook.
"It's going to be a long day. Does the car need its oil changed?"
Here is the corrected version: "There goes my freedom. They are going to bring their suitcases."
You're going to need your notebook.
"That medicine affects my ability to sleep. Have you heard of the butterfly effect?"
This phrase is to check ChatGPT for spelling ability.

就這樣,這個模型能夠糾正所有這些語法錯誤。

我們可以使用一些我們在之前討論過的技術來改進提示。為了改進提示,我們可以說,校對和糾正以下文本, 并重寫整個校正后的版本。如果沒有發現任何錯誤,只需輸出“沒有發現錯誤”。

text = [ "The girl with the black and white puppies have a ball.", # The girl has a ball."Yolanda has her notebook.", # ok"Its going to be a long day. Does the car need it’s oil changed?", # Homonyms"Their goes my freedom. There going to bring they’re suitcases.", # Homonyms"Your going to need you’re notebook.", # Homonyms"That medicine effects my ability to sleep. Have you heard of the butterfly affect?", # Homonyms"This phrase is to cherck chatGPT for speling abilitty" # spelling
]for t in text:prompt = f"""Proofread and correct the following textand rewrite the corrected version. If you don't findand errors, just say "No errors found". Don't use any punctuation around the text:```{t}```"""response = get_completion(prompt)print(response) 

讓我們來試試這個提示。通過這種方式,我們能夠. . . 哦,這里還在使用引號。

The girl with the black and white puppies has a ball.
No errors found
It's going to be a long day. Does the car need its oil changed?
No errors found
You're going to need your notebook.
No errors found
This phrase is to check ChatGPT for spelling ability.

通過這種方式,我們能夠. . . 哦,這里還在使用引號。

但你可以想象,通過一點點迭代地進行提示開發,你能夠找到一個更加可靠的提示方式,每一次都能更好地工作。

現在我們再舉一個例子。在你把文本發布到公共論壇之前,檢查一下總是很有用的。因此,我們將舉一個檢查評論的例子。下面是一篇關于毛絨熊貓玩具的評論。我們將要求模型校對和糾正這篇評論。

text = f"""
Got this for my daughter for her birthday cuz she keeps taking \
mine from my room. Yes, adults also like pandas too. She takes \
it everywhere with her, and it's super soft and cute. One of the \
ears is a bit lower than the other, and I don't think that was \
designed to be asymmetrical. It's a bit small for what I paid for it \
though. I think there might be other options that are bigger for \
the same price. It arrived a day earlier than expected, so I got \
to play with it myself before I gave it to my daughter.
"""prompt = f"proofread and correct this review: ```{text}```"
response = get_completion(prompt)
print(response)

很好。所以我們有了這個糾正的版本。

I got this for my daughter for her birthday because she keeps taking mine from my room. Yes, adults also like pandas too. She takes it everywhere with her, and it’s super soft and cute. One of the ears is a bit lower than the other, and I don’t think that was designed to be asymmetrical. It’s a bit small for what I paid for it though. I think there might be other options that are bigger for the same price. It arrived a day earlier than expected, so I got to play with it myself before I gave it to my daughter.

我們還可以做一個很酷的事情,就是找到原始評論和模型輸出之間的差異。我們將使用 RedLines Python 包來實現這個功能。我們將獲取評論的原始文本和模型輸出之間的差異,然后顯示出來。

from redlines import Redlinesdiff = Redlines(text,response)
display(Markdown(diff.output_markdown)) 

預期在下面可以看到原始評論和模型輸出之間的差異,以及已經糾正的內容(紅色)。我們在這里使用的提示是,校對并更正這篇評論。

在這里插入圖片描述

你也可以做一些更戲劇性的改變,例如語氣的改變等等。讓我們再嘗試一下。

在這個提示中,我們要求模型校對和更正這篇相同的評論,但也要求對內容進行修改使其更有說服力,并確保它遵循 APA 風格。針對高級讀者。我們還將要求以 markdown 格式輸出。在這里我們使用與原始評論相同的文本。

prompt = f"""
proofread and correct this review. Make it more compelling. 
Ensure it follows APA style guide and targets an advanced reader. 
Output in markdown format.
Text: ```{text}```
"""response = get_completion(prompt)
display(Markdown(response)) 

我們來執行這個操作。

預期有一個擴展的 APA 樣式的評論,關于毛絨熊貓。如下:

在這里插入圖片描述

這就是關于文本轉換任務的全部內容。接下來,我們將進行擴寫任務,我們將使用較短的提示,從語言模型中生成更長、更自由的響應。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78813.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78813.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78813.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是靜態住宅ip,跨境電商為什么要用靜態住宅ip

在數字時代&#xff0c;IP地址不僅是設備聯網的“ID”&#xff0c;更是跨境電商運營中的關鍵工具。尤其對于需要長期穩定、安全操作的場景&#xff0c;靜態住宅IP逐漸成為行業首選。 一、什么是靜態住宅IP&#xff1f; 靜態住宅IP&#xff08;Static Residential IP&#xff0…

Qemu-STM32(十七):STM32F103加入AFIO控制器

概述 本文主要描述了在Qemu平臺中&#xff0c;如何添加STM32F103的AFIO控制器模擬代碼&#xff0c;AFIO是屬于GPIO引腳復用配置的功能。 參考資料 STM32F1XX TRM手冊&#xff0c;手冊編號&#xff1a;RM0008 添加步驟 1、在hw/arm/Kconfig文件中添加STM32F1XX_AFIO&#x…

QuecPython+audio:實現音頻的錄制與播放

概述 QuecPython 作為專為物聯網設計的開發框架&#xff0c;通過高度封裝的 Python 接口為嵌入式設備提供了完整的音頻處理能力。本文主要介紹如何利用 QuecPython 快速實現音頻功能的開發。 核心優勢 極簡開發&#xff1a;3行代碼完成基礎音頻錄制與播放。快速上手&#xf…

企業架構之旅(3):TOGAF ADM架構愿景的核心價值

一、引言&#xff1a;為什么架構愿景是企業架構的「導航圖」 在企業數字化轉型的浪潮中&#xff0c;TOGAF ADM&#xff08;架構開發方法&#xff09;作為公認的企業架構「方法論圣經」&#xff0c;其首個關鍵階段 —— 架構愿景&#xff08;Architecture Vision&#xff09;&a…

C++:Lambda表達式

C&#xff1a;Lambda表達式 C中lambda的基本語法1. 捕獲列表&#xff08;Capture List&#xff09;2. 示例代碼示例 1&#xff1a;簡單的lambda示例 2&#xff1a;捕獲變量示例 3&#xff1a;按引用捕獲示例 4&#xff1a;捕獲所有變量示例 5&#xff1a;作為函數參數 3. lambd…

被關在idea小黑屏里寫spark程序

一、先在idea中添加Scala插件 二、使用Maven創建新項目 1.啟動idea,選擇新建項目。之后的設置如下&#xff1a; 2.將Scala添加到全局庫中&#xff08;注意&#xff1a;Scala的版本不宜太高&#xff0c;最好是2-12.否則后面會報下面這個錯誤 E:\tool接口\SparkCore_01\src\mai…

自動化立庫/AGV物流仿真詳細步驟

以下是一種可以在預算和周期內實現自動化立庫及AGV 方案仿真分析的方法&#xff1a; 一、工具選擇 軟件工具FlexSim&#xff1a;這是一款流行的離散事件仿真軟件。它具有直觀的圖形用戶界面&#xff0c;通過簡單的拖拽操作就可以構建自動化立庫和 AGV 的模型。其內置的豐富的…

使用springboot+easyexcel實現導出excel并合并指定單元格

1&#xff1a;準備一個單元格合并策略類代碼&#xff1a; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.CellWriteHandler; import com.alibaba.excel.write.metadata.holder.Writ…

Python三大Web框架對比:Django、Flask、Tornado的異步實現方式詳解

目錄 引言 一、框架基礎概覽 1.1 Django 1.2 Flask 1.3 Tornado 二、異步編程基礎 2.1 同步 vs 異步 2.2 Python異步演進 三、框架異步實現對比 3.1 Django的異步進化 3.2 Flask的異步擴展 3.3 Tornado的異步范式 四、異步實現差異對比 4.1 實現機制對比 4.2 性…

深入理解Spring AI框架的核心概念

深入理解Spring AI框架的核心概念 前言 在當今人工智能飛速發展的時代&#xff0c;將AI技術集成到應用程序中已成為眾多開發者關注的焦點。Spring AI框架為Java開發者提供了便捷的途徑來實現這一目標。理解其核心概念對于充分發揮框架的潛力至關重要。本文將詳細探討Spring A…

LabVIEW基于VI Server的控件引用操作

本 VI 通過展示控件引用&#xff08;Control References&#xff09;的使用&#xff0c;借助 VI Server 實現對前面板對象的編程操作。 ? 詳細說明 隱式屬性節點&#xff08;Implicitly Linked Property Node&#xff09;&#xff1a;通過右鍵單擊控件&#xff08;或其控件終…

AI 邊緣計算網關十大品牌

引言 在物聯網與人工智能技術飛速發展的當下&#xff0c;數據量呈爆發式增長&#xff0c;對數據處理的實時性、準確性和安全性要求不斷提高。AI邊緣計算網關應運而生&#xff0c;它融合了人工智能、邊緣計算與物聯網技術&#xff0c;在靠近數據源或物理設備的網絡邊緣側&#…

基于深度學習的視頻目標跟蹤算法研究

標題:基于深度學習的視頻目標跟蹤算法研究 內容:1.摘要 隨著視頻數據的爆炸式增長&#xff0c;視頻目標跟蹤在智能監控、自動駕駛、人機交互等領域有著廣泛的應用需求。本文的目的是研究基于深度學習的視頻目標跟蹤算法&#xff0c;以提高跟蹤的準確性和實時性。方法上&#x…

C++代碼隨想錄刷題知識分享-----面試題鏈表相交

一、題目要求 題目&#xff1a;給定兩條單鏈表 headA、headB&#xff0c;找出它們相交的起始節點&#xff08;節點對象相同而非數值相等&#xff09;。若無交點返回 null。 限制&#xff1a;鏈表無環&#xff1b;函數返回后鏈表結構不能被破壞。 圖示兩個鏈表在節點 c1 開始相…

修改輸入框選擇框顏色

項目場景&#xff1a; 提示&#xff1a;這里簡述項目相關背景&#xff1a; 有時候需要改寫element原來輸入框/選擇框的顏色 問題描述 提示&#xff1a;這里描述項目中遇到的問題&#xff1a; 輸入框的話需要hover時邊框顏色修改&#xff0c;選擇值的時候邊框顏色修改以及選…

8.學習筆記-Maven進階(P82-P89)

&#xff08;一&#xff09;Maven-08-配置文件加載屬性 通過maven可以做版本的集中管理&#xff0c;所以能不能通過maven進行配置文件&#xff08;jdbc.properties&#xff09;的集中管理。 &#xff08;1&#xff09;resource-》jdbc.properties 可以識別$符號 因為只能…

基于Springboot+Mysql的漢服推廣網站(含LW+PPT+源碼+系統演示視頻+安裝說明)

系統功能 管理員功能&#xff1a;首頁、個人中心、漢服知識管理、服裝展示管理、服裝類別管理、用戶相冊管理、論壇交流、系統管理、訂單管理&#xff1b;用戶功能&#xff1a;首頁、個人中心、用戶相冊管理、論壇交流、我的收藏管理、訂單管理。 作者&#xff1a;計算機搬磚家…

Missashe考研日記-day30

Missashe考研日記-day30 0 寫在前面 日記也是寫到第30篇了哈哈&#xff0c;滿月了&#xff0c;雖然過了不止30天中間有斷更&#xff0c;但還是表揚一下自己堅持下來了。&#xff1a;&#xff09; 1 專業課408 學習時間&#xff1a;2h30min學習內容&#xff1a; 今天有其他事…

HHsuite同源序列搜索數據庫構建

HHsuite 可用的數據庫格式簡介 HHsuite 是用于蛋白質序列比對和同源性檢測的工具套件,它使用特定的數據庫格式以實現高效的數據存儲和快速的檢索。HHsuite 常用的數據庫格式主要基于 FFINDEX(Flat-File Index),這是一種簡單而高效的文件索引系統,它將數據文件(如蛋白質序…

基于HTML CANVAS和EXCEL的xlsx文件展示工具websheet

什么是WEBSHEET websheet基于HTML5的CANVAS和JAVASCRIPT開發的純前端xlsx文件展示控件&#xff0c;該控件著重的頁面展示&#xff0c;主要完成了文件導入、導出、文本展示、格式化文本、合并單元格、邊框、底色、設置行列寬度高度&#xff0c;行列隱藏、視圖鎖定、基礎表格、撤…