Sibozhu / Haruhi-2-Dev

Just for debug

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChatHaruhi2.0的测试项目

主要用于开发和测试ChatHaruhi2.0

主要是原项目太大了每次clone和测试太慢

这个项目会在2.0初步功能开发完成后关闭。

请大家回去找原项目 https://github.com/LC1332/Chat-Haruhi-Suzumiya

  • 选择性移除了ChatHaruhi( https://github.com/LC1332/Haruhi-2-Dev ) 下chromadb的依赖 ,在text_folder载入, hugging_face载入和jsonl载入下 默认使用一个NaiveDB而不是ChromaDB。
  • TODO: 增加adapter,支持即使用openai建库仍然可以用任意的embedding进行query

ChatHaruhi2.0的文档

初步使用

目前ChatHaruhi可以使用pip直接安装

pip -q install chatharuhi

依赖的库为

pip -q install transformers openai tiktoken langchain datasets

从hugging face载入角色

从hugging face载入一个数据集,接口是这样的

from chatharuhi import ChatHaruhi

chatbot = ChatHaruhi( role_from_hf = 'silk-road/linghuchong', \
                      llm = 'openai')

response = chatbot.chat(role='小师妹', text = '冲哥。')
print(response)

使用语法糖载入

安装完成之后可以使用语法糖直接调用

这个例子见notebook

from chatharuhi import ChatHaruhi

chatbot = ChatHaruhi( role_name = 'haruhi', llm = 'openai')

response = chatbot.chat(role='阿虚', text = '我看新一年的棒球比赛要开始了!我们要去参加吗?')
print(response)

这就可以直接进行调用了。

role_name = 的载入方式仍然依赖chromaDB

HuggingFace和jsonl载入

目前推荐jsonl或者Hugging Face的方式载入,如下:

这些角色可以通过

chatbot = ChatHaruhi( role_from_hf = 'silk-road/ChatHaruhi-from-RoleLLM/Jack-Sparrow', \
                      llm = 'openai',
                      embedding = 'bge_en')

这里要求silk-road/ChatHaruhi-from-RoleLLM的数据集项目下必须有Jack-Sparrow.jsonl

也可以使用

chatbot = ChatHaruhi( role_from_hf = 'Your_local_jsonl', \
                      llm = 'openai',
                      embedding = 'bge_en')

来进行载入

分开载入system_prompt和story_db

更完整的用法,是分开对system_prompt和story_db进行设置

这个例子见notebook

wget -q https://github.com/LC1332/Haruhi-2-Dev/raw/main/data/characters/haruhi/haruhi.zip
unzip -q haruhi.zip -d /content/new_output

先下载和解压对应的文件,然后使用更完整的初始化方法

from chatharuhi import ChatHaruhi

db_folder = '/content/new_output/content/haruhi'
system_prompt = '/content/new_output/content/system_prompt.txt'

chatbot = ChatHaruhi( system_prompt = system_prompt,\
                      llm = 'openai' ,\
                      story_db = db_folder)

response = chatbot.chat(role='阿虚', text = 'Haruhi, 你好啊')
print(response)

这样就可以使用了。

如果story_db还没有被抽取

如果你的人物还没有抽取story_db,可以使用这个方法去初始化

这个例子见notebook

from chatharuhi import ChatHaruhi

text_folder = '/content/Haruhi-2-Dev/data/characters/haruhi/texts'

system_prompt = '/content/Haruhi-2-Dev/data/characters/haruhi/system_prompt.txt'

chatbot = ChatHaruhi( system_prompt = system_prompt,\
                      llm = 'debug' ,\
                      story_text_folder = text_folder)

chatbot.chat(role='阿虚', text = 'Haruhi, 你好啊')

这个时候chatbot会自动抽取text_folder中的embedding,时候还可以用

chatbot.save_story_db('/content/haruhi')

的方式保存chormaDB到文件夹,下次就不用重新抽取了。基础的用法介绍到这里。后面是更详细的章节

不同LLM的支持

目前支持llm切换为不同的模型。目前支持这些模型

if model_name == 'openai': # openai turbo 3.5 模型
    from .LangChainGPT import LangChainGPT
    return (LangChainGPT(), tiktokenizer)
elif model_name == 'debug': # 用于debug,直接打印出prompt的模型(甚至你可以输入回去表现出正常的行为)
    from .PrintLLM import PrintLLM
    return (PrintLLM(), tiktokenizer)
elif model_name == 'spark': # 星火大模型
    from .SparkGPT import SparkGPT
    return (SparkGPT(), tiktokenizer)
elif model_name == 'GLMPro': # GLMPro的在线接口
    from .GLMPro import GLMPro
    return (GLMPro(), tiktokenizer)
elif model_name == "ChatGLM2GPT": # 通过ChatHaruhi-54K训练得到的模型
    from .ChatGLM2GPT import ChatGLM2GPT, GLM_tokenizer
    return (ChatGLM2GPT(), GLM_tokenizer)

现在ChatGLM2的本地模型还有一些bug。正在调试中,百川我们也训练了。有空回头推上去。

ChatHaruhi Gradio 2.0的部署

现在Gradio的部署非常简单,代码在 https://github.com/LC1332/Chat-Haruhi-Suzumiya/tree/main/ChatHaruhi2.0/gradioDemo

目前支持的角色

目前role_name支持的角色可以在role_name_to_file中看到。目前是支持这些

role_name_Haruhiu = {'汤师爷': 'tangshiye', 'tangshiye': 'tangshiye', 'Tangshiye': 'tangshiye', 
                     '慕容复': 'murongfu', 'murongfu': 'murongfu', 'Murongfu': 'murongfu', 
                     '李云龙': 'liyunlong', 'liyunlong': 'liyunlong', 'Liyunlong': 'liyunlong', 
                     'Luna': 'Luna', '王多鱼': 'wangduoyu', 'wangduoyu': 'wangduoyu', 
                     'Wangduoyu': 'wangduoyu', 'Ron': 'Ron', '鸠摩智': 'jiumozhi', 
                     'jiumozhi': 'jiumozhi', 'Jiumozhi': 'jiumozhi', 'Snape': 'Snape', 
                     '凉宫春日': 'haruhi', 'haruhi': 'haruhi', 'Haruhi': 'haruhi', 
                     'Malfoy': 'Malfoy', '虚竹': 'xuzhu', 'xuzhu': 'xuzhu', 
                     'Xuzhu': 'xuzhu', '萧峰': 'xiaofeng', 
                     'xiaofeng': 'xiaofeng', 'Xiaofeng': 'xiaofeng', '段誉': 'duanyu', 
                     'duanyu': 'duanyu', 'Duanyu': 'duanyu', 'Hermione': 'Hermione', 
                     'Dumbledore': 'Dumbledore', '王语嫣': 'wangyuyan', 'wangyuyan': 
                     'wangyuyan', 'Wangyuyan': 'wangyuyan', 'Harry': 'Harry', 
                     'McGonagall': 'McGonagall', '白展堂': 'baizhantang', 
                     'baizhantang': 'baizhantang', 'Baizhantang': 'baizhantang', 
                     '佟湘玉': 'tongxiangyu', 'tongxiangyu': 'tongxiangyu', 
                     'Tongxiangyu': 'tongxiangyu', '郭芙蓉': 'guofurong', 
                     'guofurong': 'guofurong', 'Guofurong': 'guofurong', '流浪者': 'wanderer', 
                     'wanderer': 'wanderer', 'Wanderer': 'wanderer', '钟离': 'zhongli', 
                     'zhongli': 'zhongli', 'Zhongli': 'zhongli', '胡桃': 'hutao', 'hutao': 'hutao', 
                     'Hutao': 'hutao', 'Sheldon': 'Sheldon', 'Raj': 'Raj', 
                     'Penny': 'Penny', '韦小宝': 'weixiaobao', 'weixiaobao': 'weixiaobao', 
                     'Weixiaobao': 'weixiaobao', '乔峰': 'qiaofeng', 'qiaofeng': 'qiaofeng', 
                     'Qiaofeng': 'qiaofeng', '神里绫华': 'ayaka', 'ayaka': 'ayaka', 
                     'Ayaka': 'ayaka', '雷电将军': 'raidenShogun', 'raidenShogun': 'raidenShogun', 
                     'RaidenShogun': 'raidenShogun', '于谦': 'yuqian', 'yuqian': 'yuqian', 
                     'Yuqian': 'yuqian', 'Professor McGonagall': 'McGonagall', 
                     'Professor Dumbledore': 'Dumbledore'}

这些角色可以通过语法糖(比如角色名haruhi)进行载入

chatbot = ChatHaruhi( role_name = 'haruhi', llm = 'openai')

response = chatbot.chat(role='阿虚', text = '我看新一年的棒球比赛要开始了!我们要去参加吗?')
print(response)

新角色我打算做到hugging face接口上去了,那样可玩性会强一些。

RoleLLM的95个英文角色

这些角色可以通过

chatbot = ChatHaruhi( role_from_hf = 'silk-road/ChatHaruhi-from-RoleLLM/Jack-Sparrow', \
                      llm = 'openai',
                      embedding = 'bge_en')

来载入,如果你希望英文问答,embedding可以选取bge_en, 如果你希望都是中文问答,可以使用默认的(不输入或者输入luotuo_openai)。(这个库我只做了这两个embedding,如果想要更多的embedding需要重新抽取了)

角色 电影 中文 字段
HAL 9000 2001-A-Space-Odyssey 《2001太空漫游》中的HAL 9000电脑 silk-road/ChatHaruhi-from-RoleLLM/HAL 9000
Colonel Nathan R. Jessep A-Few-Good-Men 《好汉两三个》中的内森·R·杰瑟普上校 silk-road/ChatHaruhi-from-RoleLLM/Colonel Nathan R. Jessep
Antonio Salieri Amadeus 《阿玛迪斯》中的安东尼奥·萨列里 silk-road/ChatHaruhi-from-RoleLLM/Antonio Salieri
Stifler American-Pie 《美国派》中的斯蒂夫勒 silk-road/ChatHaruhi-from-RoleLLM/Stifler
Paul Vitti Analyze-That 《心理分析那件事》中的保罗·维蒂 silk-road/ChatHaruhi-from-RoleLLM/Paul Vitti
Alvy Singer Annie-Hall 《安妮·霍尔》中的阿尔维·辛格 silk-road/ChatHaruhi-from-RoleLLM/Alvy Singer
Violet Weston August-Osage-County 《奥塞奇郡的八月》中的紫罗兰·韦斯顿 silk-road/ChatHaruhi-from-RoleLLM/Violet Weston
Willie Soke Bad-Santa 《坏圣诞老人》中的威利·索克 silk-road/ChatHaruhi-from-RoleLLM/Willie Soke
Gaston Beauty-and-the-Beast 《美女与野兽》中的加斯顿 silk-road/ChatHaruhi-from-RoleLLM/Gaston
The Dude Big-Lebowski,-The 《大勒布斯基》中的“大佬” silk-road/ChatHaruhi-from-RoleLLM/The Dude
Murphy MacManus Boondock-Saints,-The 《天使之城》中的墨菲·麦克马纳斯 silk-road/ChatHaruhi-from-RoleLLM/Murphy MacManus
Paul Conroy Buried 《活埋》中的保罗·康罗伊 silk-road/ChatHaruhi-from-RoleLLM/Paul Conroy
Truman Capote Capote 《卡波特》中的杜鲁门·卡波特 silk-road/ChatHaruhi-from-RoleLLM/Truman Capote
Mater Cars-2 《赛车总动员2》中的玛特 silk-road/ChatHaruhi-from-RoleLLM/Mater
Andrew Detmer Chronicle 《编年史》中的安德鲁·德特默 silk-road/ChatHaruhi-from-RoleLLM/Andrew Detmer
Coriolanus Coriolanus 《科里奥兰纳斯》中的主角 silk-road/ChatHaruhi-from-RoleLLM/Coriolanus
Benjamin Button Curious-Case-of-Benjamin-Button,-The 《本杰明·巴顿奇事》中的本杰明·巴顿 silk-road/ChatHaruhi-from-RoleLLM/Benjamin Button
John Keating Dead-Poets-Society 《死亡诗社》中的约翰·基廷 silk-road/ChatHaruhi-from-RoleLLM/John Keating
Wade Wilson Deadpool 《死侍》中的韦德·威尔逊 silk-road/ChatHaruhi-from-RoleLLM/Wade Wilson
Jim Morrison Doors,-The 《门》中的吉姆·莫里森 silk-road/ChatHaruhi-from-RoleLLM/Jim Morrison
Queen Elizabeth I Elizabeth-The-Golden-Age 《伊丽莎白:黄金时代》中的伊丽莎白一世女王 silk-road/ChatHaruhi-from-RoleLLM/Queen Elizabeth I
Jeff Spicoli Fast-Times-at-Ridgemont-High 《瑞奇蒙特高中时光》中的杰夫·斯皮科利 silk-road/ChatHaruhi-from-RoleLLM/Jeff Spicoli
Fred Flintstone Flintstones,-The 《石头家族》中的弗雷德·弗林斯通 silk-road/ChatHaruhi-from-RoleLLM/Fred Flintstone
Freddy Krueger Freddy-vs.-Jason 《弗雷迪对杰森》中的弗雷迪·克鲁格 silk-road/ChatHaruhi-from-RoleLLM/Freddy Krueger
Tyrion Lannister Game_of_Thrones 《权力的游戏》中的提利昂·兰尼斯特 silk-road/ChatHaruhi-from-RoleLLM/Tyrion Lannister
James Brown Get-on-Up 《起身舞蹈》中的詹姆斯·布朗 silk-road/ChatHaruhi-from-RoleLLM/James Brown
Walt Kowalski Gran-Torino 《老无所依》中的沃尔特·科瓦尔斯基 silk-road/ChatHaruhi-from-RoleLLM/Walt Kowalski
John Coffey Green-Mile,-The 《绿里奇迹》中的约翰·科菲 silk-road/ChatHaruhi-from-RoleLLM/John Coffey
Theodore Twombly Her 《她》中的西奥多·特温布利 silk-road/ChatHaruhi-from-RoleLLM/Theodore Twombly
Gregory House House-M.D. 《豪斯医生》中的格雷戈里·豪斯 silk-road/ChatHaruhi-from-RoleLLM/Gregory House
Sonny I,-Robot 《我,机器人》中的桑尼 silk-road/ChatHaruhi-from-RoleLLM/Sonny
Colonel Hans Landa Inglourious-Basterds 《无耻混蛋》中的汉斯·兰达上校 silk-road/ChatHaruhi-from-RoleLLM/Colonel Hans Landa
Judge Dredd Judge-Dredd 《德莱德法官》中的法官德莱德 silk-road/ChatHaruhi-from-RoleLLM/Judge Dredd
Juno MacGuff Juno 《朱诺》中的朱诺·麦克夫 silk-road/ChatHaruhi-from-RoleLLM/Juno MacGuff
Po Kung-Fu-Panda 《功夫熊猫》中的阿宝 silk-road/ChatHaruhi-from-RoleLLM/Po
Professor G.H. Dorr Ladykillers,-The 《夫人杀手》中的G.H.多尔教授 silk-road/ChatHaruhi-from-RoleLLM/Professor G.H. Dorr
Fletcher Reede Liar-Liar 《撒谎的男人》中的弗莱彻·里德 silk-road/ChatHaruhi-from-RoleLLM/Fletcher Reede
Abraham Lincoln Lincoln 《林肯》中的亚伯拉罕·林肯 silk-road/ChatHaruhi-from-RoleLLM/Abraham Lincoln
Frank T.J. Mackey Magnolia 《木兰花》中的弗兰克 T.J. 麦凯 silk-road/ChatHaruhi-from-RoleLLM/Frank T.J. Mackey
Malcolm X Malcolm-X 《马尔科姆X》中的马尔科姆X silk-road/ChatHaruhi-from-RoleLLM/Malcolm X
Leonard Shelby Memento 《记忆碎片》中的伦纳德·谢尔比 silk-road/ChatHaruhi-from-RoleLLM/Leonard Shelby
Harvey Milk Milk 《牛奶》中的哈维·牛奶 silk-road/ChatHaruhi-from-RoleLLM/Harvey Milk
Randle McMurphy One-Flew-Over-the-Cuckoo's-Nest 《飞越疯人院》中的兰德尔·麦克默菲 silk-road/ChatHaruhi-from-RoleLLM/Randle McMurphy
Jack Sparrow Pirates-of-the-Caribbean-Dead-Man's-Chest 《加勒比海盗》中的杰克·斯派洛船长 silk-road/ChatHaruhi-from-RoleLLM/Jack Sparrow
John Dillinger Public-Enemies 《公敌》中的约翰·迪林格 silk-road/ChatHaruhi-from-RoleLLM/John Dillinger
Lestat de Lioncourt Queen-of-the-Damned 《诅咒女王》中的莱斯塔特·德·莱昂科特 silk-road/ChatHaruhi-from-RoleLLM/Lestat de Lioncourt
Tyler Hawkins Remember-Me 《记得我》中的泰勒·霍金斯 silk-road/ChatHaruhi-from-RoleLLM/Tyler Hawkins
Caesar Rise-of-the-Planet-of-the-Apes 《猩球崛起》中的凯撒 silk-road/ChatHaruhi-from-RoleLLM/Caesar
Jack Room 《房间》中的杰克 silk-road/ChatHaruhi-from-RoleLLM/Jack
James Carter Rush-Hour-2 《尖峰时刻2》中的詹姆斯·卡特 silk-road/ChatHaruhi-from-RoleLLM/James Carter
Jigsaw Saw 《电锯惊魂》中的拼图杀手 silk-road/ChatHaruhi-from-RoleLLM/Jigsaw
John Doe Se7en 《七宗罪》中的约翰·多 silk-road/ChatHaruhi-from-RoleLLM/John Doe
Jackie Moon Semi-Pro 《半职业球员》中的杰基·月亮 silk-road/ChatHaruhi-from-RoleLLM/Jackie Moon
Sherlock Holmes Sherlock-Holmes 《夏洛克·福尔摩斯》中的夏洛克·福尔摩斯 silk-road/ChatHaruhi-from-RoleLLM/Sherlock Holmes
Shrek Shrek 《史莱克》中的史莱克 silk-road/ChatHaruhi-from-RoleLLM/Shrek
Pat Solitano Silver-Linings-Playbook 《乌云背后的幸福线》中的帕特·索利塔诺 silk-road/ChatHaruhi-from-RoleLLM/Pat Solitano
Karl Childers Sling-Blade 《刀锯》中的卡尔·柴尔德斯 silk-road/ChatHaruhi-from-RoleLLM/Karl Childers
Peter Parker Spider-Man 《蜘蛛侠》中的彼得·帕克 silk-road/ChatHaruhi-from-RoleLLM/Peter Parker
Bruno Antony Strangers-on-a-Train 《列车上的陌生人》中的布鲁诺·安东尼 silk-road/ChatHaruhi-from-RoleLLM/Bruno Antony
Seth Superbad 《超级糟糕》中的塞思 silk-road/ChatHaruhi-from-RoleLLM/Seth
Caden Cotard Synecdoche,-New-York 《纽约奇缘》中的卡登·科塔德 silk-road/ChatHaruhi-from-RoleLLM/Caden Cotard
Travis Bickle Taxi-Driver 《出租车司机》中的特拉维斯·比克尔 silk-road/ChatHaruhi-from-RoleLLM/Travis Bickle
Stanley Ipkiss Mask,-The 《面具》中的斯坦利·伊普基斯 silk-road/ChatHaruhi-from-RoleLLM/Stanley Ipkiss
Lyn Cassady Men-Who-Stare-at-Goats,-The 《盯羊的男人》中的林恩·卡萨迪 silk-road/ChatHaruhi-from-RoleLLM/Lyn Cassady
Michael Scott The_Office 《办公室》中的迈克尔·斯科特 silk-road/ChatHaruhi-from-RoleLLM/Michael Scott
Robert Angier Prestige,-The 《名望》中的罗伯特·安吉尔 silk-road/ChatHaruhi-from-RoleLLM/Robert Angier
Rachel Lang The-Rage-Carrie-2 《瑞秋的愤怒:凯丽2》中的瑞秋·朗 silk-road/ChatHaruhi-from-RoleLLM/Rachel Lang
Dr. Frank-N-Furter Rocky-Horror-Picture-Show,-The 《洛奇恐怖秀》中的弗兰克·N·福特医生 silk-road/ChatHaruhi-from-RoleLLM/Dr. Frank-N-Furter
Jack Torrance Shining,-The 《闪灵》中的杰克·托兰斯 silk-road/ChatHaruhi-from-RoleLLM/Jack Torrance
Tom Ripley Talented-Mr.-Ripley,-The 《天才雷普利》中的汤姆·雷普利 silk-road/ChatHaruhi-from-RoleLLM/Tom Ripley
D_Artagnan Three-Musketeers,-The 《三剑客》中的达达尼昂 silk-road/ChatHaruhi-from-RoleLLM/D_Artagnan
Stephen Hawking Theory-of-Everything,-The 《万物理论》中的斯蒂芬·霍金 silk-road/ChatHaruhi-from-RoleLLM/Stephen Hawking
Thor Thor-Ragnarok 《雷神:诸神黄昏》中的雷神索尔 silk-road/ChatHaruhi-from-RoleLLM/Thor
James Bond Tomorrow-Never-Dies 《明日帝国》中的詹姆斯·邦德 silk-road/ChatHaruhi-from-RoleLLM/James Bond
Mark Renton Trainspotting 《迷幻列车》中的马克·伦顿 silk-road/ChatHaruhi-from-RoleLLM/Mark Renton
Tugg Speedman Tropic-Thunder 《热带惊雷》中的塔格·斯皮德曼 silk-road/ChatHaruhi-from-RoleLLM/Tugg Speedman
David Aames Vanilla-Sky 《香草天空》中的大卫·艾姆斯 silk-road/ChatHaruhi-from-RoleLLM/David Aames
Rorschach Watchmen 《守望者》中的罗夏克 silk-road/ChatHaruhi-from-RoleLLM/Rorschach
Jordan Belfort Wolf-of-Wall-Street,-The 《华尔街之狼》中的乔丹·贝尔福特 silk-road/ChatHaruhi-from-RoleLLM/Jordan Belfort
Logan X-Men-Origins-Wolverine 《X战警:金刚狼》中的洛根 silk-road/ChatHaruhi-from-RoleLLM/Logan
Judy Hoops Zootopia 《疯狂动物城》中的朱迪·胡普斯 silk-road/ChatHaruhi-from-RoleLLM/Judy Hoops
Doctor Who Doctor_Who 《神秘博士》中的博士 silk-road/ChatHaruhi-from-RoleLLM/Doctor Who
Blair Waldorf Gossip_Girl 《绯闻女孩》中的布莱尔·沃尔多夫 silk-road/ChatHaruhi-from-RoleLLM/Blair Waldorf
Raylan Givens Justified 《正当防卫》中的雷兰·吉文斯 silk-road/ChatHaruhi-from-RoleLLM/Raylan Givens
Mary Sibley Salem 《塞勒姆》中的玛丽·西布利 silk-road/ChatHaruhi-from-RoleLLM/Mary Sibley
Lucifer Morningstar Lucifer 《路西法》中的路西法·晨星 silk-road/ChatHaruhi-from-RoleLLM/Lucifer Morningstar
Sheldon Cooper The_Big_Bang_Theory 《生活大爆炸》中的谢尔顿·库珀 silk-road/ChatHaruhi-from-RoleLLM/Sheldon Cooper
Twilight Sparkle My_Little_Pony__Friendship_is_Magic 《我的小马驹:友谊之魔》中的暮光星辉 silk-road/ChatHaruhi-from-RoleLLM/Twilight Sparkle
Oliver Queen Arrow 《绿箭侠》中的奥利弗·皇后 silk-road/ChatHaruhi-from-RoleLLM/Oliver Queen
Leroy Jethro Gibbs NCIS 《海军罪案调查处》中的利洛伊·杰斯罗·吉布斯 silk-road/ChatHaruhi-from-RoleLLM/Leroy Jethro Gibbs
Angel Angel 《天使》中的天使 silk-road/ChatHaruhi-from-RoleLLM/Angel
Klaus Mikaelson The_Originals 《始祖家族》中的克劳斯·米卡尔森 silk-road/ChatHaruhi-from-RoleLLM/Klaus Mikaelson
Queen Catherine Reign 《王权》中的凯瑟琳女王 silk-road/ChatHaruhi-from-RoleLLM/Queen Catherine
Dr. Hannibal Lecter Hannibal 《汉尼拔》中的汉尼拔·莱克特医生 silk-road/ChatHaruhi-from-RoleLLM/Dr. Hannibal Lecter
Coach Eric Taylor Friday_Night_Lights 《星期五之光》中的教练埃里克·泰勒 silk-road/ChatHaruhi-from-RoleLLM/Coach Eric Taylor

改变ChatBot的记忆

现在暂时没有暴露这个接口,可以用强行赋值的方法,在chat之前改变chatbot的记忆

from chatharuhi import ChatHaruhi

chatbot = ChatHaruhi( role_name = 'haruhi',\
                      llm = 'openai' )

chatbot.dialogue_history = [('鲁鲁:「Haruhi,我是新同学鲁鲁」','春日:「你好呀鲁鲁」')]

response = chatbot.chat(role='阿虚', text = '这个新同学是什么来头')
print(response)

不然chatbot会自己把记忆存储在chatbot.dialogue_history = []中。

dialogue_history是一个list of tuple,分别是格式化的user的query和bot的response,也可以是None

None的话,这一行就不会放到记忆里,所以可以去构造单独bot的或者单独user的记忆。

Embedding模型

目前可以通过embedding字段来指定所使用的embedding模型

if embedding == 'luotuo_openai':
    embed_name = 'luotuo_openai'
elif embedding == 'bge_en':
    embed_name = 'bge_en_s15'

目前支持这两个,luotuo_openai会在中文下使用luotuo模型,英文下使用openai模型

bge_en会使用bge_small_en_v1.5的模型

后处理

About

Just for debug

License:Apache License 2.0


Languages

Language:Jupyter Notebook 98.8%Language:Python 1.2%