Repositori ini membantu mengumpulkan percakapan sintetis antara karakter dan pengguna. Pipa ini mendukung berbagai penyedia model termasuk OpenAI atau Custom ISVC.
Bintang repositori ini:
Dataset Huggingface:
Jika Anda membuat dataset dengan proyek ini, saya senang menambahkan milik Anda di sini.
Pipa pembuatan dataset sintetis terdiri dari 2 bagian utama:
Untuk menghasilkan profil karakter kita dapat menggunakan gpt-3.5-turbo Openai. Karena kami tidak akan menghasilkan sesuatu yang istimewa di sini, kami tidak dapat khawatir tentang moderasi (cukup buat benih yang baik).
Untuk menjalankan skrip, kita dapat melakukan hal berikut:
cd experiments/character_profiles
python3 main.py --config_path ./experiments/topic_experts/romance/config.yamlAkibatnya kita bisa mendapatkan karakter seperti ini:
{
"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 "
} Tahap pipa ini dapat dilakukan dengan penyedia cloud apa pun dengan perubahan kecil. Pengguna Chai lebih suka generasi Vicuña daripada gpt-3.5-turbo Openai. Tetapi Anda dapat menggunakan gpt-3.5-turbo atau gpt4 , lihat contoh ini: tautan.
Kami akan menggunakan pembangun bot yang diperluas. Kode sampel mungkin terlihat seperti ini:
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 ())Keluaran:
{
"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. "
}
]
}Kami menggunakan templat dan biji untuk beroperasi dengan pembuat bot. Semua model dan pendorong berbagi API yang sama, sehingga sangat mudah untuk diubah (untuk membuka contoh) atau memperluas dengan petunjuk atau model baru. Lihatlah config.py ini.
Segera setelah kami menyiapkan benih dan template di config.py, kami siap memulai:
cd experiments/topic_experts
python3 main.py --config_path romantic/config.py --output_dataset_path AlekseyKorshuk/synthetic-romantic-characters