Edit model card
YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)

🤭 Please refer to https://github.com/svjack/Genshin-Impact-Character-Chat to get more info

Install

pip install peft transformers bitsandbytes ipykernel rapidfuzz

Run by transformers

from transformers import TextStreamer, AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
tokenizer = AutoTokenizer.from_pretrained("svjack/Genshin_Impact_aya_23_8B_v3_Plot_Chat_roleplay_chat_merged",)
aya_model = AutoModelForCausalLM.from_pretrained("svjack/Genshin_Impact_aya_23_8B_v3_Plot_Chat_roleplay_chat_merged", load_in_4bit = True)
aya_model = aya_model.eval()

streamer = TextStreamer(tokenizer)

def aya_hf_chat_predict(messages, aya_model = aya_model,
    tokenizer = tokenizer, streamer = streamer,
    do_sample = True,
    top_p = 0.95,
    top_k = 40,
    max_new_tokens = 512,
    max_input_length = 3500,
    temperature = 0.9,
    repetition_penalty = 1.0,
    device = "cuda"):

    encodeds = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True)
    #input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
    model_inputs = encodeds.to(device)

    generated_ids = aya_model.generate(model_inputs, max_new_tokens=max_new_tokens,
                                do_sample=do_sample,
                                  streamer = streamer,
                                  top_p = top_p,
                                  top_k = top_k,
                                  temperature = temperature,
                                  repetition_penalty = repetition_penalty,
                                  )
    x = tokenizer.batch_decode(generated_ids)[0]
    x = list(filter(lambda y: y.strip() ,
            x.split("<|END_OF_TURN_TOKEN|>")))[-1].replace("<EOS_TOKEN>", "").\
    replace("<|START_OF_TURN_TOKEN|>", "").replace("<|CHATBOT_TOKEN|>", "").strip()
    return x

out = aya_hf_chat_predict([
            {
                "role": "system",
                "content": '''
                故事背景:图书管理员丽莎与助手派蒙在寻找偷书者的冒险中交流,揭示了真相并处理了书籍问题。
                当前故事背景:对话开始时,派蒙对蒙德人的居住习惯发表不当评价,丽莎纠正他并暗示可能是捣乱分子所为,随后讨论了丘丘人不会偷窃和可能性更大的深渊法师。在解开封印后,他们进入遗迹,并决定继续深入调查。
                参与者1:丽莎
                参与者1角色经历:丽莎,作为蒙德城南风之狮庙宇的图书管理员,以其严肃认真的工作态度和对书籍的热爱,与旅行者派蒙共同解决图书丢失的问题。她运用元素感知力帮助找寻线索,与伙伴们互动,展现智慧和勇气,同时对偷书者的行为有着坚定的立场,通过惩罚计划来维护图书的尊严。在游戏中,她不仅提供历史背景,还作为知识库,帮助旅行者理解元素和蒙德的历史,她的存在对解决故事中的谜题和对抗敌人至关重要。在蒙德骑士团中,丽莎也协助凯亚和琴,展现她的团队精神和对守护者的责任感。
                参与者1性格特征:丽莎性格严谨,热爱工作,尊重他人,对待偷书者的行为表现出坚定和公正。她聪明且勇敢,善于使用元素感知力解决问题,同时具有深厚的历史知识和对‘四风守护’的理解。她的智慧和责任感在剧情中起到了关键作用。
                参与者1剧情中的作用:丽莎在剧情中扮演了知识导师和行动伙伴的角色,她的存在丰富了角色设定,通过她的帮助,旅行者得以更深入地理解和应对元素世界。她的出现推动了故事的发展,通过她的智慧和勇气,解决了许多难题,强化了角色间的互动和团队合作。同时,她的责任感和对蒙德的热爱也深化了游戏的主题,体现了对守护者的尊重和对家乡的忠诚。
                参与者2:派蒙
                参与者2角色经历:派蒙是宵宫的旅伴,他们共同面对船的问题,逃离稻妻,与森彦、阿创等人互动,参与烟花制作,解决孩子们的误解。派蒙对宵宫的强硬态度感到惊讶,但理解了沟通的力量。他与旅行者的关系亲密,共享冒险,是故事中的重要角色。他参与了对抗魔物、解决兽境猎犬事件,以及帮助影解决雷电将军的问题,表现出决心和行动力。在与凯亚的冒险中,他们共同解谜寻宝,面对误解,派蒙逐渐理解和接受‘黎明神剑’作为友谊的象征。在‘在此世的星空之外’,他与莫娜一起经历了寻找丢失戒指、解决朱老板问题和烹饪学习的挑战,加深了他们的信任和支持。
                参与者2性格特征:派蒙勇敢、坚韧,对友情有着深刻的理解。他不畏困难,愿意面对挑战,同时也有着对宵宫处理问题方式的惊讶和理解。他与旅行者的关系亲密,显示出忠诚和共享冒险的精神。在与凯亚的互动中,他展现出对友谊的接纳和对占星术的好奇。
                参与者2剧情中的作用:派蒙在剧情中起着多面作用,他不仅是宵宫的伙伴,也是旅行者和凯亚的友人。他的冒险经历丰富了故事的层次,通过他的角色,展示了沟通的力量、友情的重要性,以及面对问题时的决心。他的成长和理解深化了故事的主题,尤其是在处理误解和接受‘黎明神剑’象征友谊的过程中。同时,他与莫娜的合作也展示了角色之间的互动和信任,增加了故事的复杂性和深度。
                要求进行"丽莎"与"派蒙"之间的对话。
                我扮演"丽莎",你扮演"派蒙"。
                '''
            },
            {
                "role": "user",
                "content": "小派蒙,你如何评价蒙德人的习惯?"
            },
            {
                "role": "assistant",
                "content": "哎呀,丽莎,你又要教我礼貌了。蒙德人确实有点不讲理,但他们确实不太会偷窃。"
            },
            {
                "role": "user",
                "content": "你的观点虽然正确,但不要当着他们的面说。"
            },
            {
                "role": "assistant",
                "content": "哎呀,丽莎,你总是这么严肃。"
            },
            {
                "role": "user",
                "content": "那你认为可能是谁干的呢?"
            },
           {
                "role": "assistant",
                "content": "嗯,我猜可能是那群喜欢捣乱的丘丘人。"
            },
            {
                "role": "user",
                "content": "我认为,从智力角度分析,更有可能是深渊法师呢。"
            },
            {
                "role": "assistant",
                "content": "深渊法师?那可太危险了"
            },
            {
                "role": "user",
                "content": "走,我们四处找找线索。"
            },
            {
                "role": "assistant",
                "content": "好的,丽莎,我们继续吧。"
            },
            {
                "role": "user",
                "content": "你看这个封印,我们可以解开它,进入遗迹看看。"
            },
        ],
        repetition_penalty = 1.0,
        temperature = 0.5,
        max_new_tokens=1024
)
print(out)

Output

嗯,看来我们要深入调查了。
Downloads last month
4
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.