成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java 程序員從零開始學 LangChain —提示詞組件

開發 前端
今天給大家介紹了一下 LangChain? 的提示詞組件,有了提示詞和提示詞模板組件我們就可以更加方便的跟各種 LLMs 進行交互,并且可以更加靈活的構造屬于自己的模板,今天的分享就到這里,感興趣的小伙伴可以去試試哦。

前面的文章了不起給大家介紹了 LangChain 的一些基本知識,沒看過的小伙伴可以點擊這里去看下,今天了不起給大家介紹一下 LangChain 的第一個很重要的組件提示詞 Prompt。

什么提示詞

用過 ChatGPT 的小伙伴都知道,我們提供輸入,然后 ChatGPT 會提供回答,這里我們提供的輸入在 LLM 領域有一個專業名詞就叫做提示詞。

我們在使用 ChatGPT 的時候,有時候會設置很多默認的角色,并且常用的提示詞有很多,比如

  1. 我想讓你擔任 Android 開發工程師面試官。我將成為候選人,您將向我詢問 Android 開發工程師職位的面試問題。我希望你只作為面試官回答。不要一次寫出所有的問題。我希望你只對我進行采訪。問我問題,等待我的回答。不要寫解釋。像面試官一樣一個一個問我,等我回答。我的第一句話是“面試官你好”
  2. 我想讓你充當 Linux 終端。我將輸入命令,您將回復終端應顯示的內容。我希望您只在一個唯一的代碼塊內回復終端輸出,而不是其他任何內容。不要寫解釋。除非我指示您這樣做,否則不要鍵入命令。當我需要用英語告訴你一些事情時,我會把文字放在中括號內[就像這樣]。我的第一個命令是 pwd

圖片

上面的這些內容算是一種稍微復雜的提示詞,而且我們可以看到,這些常用的提示詞結構其實都比較相似,因此為了更加的通用,我們可以使用一個模板來表達,比如:我希望你擔任一個 {xxx},我將會提供 {yyy},你會按照 {zzz} 等等這種形式來組裝。

提示詞模板

上面提到了,為了更加通用的使用提示詞,LangChain 定義了一個提示詞模板的組件,通過提示詞模板組件我們可以創建提示詞,方便開發者更好的使用提示詞。

from langchain import PromptTemplate


template = """
I want you to act as a naming consultant for new companies.
What is a good name for a company that makes {product}?
"""

prompt = PromptTemplate(
    input_variables=["product"],
    template=template,
)
prompt.format(product="colorful socks")
# -> I want you to act as a naming consultant for new companies.
# -> What is a good name for a company that makes colorful socks?

如上所示,我們先創建一個提示詞模板字符串,其中用{product} 來替代需要替換的內容,接著通過構造 PromptTemplate 的時候傳遞 input_variables["product"] 參數,表示 product 是一個需要被替換的變量,最后通過 format 方法來設置真實要替換的內容。

此外我們可以構造無輸入變量的提示詞模板,也可以構造多輸入參數的模板,如下所示

from langchain import PromptTemplate

# An example prompt with no input variables
no_input_prompt = PromptTemplate(input_variables=[], template="Tell me a joke.")
no_input_prompt.format()
# -> "Tell me a joke."

# An example prompt with one input variable
one_input_prompt = PromptTemplate(input_variables=["adjective"], template="Tell me a {adjective} joke.")
one_input_prompt.format(adjective="funny")
# -> "Tell me a funny joke."

# An example prompt with multiple input variables
multiple_input_prompt = PromptTemplate(
    input_variables=["adjective", "content"], 
    template="Tell me a {adjective} joke about {content}."
)
multiple_input_prompt.format(adjective="funny", cnotallow="chickens")
# -> "Tell me a funny joke about chickens."

序列化提示詞模板

我們可以將制作好的提示詞模板進行序列化,存放的 json 或者 yaml 文件中,然后在其他地方可以加載使用,LangChain 會根據存放文件的后綴名來寫入對應格式的數據。

prompt_template.save("awesome_prompt.json") # Save to JSON file

from langchain.prompts import load_prompt
loaded_prompt = load_prompt("awesome_prompt.json")

assert prompt_template == loaded_prompt

零樣本提示詞和小樣本提示詞

說明提示詞模板過后,我們再來了解一下什么是零樣本提示詞和小樣本提示詞。

零樣本提示詞

圖片

如下圖所示,我們通過直接詢問 ChatGPT 一句話是積極、中性還是消極的情緒,其中我們并沒有告訴 ChatGPT 什么樣的情緒是積極的,什么樣是中性以及什么樣是消極的。

但是 ChatGPT 能夠很好的回答出來,這是因為 ChatGPT 已經學習了大量網絡上的內容,這種情況就是我們所說的零樣本提示。因為我們提問之前并沒有給 ChatGPT 任務示例和樣本。

小樣本提示詞

顧名思義小樣本提示詞表示我們在進行提問的時候會提供少量的小樣本提示詞給到 ChatGPT,讓 ChatGPT 根據我們提供發小樣本來學習進行回答。

之所以有小樣本提示詞是因為在隨著我們跟 ChatGPT 溝通對話次數的增加的時候,有時候話題會逃逸,所以我們改變每次傳遞的上下文信息,而是只傳遞小樣本指示詞,可以讓我們的話題始終保持初始狀態。

另外一個是由于我們跟 ChatGPT 的對話每次都是收費的,會根據我們傳遞的上下文的長度來計費,通過這種方式我們也可以減少傳遞的內容,避免長對話內容被傳遞增加費用。

舉個例子

User: 從現在起你是一個充滿哲學思維的心靈導師,當我每次輸入一個疑問時你需要用一句富有哲理的名言警句來回答我,并且表明作者和出處\n\n\n要求字數不少于15個字,不超過30字,每次只返回一句且不輸出額外的其他信息,你需要使用中文和英文雙語輸出\n\n\n當你準備好的時候只需要回復“我已經準備好了”(不需要輸出任何其他內容)

我作業寫不完怎么辦

“行動是治愈恐懼的良藥。” - 威廉·詹姆斯\n"Action is the antidote to fear." - William James

論文被拒了怎么辦

“失敗是成功之母。” - 俗語\n"Failure is the mother of success." - Chinese proverb

使用樣例

圖片

總結

今天給大家介紹了一下 LangChain 的提示詞組件,有了提示詞和提示詞模板組件我們就可以更加方便的跟各種 LLMs 進行交互,并且可以更加靈活的構造屬于自己的模板,今天的分享就到這里,感興趣的小伙伴可以去試試哦。

參考資料

官方文檔:https://python.langchain.com/en/latest/modules/prompts.html

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2023-06-02 07:37:12

LLM?大語言模型

2024-08-01 11:21:52

2022-02-16 22:57:57

Mitmproxy抓包工具

2015-08-24 14:59:06

Java線程

2011-04-06 15:55:50

開發webOS程序webOS

2024-12-09 09:44:34

機器學習模型分類器

2023-02-20 09:55:00

微服務框架單體架構

2015-08-26 10:01:20

iOS開發

2024-07-30 09:22:44

PostgreSQL數據庫工具

2015-11-17 16:11:07

Code Review

2019-01-18 12:39:45

云計算PaaS公有云

2018-04-18 07:01:59

Docker容器虛擬機

2024-12-06 17:02:26

2020-07-02 15:32:23

Kubernetes容器架構

2015-03-06 17:24:56

Android應用安全安卓應用安全

2010-05-26 17:35:08

配置Xcode SVN

2018-09-14 17:16:22

云計算軟件計算機網絡

2024-05-15 14:29:45

2011-04-29 10:46:32

iPhone開發入門iPhoneiOS

2023-10-27 11:01:31

網絡性能VLAN
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品精品视频 | 久久手机视频 | 国产黄色小视频在线观看 | com.色.www在线观看 | 日韩精品二区 | 国产精品成人久久久久 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 国产精品久久久亚洲 | 日韩精品极品视频在线观看免费 | 国产精品高潮呻吟久久 | 欧美天堂一区 | 黄网站免费入口 | 日韩免费视频 | 久久99精品久久久久久 | 日韩欧美一级精品久久 | 韩日免费视频 | 看片网站在线 | 久久宗合色 | 欧美日韩精品免费观看 | 一区二区三区免费 | 天天草草草 | 五月激情综合网 | 免费xxxx大片国产在线 | 日本a在线| 欧美成人免费 | 一级做a爰片久久毛片 | 久久精品成人一区 | 精国产品一区二区三区 | 91av视频在线观看 | 久久999| 99影视| 亚洲性在线 | 日韩福利在线观看 | 久久九九免费 | 日韩综合一区 | 综合久久综合久久 | www.久久99 | 欧美日韩精品在线免费观看 | 久久精品亚洲国产 | 国产精品一区免费 | 91中文视频|