ChatGPT是目前最先進的AI聊天機器人,它能夠理解圖片和文字,生成流暢和有趣的回答。如果你想跟上AI時代的潮流,你一定要學會使用ChatGPT。如果你想了解OpenAI最新發布的GPT-4模型,以及它如何為ChatGPT聊天機器人帶來更強大的功能,那麼你一定不要錯過OpenAI官網推薦的48種最佳應用場景,不管你是資深開發者、初學者,你都能夠從0到1快速入門,並掌握他們。
在這個AI大時代,如果不想被人顛覆,就要先顛覆別人。如果你顛覆不了別人,那你就努力運用ChatGPT提高你的技術水平和創造力。
如果要給一個python函式寫高質量的文件字串,程式設計師不僅要需要在文件字串中描述函式的引數和返回值,並使用相應的標籤(例如Args,Returns,Raises)來提升可讀性,還需要注意相關的語法規則和格式。而ChatGPT的智慧註釋文件生成功能,能幫助程式設計師智慧建立註釋文件字串,極大地提高了python函式註釋效率。
Introduce 簡介
Write a Python docstring 編寫Python文件字串
An example of how to create a docstring for a given Python function. We specify the Python version, paste in the code, and then ask within a comment for a docstring, and give a characteristic beginning of a docstring (""").
這是一個如何為給定的Python函式建立註釋文件字串的示例。我們指定Python版本,貼上到程式碼中,然後在註釋中請求一個文件字串,並給予一個文件字串的特徵開頭(""")。
setting 設定
Engine
: text-davinci-003
Max tokens
:150
Temperature
:0
Top p
:1.0
Frequency penalty
:0.0
Presence penalty
:0.0
Stop sequence
:#
"""
說明:
0、Engine
設定定義了你要使用的模型,例如 text-davinci-003是一個文字生成模型。這種模型可以根據輸入的文字,生成新的、相關的文字。
1、Max tokens
是指在請求中最多允許返回的 token 數目,比如你可以指定 chatGPT 返回最多60個 token。這可以幫助你控制輸出的內容大小,以便更好地控制響應速度和結果。一般1個token約4個字元或者0.75個單詞
2、Temperature
是一個引數,用於控制 chatGPT 的輸出。它決定了 chatGPT 在生成文字時會多麼“隨意”。值越高,chatGPT 生成的文字就越不可預測;值越低,chatGPT 生成的文字就越可預測。它在0.0到2.0之間,Temperature設定為0意味著ChatGPT將會生成更加保守的回覆,即更少的隨機性和更多的準確性,這可以幫助你在聊天中更好地控制語義,並且可以防止ChatGPT產生不相關的內容。通常建議更改此值或Top P
,但不要同時更改這兩個值。
3、Top p
是隨溫度取樣的替代方案,稱為核取樣,其中模型考慮具有top_p機率質量的標記的結果。因此0.1意味著僅考慮包括前10%機率質量的記號。通常建議更改此值或temperature
,但不要同時更改這兩個值。
4、Frequency penalty
是指在訓練時,模型會根據詞頻來調整每個單詞的重要性。它可以幫助模型更好地理解文字,並減少過擬合。介於-2.0和2.0之間的數字。正值會根據新標記在文字中的現有頻率懲罰新標記,從而降低模型逐字重複同一行的可能性。Frequency penalty設定為0意味著模型不會對重複的詞進行懲罰。它可以幫助模型生成更多的新詞,而不是重複使用已有的詞。
5、Presence penalty
是指在ChatGPT中,一些預先定義的條件或者狀態可能會影響機器人回答的質量,介於-2.0和2.0之間的數字。正值會根據新標記到目前為止是否出現在文字中來懲罰它們,從而增加模型談論新主題的可能性。如果將 Presence penalty 設定為 0,則表示不會有任何懲罰。
6、Stop sequence
是一種設定,透過它可以確定你的聊天會話的結束標誌。當你在 ChatGPT中設定 Stop sequence為#
"""
時,表示你的聊天會話結束標誌是註釋符#
"""
。
Prompt 提示
# Python 3.7
def randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):
df = pd.read_json(folder + filename, lines=True)
train_name, test_name = "train.jsonl", "test.jsonl"
df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)
df_train.to_json(folder + train_name, orient='records', lines=True)
df_test.to_json(folder + test_name, orient='records', lines=True)
randomly_split_dataset('finetune_data/', 'dataset.jsonl')
# An elaborate, high quality docstring for the above function: 用於上述函式的詳盡高質量文件字串
"""
Sample response 回覆樣本
""" This function randomly splits a dataset into two parts, a training set and a test set, according to a given split ratio.
Parameters:
folder (str): The path to the folder containing the dataset.
filename (str): The name of the dataset file.
split_ratio (list): A list of two floats representing the ratio of the training set and the test set.
Returns:
None
"""
"""此函式根據給定的拆分比率將資料集隨機拆分為兩個部分:訓練集和測試集。
引數:
folder (str):包含資料集的資料夾的路徑。
filename (str):資料集檔案的名稱。
split_ratio(list):一個由兩個浮點陣列成的列表,表示訓練集和測試集的比率。
返回:
無
"""
API request 介面請求
python介面請求示例
import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
model="text-davinci-003",
prompt="# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
temperature=0,
max_tokens=150,
top_p=1.0,
frequency_penalty=0.0,
presence_penalty=0.0,
stop=["#", "\"\"\""]
)
node.js介面請求示例
const { Configuration, OpenAIApi } = require("openai");
const configuration = new Configuration({
apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);
const response = await openai.createCompletion({
model: "text-davinci-003",
prompt: "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
temperature: 0,
max_tokens: 150,
top_p: 1.0,
frequency_penalty: 0.0,
presence_penalty: 0.0,
stop: ["#", "\"\"\""],
});
curl命令示例
curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "text-davinci-003",
"prompt": "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
"temperature": 0,
"max_tokens": 150,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
"stop": ["#", "\"\"\""]
}'
json格式示例
{
"model": "text-davinci-003",
"prompt": "# Python 3.7\n \ndef randomly_split_dataset(folder, filename, split_ratio=[0.8, 0.2]):\n df = pd.read_json(folder + filename, lines=True)\n train_name, test_name = \"train.jsonl\", \"test.jsonl\"\n df_train, df_test = train_test_split(df, test_size=split_ratio[1], random_state=42)\n df_train.to_json(folder + train_name, orient='records', lines=True)\n df_test.to_json(folder + test_name, orient='records', lines=True)\nrandomly_split_dataset('finetune_data/', 'dataset.jsonl')\n \n# An elaborate, high quality docstring for the above function:\n\"\"\"",
"temperature": 0,
"max_tokens": 150,
"top_p": 1.0,
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
"stop": ["#", "\"\"\""]
}
其它資料下載
如果大家想繼續瞭解人工智慧相關學習路線和知識體系,歡迎大家翻閱我的另外一篇部落格《重磅 | 完備的人工智慧AI 學習——基礎知識學習路線,所有資料免關注免套路直接網盤下載》
這篇部落格參考了Github知名開源平臺,AI技術平臺以及相關領域專家:Datawhale,ApacheCN,AI有道和黃海廣博士等約有近100G相關資料,希望能幫助到所有小夥伴們。