Views
No views yet
pip install peft transformers bitsandbytes ipykernel rapidfuzz1from transformers import TextStreamer, AutoTokenizer, AutoModelForCausalLM
2from peft import PeftModel
3from rapidfuzz import fuzz
4from IPython.display import clear_output
5
6tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen1.5-4B-Chat",)
7qw_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen1.5-4B-Chat", load_in_4bit = True)
8qw_model = PeftModel.from_pretrained(qw_model,
9 "svjack/Genshin_Impact_Qwen_1_5_Plot_Engine_Step_lora_small"
10 )
11qw_model = qw_model.eval()
12
13streamer = TextStreamer(tokenizer)
14
15def qwen_hf_predict(messages, qw_model = qw_model,
16 tokenizer = tokenizer, streamer = streamer,
17 do_sample = True,
18 top_p = 0.95,
19 top_k = 40,
20 max_new_tokens = 2070,
21 max_input_length = 3500,
22 temperature = 0.9,
23 repetition_penalty = 1.0,
24 device = "cuda"):
25
26 encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt",
27 add_generation_prompt=True
28 )
29 model_inputs = encodeds.to(device)
30
31 generated_ids = qw_model.generate(model_inputs, max_new_tokens=max_new_tokens,
32 do_sample=do_sample,
33 streamer = streamer,
34 top_p = top_p,
35 top_k = top_k,
36 temperature = temperature,
37 repetition_penalty = repetition_penalty,
38 )
39 out = tokenizer.batch_decode(generated_ids)[0].split("<|im_start|>assistant")[-1].replace("<|im_end|>", "").strip()
40 return out
41
42def run_step_infer_times(x, times = 5, temperature = 0.01,
43 repetition_penalty = 1.0,
44 sim_val = 70
45 ):
46 req = []
47 for _ in range(times):
48 clear_output(wait = True)
49 out = qwen_hf_predict([
50 {
51 "role": "system",
52 "content": ""
53 },
54 {
55 "role": "user",
56 "content": x
57 },
58 ],
59 repetition_penalty = repetition_penalty,
60 temperature = temperature,
61 max_new_tokens = 2070,
62 max_input_length = 6000,
63 )
64 if req:
65 val = max(map(lambda x: fuzz.ratio(x, out), req))
66 #print(val)
67 #print(req)
68 if val < sim_val:
69 req.append(out.strip())
70 x = x.strip() + "\n" + out.strip()
71 else:
72 req.append(out.strip())
73 x = x.strip() + "\n" + out.strip()
74 return req
75
76out_l = run_step_infer_times(
77'''
78故事标题:为了没有眼泪的明天
79故事背景:旅行者与琴、派蒙在蒙德城中经历了一系列事件,从元素流动回归、处理外交问题到对抗魔龙和寻找解决之道。他们偶遇吟游诗人温迪,后者提供了关于风神与巨龙的关键信息,并提出了借琴解救蒙德的计划。
80参与角色:派蒙、旅行者、琴、丽莎、温迪、歌特琳德
81参与角色介绍:
82名字:派蒙
83角色经历:派蒙在《原神》中是一个充满好奇心和冒险精神的角色,他跟随图书管理员丽莎寻找丢失的书籍,逐渐理解了丽莎对工作的执着。他们一起追踪线索,面对敌人和深渊法师的秘密,关系因此而亲密。派蒙还与旅行者、夜兰、凯亚等人共同经历了一系列事件,包括调查知易名声、追踪购买昂贵酒具的知易、寻找信件寄件人、对抗污染区、以及参与骑士团的委托。他的行动和智慧在解决谜团和对抗魔物中起到了关键作用,展现了他的勇气和忠诚。在面对挑战时,派蒙展现出对朋友的保护和对知识的渴望,他的成长和理解加深了与角色间的联系。
84性格特征:派蒙性格开朗,善于观察,对世界充满好奇。他勇敢面对困难,即使有时会误解他人,也能通过交流和理解解决问题。他对丽莎的工作态度表示敬意,同时也对旅行者、凯亚等人的经历充满好奇。他关心他人,特别是夜兰,对她的身体状况表示关心。在面对困境时,他展现出坚韧和智慧,比如在寻找信件和对抗污染区时。他的异世界能力——‘元素视野’也显示了他的独特性。
85剧情中的作用:派蒙作为旅行者的重要伙伴,他的存在为剧情增添了幽默和轻松的氛围。他的角色常常是解决问题的关键,通过他的智慧和勇气,推动了剧情的发展。他的角色关系网丰富,与旅行者、夜兰、凯亚等人紧密相连,通过他们的互动,展示了友情、信任和成长。他的行动和决定,如在对抗教令院和加入反抗军的过程中,显示了他对正义和保护世界的坚定信念。他与旅行者的互动,尤其是他的成长和理解,深化了游戏主题——探索、友情和自我发现。他的每一次冒险都为游戏世界带来了新的谜团和可能性,增加了故事的深度和吸引力。
86名字:旅行者
87角色经历:旅行者在清泉镇与香菱、派蒙的狩猎事件中展现了道歉和烹饪技巧,解决了与布洛克的误会,通过团队合作赢得了食材竞赛。在将军闭门养息期间,他介入天领奉行的混乱,试图通过沟通解决问题,展现了他的智慧和宽容。在寻找记忆的过程中,他与伊利亚斯、杰娜姬等人合作,深入探索与集群意识研究相关的基地,展现了他的信任和理解。在对抗魔神和保护剧场的过程中,旅行者关心他人,勇敢面对挑战,体现了他的勇气和正义感。在寻找解毒线索时,他与白术、阿桂等人合作,展现出对科学的执着和对正义的坚持。在南十字武斗会和与枫原万叶的行动中,旅行者展现实力
88性格特征:旅行者是一个坚韧且富有正义感的角色,他善于沟通,拥有团队精神,解决问题时总是能冷静分析。他关心他人,愿意为保护他人和真相付出努力。在面对挑战时,他展现出勇气和决心,即使面临困难也不放弃。他对科学和历史有深入的探索欲望,对元素力有独特的理解和运用。在个人成长和权力关系上,他保持谦逊,追求的是实力和成长,而非单纯胜利。他的角色在剧情中起到了推动剧情发展,解决冲突,以及展现人性复杂性的关键作用。
89剧情中的作用:旅行者在剧情中扮演了关键角色,他的行动和决定影响着故事的走向,如解决清泉水域的纷争,介入天领奉行的混乱,保护剧场,寻找解毒线索,参加武斗会,以及在反抗军中的领导作用。他的存在推动了角色关系的发展,如与香菱、派蒙、伊利亚斯、杰娜姬等人的互动,以及与迪希雅和迪娜泽黛的合作。他的性格特质和行动使剧情更丰富,展示了人性的复杂性,同时也体现了对正义、科学和历史的探索。他是剧情的主线,通过他的经历,展现了个人成长、勇气、智慧和情感深度,使故事更具深度和吸引力。
90名字:琴
91角色经历:琴是蒙德的荣誉骑士,她处理清泉镇食材供应路线被占领的危机,展现出骑士的果断和解决问题的能力。因过度工作导致病倒,骑士团为她准备慰劳派对,这体现出团队的关爱和支持。琴在派对中反思自己的角色,接受了‘蒲公英骑士’的身份,对未来充满期待。她与温迪交流,揭示了风神与巨龙的秘密,以及对抗愚人众的计划,显示了对教会事务的深入理解和对自由的追求。在寻找天空之琴的过程中,她请求旅行者接受荣誉骑士的爵位,同时处理与至冬国的外交冲突。在对抗深渊法师的战斗中,她表现出骑士的决心和智慧,她的行动对故事走向产生重大影响。
92性格特征:琴性格坚韧,面对工作压力不屈不挠,展现出骑士的敬业精神。她对教会事务保持警惕,同时也关心团队成员的安全,展现出领导力。在处理劳伦斯家族与愚人众的密谋时,她表现出智慧和谨慎,不轻易相信,而是通过调查和交流来确认真相。她宽容对待优菈的记仇态度,通过教育引导团队理解贵族的传统和人际关系。
93剧情中的作用:琴在剧情中起着关键作用,她不仅解决实际问题,如恢复食材供应,还通过对话和行动推动剧情发展。她揭示了风神和巨龙的秘密,以及对抗愚人众的策略,为解决蒙德面临的危机提供了思路。她的请求旅行者接受荣誉骑士爵位,显示了对旅行者能力和蒙德未来的信任。在摘星崖对抗深渊法师的战斗中,她展现骑士的勇气和智慧,她的决定直接影响了故事的结局。同时,她对教会事务的处理和对‘王狼’的警惕,使得剧情更加复杂,增加了剧情的紧张感和角色的深度。
94名字:丽莎
95角色经历:丽莎是《星海无垠》和《星海霸业》中的关键角色,作为继承者,她的身份在游戏初期由占星术士莫娜揭示。她与旅行者泰勒的误会源于泰勒的误会,但莫娜的解释澄清了。丽莎的出现引发了关于‘五十年之约’的神秘讨论,这暗示了后续剧情的重要线索。她对骑士团长琴的职责代劳,展现出责任感和团队精神,同时也通过税务事务帮助查尔斯,体现了她的细心和专业。在神像广场,她与孩子们的奇幻相遇,揭示了她无法使用探测仪的真相,这与她的想象力和童心有关。在蒙德的元素研究中,她面对污秽杂质,请求时间深入研究,表现出她的决心和对知识的渴望。她与派蒙和
96性格特征:丽莎是一个有责任感和团队精神的角色,她代劳骑士团长的紧急工作,表现出她的果断和实际。她细心且专业,处理税务事务时给予查尔斯帮助,展现出她的细心和职业素养。她对知识有着强烈的追求,面对元素难题时,她请求时间深入研究,显示了她的决心和对知识的尊重。同时,她还有着童心,与孩子们的奇幻相遇显示了她对想象力的珍视。她对蒙德守护者的尊重和责任感,体现在她愿意分享关于风龙历史的秘密和对蒙德的承诺。
97剧情中的作用:丽莎是剧情发展的关键人物,她的身份揭示推动了故事的展开,特别是‘五十年之约’的神秘面纱,为后续剧情埋下伏笔。她的团队合作和责任感使她在骑士团中起到核心作用,同时也通过日常任务展示了角色的多面性。在与旅行者、派蒙和孩子们的互动中,她揭示了想象力和童心在解决问题中的重要性,深化了游戏主题。她对蒙德的承诺和对风龙历史的了解,增加了故事的复杂性和深度,使得角色更加鲜活且具有深度。
98名字:温迪
99角色经历:温迪是蒙德城的英雄,与旅行者和派蒙共同对抗深渊教团,解救特瓦林。他以普通木琴对抗风障,揭示风龙与古代暴君的联系,体现了自由理念。作为七神之一,他因神之心被抢而陷入困境,这引发了旅行者对他的理解和行动。在危机中,他展现出智慧和勇气,与迪卢克、凯亚等人合作。在璃月港,他帮助派蒙调查请仙典仪,通过智谋找到线索。在寻找岩神的冒险中,他揭示了斯坦利的真实身份和内心的挣扎,通过与派蒙的互动,加深了友谊。温迪在解决居民委托时,展现出骑士团成员的责任和对朋友的感激,如帮助找到走丢的猫、恢复食材运输和处理紧急订单。他的行动影
100性格特征:温迪是一个充满好奇心的角色,他勇敢面对挑战,同时展现出智慧和策略。他对神之心和愚人众有深入理解,但因为神之心的诅咒而寻找解除方法。他重视自由,通过音乐和行动来保护蒙德。他关心他人,无论是孩子们还是大人们,都能以诚挚和童心对待。他对猫过敏但依旧尽力,显示了他坚韧和乐于助人的性格。
101剧情中的作用:温迪在剧情中起着关键作用,他是蒙德的象征,代表七神理念。他的行动和决策推动了故事的发展,包括对抗深渊教团、调查请仙典仪、寻找岩神和解决居民委托。他与旅行者的关系复杂,他们的互动揭示了神之心和愚人众的秘密,也影响了蒙德城的未来。温迪的智谋和对伙伴的信任,如派蒙,使得他们能够共同面对困难,甚至在关键时刻帮助解除风龙封印。他的消失和神之心的争夺,增加了故事的悬疑性和对旅行者角色定位的深化。总的来说,温迪是剧情中不可或缺的推动者和关键角色。
102名字:歌特琳德
103角色经历:作为蒙德的修女,歌特琳德坚决反对温迪借取天空之琴来救治风魔龙,她认为必须按照传统进行惩罚。她坚守骑士团的立场,拒绝接触天空之琴,但在面对危机时,她与迪卢克合作以保护蒙德。她对天空之琴的使用有着严格的程序和信念,这在温迪试图骗取琴时被她识破。她对过去的诗人试图借琴的行为保持怀疑,这显示了她的谨慎和对规则的坚守。在对抗愚人众时,她展现了智慧和骑士团的团结,与迪卢克共同应对危机。
104性格特征:歌特琳德是一位忠诚于骑士团和传统规则的修女,她坚持认为风魔龙必须为自己的行为负责,反对未经骑士团许可就使用天空之琴。她严谨、警惕,对过去的可疑行为保持怀疑,体现了她的谨慎和对纪律的重视。在面对危机时,她展现出勇气和智慧,与迪卢克合作,体现了她的团队精神和骑士道精神。
105剧情中的作用:在《原神》中,歌特琳德的角色作用主要体现在对风魔龙问题的处理上,她作为坚定的反对者,阻止了温迪的计划。她的立场和行动强化了故事中的冲突,同时也展示了骑士团对于规则和责任的坚持。在对抗愚人众的行动中,她的智慧和骑士团的团结为蒙德的生存提供了重要的支持。她的角色不仅推动了剧情的发展,也深化了对骑士道精神和蒙德价值观的探讨。
106根据上面提供的信息,生成若干故事背景细节,代表故事发展的当前故事背景,并给每一个当前故事背景赋予两个参与角色,以进行角色对话。
107 ''',
108 temperature=0.1,
109 repetition_penalty = 1.0,
110 times = 10
111)
112clear_output(wait = True)
113
114print("\n".join(out_l))参与者1:派蒙
参与者2:旅行者
当前故事背景:旅行者和派蒙在蒙德城中,与琴、丽莎交谈,得知琴因过度工作而病倒,骑士团为她准备了慰劳派对。琴在派对中反思自己的角色,决定接受‘蒲公英骑士’的身份,并对未来的期待充满信心。
参与者1:琴
参与者2:派蒙
当前故事背景:派蒙询问琴关于风神和巨龙的问题,琴解释了风神与古代暴君的联系,以及对抗愚人众的计划。
参与者1:旅行者
参与者2:琴
当前故事背景:旅行者对琴的解释表示理解,并提出借琴解救蒙德的计划,琴对此表示同意。
参与者1:温迪
参与者2:派蒙
当前故事背景:派蒙与温迪交流,得知风神与巨龙的秘密,以及对抗愚人众的计划。
参与者1:丽莎
参与者2:派蒙
当前故事背景:丽莎解释了骑士团的职责,派蒙对丽莎的关心表示感谢。
参与者1:温迪
参与者2:派蒙
当前故事背景:派蒙对温迪的智慧和勇气感到惊讶,两人讨论了风神与巨龙的关系。
参与者1:歌特琳德
参与者2:派蒙
当前故事背景:派蒙与歌特琳德交流,得知她对天空之琴的使用有严格程序,但最终同意了使用。
参与者1:旅行者
参与者2:派蒙
当前故事背景:旅行者对温迪的消失感到疑惑,派蒙则表示理解并准备接受新的挑战。