Shellmiao bf6f7825e6 Imagetcha modolar version | há 1 ano atrás | |
---|---|---|
.. | ||
config | há 1 ano atrás | |
Evaluate_langchain.py | há 1 ano atrás | |
README.md | há 1 ano atrás | |
event_langchain.py | há 1 ano atrás | |
format_langchain.py | há 1 ano atrás | |
global_langchain.py | há 1 ano atrás | |
input_main.py | há 1 ano atrás | |
main_langchain.py | há 1 ano atrás | |
my_database.db | há 1 ano atrás | |
value_langchain.py | há 1 ano atrás |
Python=3.9
pip install -r requirement.txt
python .\main_langchain.py
在config文件中有各模块的config.json配置文件
xxx_declare代表该模块输出格式 system_template代表发送给ai的系统消息 human_template代表发送给ai的用户消息
{
"story": "三国,搞笑",
"style": "始于黄巾起义的混乱时代,我叫摸鱼,是黄巾军的一员,也是一名墨家子弟,年龄16岁",
"intro_declare": {
"故事简介": "字符串格式,这是展示给玩家的故事简介与游戏目标",
"角色设定": "数组格式,游戏中的npc角色设定,包括角色的名字、特征;不包含玩家所操控的角色",
"数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等",
"游戏通关所需条件": "字符串格式,游戏结束的条件,例如“成为了诸侯王”"
},
"system_template": "以如下格式输出可以被json.load读取的JSON字符串:{output_type}",
"human_template": "我希望生成一个文字冒险游戏,以下是对游戏故事的要求:故事风格:{style},故事参考:{story}"
}
{
"value_declare": "数组格式,数组中的元素为int,分别对应数值系统中的数值",
"system_template": "以如下格式输出JSON:{output_type}",
"human_template": "我正在生成一个文字游戏,我将输入游戏当前信息,需要你根据游戏当前信息生成玩家当前数值,如果当前玩家数值为空,则进行初始化;如果不为空,则根据已经发生的最后一个事件对数值进行修改,游戏信息:{intro};严禁输出除了数值数组之外的其他内容,输出示例:[100,50,1,1],你的输出为:"
}
{
"event_declare": {
"事件": "字符串格式,这是展示给玩家的,讲述了玩家当前遇到的事件,例如“0岁,你出生于颍川一个富贵之家...”。出现新的人物时需要在事件中对新的人物进行描写,并在当前角色设定中添加新的角色",
"是否需要玩家选择下一步操作": "Boolean格式",
"玩家可以做出的选择": "数组格式,玩家可以做出的有限个选择,如果不需要玩家做选择则返回空数组",
"当前场景角色": "数组格式,游戏中的npc角色设定,包括角色的名字、特征",
"当前场景数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等;允许由于故事的发展而添加新的数值",
"游戏是否结束": "Boolean格式,游戏是否结束"
},
"system_template": "我正在生成一个文字冒险游戏,我将输入游戏当前信息与当前游戏的风格、简介,需要你根据游戏当前信息生成玩家接下来遇到的下一个事件,以如下格式输出JSON:{output_type},严格按照格式输出,不要输出除了json字符串之外的其他内容",
"human_template": "游戏风格:{style},游戏参考:{story},当前信息:{intro}"
}
{
"system_template": "将输入字符串转为可以使用json.load读取的字符串,格式如下{output_type},key值和value的类型以上述格式为准,不要输出除了json字符串之外的其他内容",
"human_template": "{text}"
}
{
"evaluate_declare": {
"事件": "字符串格式,这是展示给玩家的,讲述了玩家当前遇到的事件,例如“0岁,你出生于颍川一个富贵之家...”。出现新的人物时需要在事件中对新的人物进行描写,并在当前角色设定中添加新的角色",
"是否需要玩家选择下一步操作": "Boolean格式",
"玩家可以做出的选择": "数组格式,玩家可以做出的有限个选择,如果不需要玩家做选择则返回空数组",
"当前场景角色": "数组格式,游戏中的npc角色设定,包括角色的名字、特征",
"当前场景数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等;允许由于故事的发展而添加新的数值",
"游戏是否结束": "Boolean格式,游戏是否结束"
},
"system_template": "我在生成一个文字冒险游戏,我在使用另一个gpt生成游戏的事件,需要你根据游戏当前信息对其生成内容进行检查与修改,保证生成内容没有逻辑错误,以如下格式输出JSON:{output_type},严禁输出其他内容,只输出json字符串",
"human_template": "另一个gpt生成的内容:{event_for_now},严禁输出其他内容,只输出json字符串"
}
python .\main_langchain.py
[选择]是否使用数据库中的记录:①新游戏 ②读取存档------1
[Model]Global_model has been created!
[Model]Database initialized!
[初始化]--------------------------初始化中--------------------------
[初始化]--------------------------GPT得到--------------------------
{
"故事简介": "在混乱的黄巾起义时代,你扮演一名名叫摸鱼的黄巾军士兵,同时也是一名墨家子弟。你的目标是在这个乱世中生存 下去,并成为一名伟大的将领。这个故事将以搞笑的方式展现三国时期的历史事件和人物。",
"角色设定": [
{
"名字": "摸鱼",
"特征": "黄巾军士兵,墨家子弟,年龄16岁"
},
{
"名字": "张角",
"特征": "黄巾军领袖,号称“太平道天公将军”"
},
{
"名字": "刘备",
"特征": "蜀汉开国皇帝,号称“汉中王”"
},
{
"名字": "关羽",
"特征": "蜀汉五虎将之一,号称“关云长”"
},
{
"名字": "张飞",
"特征": "蜀汉五虎将之一,号称“万夫不当之勇”"
},
{
"名字": "诸葛亮",
"特征": "蜀汉丞相,号称“卧龙先生”"
}
],
"数值系统": [
{
"名称": "武力值",
"范围": "0-100",
"含义": "角色的战斗能力"
},
{
"名称": "智力值",
"范围": "0-100",
"含义": "角色的智慧和谋略"
},
{
"名称": "忠诚值",
"范围": "0-100",
"含义": "角色对主人的忠诚度"
},
{
"名称": "声望值",
"范围": "0-100",
"含义": "角色在社会上的声望和地位"
}
],
"游戏通关所需条件": "成为了诸侯王"
}
[初始化]--------------------------json.loads得到--------------------------
{'故事简介': '在混乱的黄巾起义时代,你扮演一名名叫摸鱼的黄巾军士兵,同时也是一名墨家子弟。你的目标是在这个乱世中生存下去,并成为一名伟大的将领。这个故事将以搞笑的方式展现三国时期的历史事件和人物。', '角色设定': [{'名字': '摸鱼', '特征': '黄巾军士兵,墨家子弟,年龄16岁'}, {'名字': '张角', '特征': '黄巾军领袖,号称“太平道天公将军”'}, {'名字': '刘备', '特征': '蜀汉开国皇帝,号称“汉中王”'}, {'名字': '关羽', '特征': '蜀汉五虎将之一,号称“关云长”'}, {'名字': '张飞', '特征': '蜀汉五虎将之一,号称“万夫不当之勇”'}, {'名字': '诸葛亮', '特征': '蜀汉丞相,号称“卧龙先生”'}], '数值系统': [{'名称': '武力值', '范围': '0-100', '含义': '角色的战斗能力'}, {'名称': '智力值', '范围': '0-100', '含义': '角色的智慧和谋略'}, {'名称': '忠诚值', '范围': '0-100', '含义': '角色对主人的忠诚度'}, {'名称': '声望值', '范围': '0-100', '含义': '角色在社会上的声望和地位'}], '游戏通关所需条件': '成为了诸侯王'}
[数值]--------------------------修改数值中--------------------------
[数值]--------------------------GPT得到--------------------------
[50, 50, 50, 50]
[数值]--------------------------json.loads得到--------------------------
[50, 50, 50, 50]
[选择]是否在每次生成事件后进行优化诊断:①是 ②否------2
--------------------------生成事件中--------------------------
{'事件': '你正在黄巾军的营地里休息,突然听到外面传来了喊杀声。你走出帐篷,发现张角正在与一名蜀汉将领激战。你决定:', '是否需要玩家选择下一步操作': True, '玩家可以做出的选择': ['加入战斗,帮助张角', '趁机逃跑,寻找机会报信给上级', '观望,等 待战斗结束'], '当前场景角色': [{'名字': '摸鱼', '特征': '黄巾军士兵,墨家子弟,年龄16岁'}, {'名字': '张角', '特征': '黄 巾军领袖,号称“太平道天公将军”'}, {'名字': '刘备', '特征': '蜀汉开国皇帝,号称“汉中王”'}, {'名字': '关羽', '特征': '蜀汉五虎将之一,号称“关云长”'}, {'名字': '张飞', '特征': '蜀汉五虎将之一,号称“万夫不当之勇”'}, {'名字': '诸葛亮', '特征': '蜀汉丞相,号称“卧龙先生”'}], '当前场景数值系统': [{'名称': '武力值', '范围': '0-100', '含义': '角色的战斗能力'}, {'名称': '智力值', '范围': '0-100', '含义': '角色的智慧和谋略'}, {'名称': '忠诚值', '范围': '0-100', '含义': '角色对主人的忠诚 度'}, {'名称': '声望值', '范围': '0-100', '含义': '角色在社会上的声望和地位'}], '游戏是否结束': False}
格式错误,修复中
[修复]--------------------------修复格式中--------------------------
[修复]--------------------------GPT得到--------------------------
{"事件": "你正在黄巾军的营地里休息,突然听到外面传来了喊杀声。你走出帐篷,发现张角正在与一名蜀汉将领激战。你决定:", "是否需要玩家选择下一步操作": true, "玩家可以做出的选择": ["加入战斗,帮助张角", "趁机逃跑,寻找机会报信给上级", "观望,等 待战斗结束"], "当前场景角色": [{"名字": "摸鱼", "特征": "黄巾军士兵,墨家子弟,年龄16岁"}, {"名字": "张角", "特征": "黄 巾军领袖,号称“太平道天公将军”"}, {"名字": "刘备", "特征": "蜀汉开国皇帝,号称“汉中王”"}, {"名字": "关羽", "特征": "蜀汉五虎将之一,号称“关云长”"}, {"名字": "张飞", "特征": "蜀汉五虎将之一,号称“万夫不当之勇”"}, {"名字": "诸葛亮", "特征": "蜀汉丞相,号称“卧龙先生”"}], "当前场景数值系统": [{"名称": "武力值", "范围": "0-100", "含义": "角色的战斗能力"}, {"名称": "智力值", "范围": "0-100", "含义": "角色的智慧和谋略"}, {"名称": "忠诚值", "范围": "0-100", "含义": "角色对主人的忠诚 度"}, {"名称": "声望值", "范围": "0-100", "含义": "角色在社会上的声望和地位"}], "游戏是否结束": false}
[修复]--------------------------json.loads得到--------------------------
{'事件': '你正在黄巾军的营地里休息,突然听到外面传来了喊杀声。你走出帐篷,发现张角正在与一名蜀汉将领激战。你决定:', '是否需要玩家选择下一步操作': True, '玩家可以做出的选择': ['加入战斗,帮助张角', '趁机逃跑,寻找机会报信给上级', '观望,等 待战斗结束'], '当前场景角色': [{'名字': '摸鱼', '特征': '黄巾军士兵,墨家子弟,年龄16岁'}, {'名字': '张角', '特征': '黄 巾军领袖,号称“太平道天公将军”'}, {'名字': '刘备', '特征': '蜀汉开国皇帝,号称“汉中王”'}, {'名字': '关羽', '特征': '蜀汉五虎将之一,号称“关云长”'}, {'名字': '张飞', '特征': '蜀汉五虎将之一,号称“万夫不当之勇”'}, {'名字': '诸葛亮', '特征': '蜀汉丞相,号称“卧龙先生”'}], '当前场景数值系统': [{'名称': '武力值', '范围': '0-100', '含义': '角色的战斗能力'}, {'名称': '智力值', '范围': '0-100', '含义': '角色的智慧和谋略'}, {'名称': '忠诚值', '范围': '0-100', '含义': '角色对主人的忠诚 度'}, {'名称': '声望值', '范围': '0-100', '含义': '角色在社会上的声望和地位'}], '游戏是否结束': False}
{'事件': '你正在黄巾军的营地里休息,突然听到外面传来了喊杀声。你走出帐篷,发现张角正在与一名蜀汉将领激战。你决定:', '是否需要玩家选择下一步操作': True, '玩家可以做出的选择': ['加入战斗,帮助张角', '趁机逃跑,寻找机会报信给上级', '观望,等 待战斗结束'], '当前场景角色': [{'名字': '摸鱼', '特征': '黄巾军士兵,墨家子弟,年龄16岁'}, {'名字': '张角', '特征': '黄 巾军领袖,号称“太平道天公将军”'}, {'名字': '刘备', '特征': '蜀汉开国皇帝,号称“汉中王”'}, {'名字': '关羽', '特征': '蜀汉五虎将之一,号称“关云长”'}, {'名字': '张飞', '特征': '蜀汉五虎将之一,号称“万夫不当之勇”'}, {'名字': '诸葛亮', '特征': '蜀汉丞相,号称“卧龙先生”'}], '当前场景数值系统': [{'名称': '武力值', '范围': '0-100', '含义': '角色的战斗能力'}, {'名称': '智力值', '范围': '0-100', '含义': '角色的智慧和谋略'}, {'名称': '忠诚值', '范围': '0-100', '含义': '角色对主人的忠诚 度'}, {'名称': '声望值', '范围': '0-100', '含义': '角色在社会上的声望和地位'}], '游戏是否结束': False}
[数值]--------------------------修改数值中--------------------------
[数值]--------------------------GPT得到--------------------------
[50,50,50,50]
[数值]--------------------------json.loads得到--------------------------
[50, 50, 50, 50]
[玩家选择]当前事件:你正在黄巾军的营地里休息,突然听到外面传来了喊杀声。你走出帐篷,发现张角正在与一名蜀汉将领激战。你决定:
[玩家选择]可供选择的选项:1. 加入战斗,帮助张角 2. 趁机逃跑,寻找机会报信给上级 3. 观望,等待战斗结束
[玩家选择]请选择: