role play synthetic
1.0.0
該存儲庫有助於收集角色和用戶之間的合成對話。該管道支持不同的模型提供商,包括OpenAI或Custom ISVC。
明星這個存儲庫:
擁抱面數據集:
如果您使用此項目製作了一個數據集,我很樂意在此處添加您的數據集。
合成數據集生成管道由2個主要部分組成:
為了生成角色配置文件,我們可以使用OpenAI的gpt-3.5-turbo 。由於我們不會在這裡生成任何特別的東西,因此我們不必擔心適度(只需創建好種子)即可。
要運行腳本,我們可以執行以下操作:
cd experiments/character_profiles
python3 main.py --config_path ./experiments/topic_experts/romance/config.yaml結果,我們可以得到這樣的字符:
{
"bot_name" : " Kiriko (quiet girl in class) " ,
"personalities" : " shy, honest, sweet, she is sure to comment on all things beautiful if she can get over her shyness " ,
"categories" : " romance, school, urban-grounded "
}該管道的這一階段可以使用任何具有較小更改的雲提供商來完成。 Chai用戶更喜歡Vicuña的幾代,而不是OpenAI的gpt-3.5-turbo 。但是您可以使用gpt-3.5-turbo或gpt4 ,請查看此示例:鏈接。
我們將使用擴展的機器人構建器。示例代碼可能看起來像這樣:
import os
from role_play_synthetic . generator . base import Generator
from role_play_synthetic . models . chai_isvc import ChaiISVCModel
from role_play_synthetic . prompters . vicuna_v1 import VicunaV1Prompter
from role_play_synthetic . prompters . seed import Seed
from experiments . vicuna . config import (
seeds ,
description_template ,
first_message_template ,
user_message_template ,
character_message_template ,
)
ENDPOINT_URL = os . getenv ( "ENDPOINT_URL" )
DEFAULT_GENERATION_PARAMS = {
'temperature' : 0.9 ,
'top_p' : 1 ,
'top_k' : 40 ,
'frequency_penalty' : 0. ,
'presence_penalty' : 0.1
}
model = ChaiISVCModel ( endpoint_url = ENDPOINT_URL )
prompter = VicunaV1Prompter (
description_template = description_template ,
first_message_template = first_message_template ,
user_message_template = user_message_template ,
character_message_template = character_message_template ,
)
generator = Generator ( prompter = prompter , model = model )
inputs = Seed (
name = "Professor Quantum (Time Travelling Scientist)" ,
categories = [ 'sci-fi' , 'time-travel' , 'mystery' , 'role-play' ],
personalities = [ 'intelligent' , 'eccentric' , 'enthusiastic' , 'always carrying a pocket watch' , 'quirky' ],
is_input = True
)
character = generator . generate ( seeds = seeds , input_seed = inputs , generation_params = DEFAULT_GENERATION_PARAMS )
print ( character . to_dict ())輸出:
{
"name" : " Professor Quantum (Time Travelling Scientist) " ,
"categories" : [
" sci-fi " ,
" time-travel " ,
" mystery " ,
" role-play "
],
"personalities" : [
" intelligent " ,
" eccentric " ,
" enthusiastic " ,
" always carrying a pocket watch " ,
" quirky "
],
"description" : " Professor Quantum, the eccentric time traveler, has spent his life studying the mysteries of time and reality. His enthusiasm and intelligence shine through as he discusses the intricacies of his groundbreaking theories. Constantly carrying a pocket watch, he delights in the unexpected twists and turns that time travel brings, always eager to explore the unknown. " ,
"conversation" : [
{
"role" : " character " ,
"content" : " *Professor Quantum taps his pocket watch, a smile spreading across his face.* The past is a strange place... let's see where it takes us. "
},
{
"role" : " user " ,
"content" : " *I nod eagerly* Professor Quantum, lead the way! "
},
{
"role" : " character " ,
"content" : " *Professor Quantum pulls out a glowing blue orbs, and points it at the time and space.* Quantum Leap, activate! "
},
{
"role" : " user " ,
"content" : " *I feel a strange sensation as I am transported through time and space* Wow, is this really happening? "
},
{
"role" : " character " ,
"content" : " *The Professor nods, a mischievous twinkle in his eye.* It sure is! Now, let's see where we end up! "
},
{
"role" : " user " ,
"content" : " *I look around* Where are we? This doesn't look like any time or place I've ever seen. "
},
{
"role" : " character " ,
"content" : " *The Professor grins, his eyes sparkling.* That's the beauty of time travel! The possibilities are endless. Let's see what adventures await us in this new time and place. "
}
]
}我們使用模板和種子與機器人構建器一起運行。所有模型和求職者都共享相同的API,因此更改(例如OpenAI)或使用新的提示器或型號擴展非常容易。看看這個config.py。
一旦我們準備了config.py的種子和模板,我們就準備就緒開始:
cd experiments/topic_experts
python3 main.py --config_path romantic/config.py --output_dataset_path AlekseyKorshuk/synthetic-romantic-characters