Views
No views yet
<某> for user inputs.1from transformers import T5Tokenizer, AutoModelForCausalLM
2
3tokenizer = T5Tokenizer.from_pretrained("ushikado/yuyuyui-chatbot")
4model = AutoModelForCausalLM.from_pretrained("ushikado/yuyuyui-chatbot")
5
6query_text = "<某>神樹様について教えてください。</s><上里 ひなた>"
7input_tensor = tokenizer.encode(query_text, add_special_tokens=False, return_tensors="pt")
8output_list = model.generate(input_tensor, max_length=100, do_sample=True, pad_token_id=tokenizer.eos_token_id)
9output_text = tokenizer.decode(output_list[0])
10print(output_text)
11"""
12<某> 神樹様について教えてください。</s> <上里 ひなた> 造反神は、神樹様の分裂を煽り出して、神樹様の中の一体感を高める存在です。</s>
13"""1class Interlocutor():
2 def __init__(self, tokenizer, model, character_token, max_context_length=512, max_response_length=128):
3 self.tokenizer = tokenizer
4 self.model = model
5 self.character_token = character_token
6 self.max_context_length = max_context_length
7 self.max_response_length = max_response_length
8 self.context = ""
9 return
10
11 def generate(self, query):
12 nanigashi = self.tokenizer.additional_special_tokens[0]
13 nanigashi_id = self.tokenizer.additional_special_tokens_ids[0]
14 self.context += nanigashi + query + self.tokenizer.eos_token + self.character_token
15 context_tensor = self.tokenizer.encode(self.context, add_special_tokens=False, return_tensors="pt")
16 context_length = context_tensor.size()[-1]
17 if self.max_context_length < context_length:
18 context_tensor = context_tensor.narrow(1, context_length - self.max_context_length, self.max_context_length)
19 context_length = context_tensor.size()[-1]
20 max_length = context_length + self.max_response_length
21 context_tensor = self.model.generate(context_tensor, do_sample=True, max_length=max_length,
22 pad_token_id=self.tokenizer.eos_token_id)
23 self.context = re.sub(self.tokenizer.eos_token, "", self.tokenizer.decode(context_tensor[0]))
24 response = self.context[self.context.rindex(self.character_token) + len(self.character_token) : ].strip()
25 print(response)
26
27interlocutor = Interlocutor(tokenizer, model, "<加賀城 雀>")
28interlocutor.generate("何しようかな。")
29"""
30そうだなぁ。せっかく徳島に来たんだから、何か食べたいよなー。</s>
31"""
32interlocutor.generate("例えば?")
33"""
34スパムとかいう高級料理はちょっとなぁ。あとは可愛い雑貨とか、おやつとか。</s>
35"""
36interlocutor.generate("徳島ラーメンじゃないの?")
37"""
38あー、確か徳島ラーメンってのがあって、それも美味しいんだよね。</s>
39"""
40interlocutor.generate("ここから近いお店があるんだって。行ってみよう!")
41"""
42わー! 何だか賑やかでいい感じだね。</s>
43"""
44interlocutor.generate("さっそく注文するね。")
45"""
46んー! ずっーと揚げ鶏が好きだったけど、今日は初めてまるまる鶏肉を注文してみるよ。</s>
47"""
48print(interlocutor.context)
49"""
50<某> 何しようかな。</s> <加賀城 雀> そうだなぁ。せっかく徳島に来たんだから、何か食べたいよなー。</s> <某> 例えば?</s> <加賀城 雀> スパムとかいう高級料理はちょっとなぁ。あとは可愛い雑貨とか、おやつとか。</s> <某> 徳島ラーメンじゃないの?</s> <加賀城 雀> あー、確か徳島ラーメンってのがあって、それも美味しいんだよね。</s> <某> ここから近いお店があるんだって。行ってみよう!</s> <加賀城 雀> わー! 何だか賑やかでいい感じだね。</s> <某> さっそく注文するね。</s> <加賀城 雀> んー! ずっーと揚げ鶏が好きだったけど、今日は初めてまるまる鶏肉を注文してみるよ。</s>
51"""<某> is unspecified (nanigashi). Use for user inputs or mobs.1<某>
2<結城 友奈>
3<東郷 美森>
4<犬吠埼 風>
5<犬吠埼 樹>
6<三好 夏凜>
7<乃木 園子>
8<鷲尾 須美>
9<三ノ輪 銀>
10<乃木 若葉>
11<上里 ひなた>
12<土居 球子>
13<伊予島 杏>
14<郡 千景>
15<高嶋 友奈>
16<白鳥 歌野>
17<藤森 水都>
18<秋原 雪花>
19<古波蔵 棗>
20<楠 芽吹>
21<加賀城 雀>
22<弥勒 夕海子>
23<山伏 しずく>
24<山伏 シズク>
25<国土 亜耶>
26<赤嶺 友奈>
27<弥勒 蓮華>
28<桐生 静>
29<安芸 真鈴>
30<花本 美佳>