|
@@ -1,8 +1,95 @@
|
|
|
# ImaGetCha
|
|
|
## 环境配置
|
|
|
Python=3.9
|
|
|
+### 官网安装python
|
|
|
+[官网下载链接](https://www.python.org/downloads/release/python-3913/)
|
|
|
+
|
|
|
+### 使用Conda安装python环境
|
|
|
+- 在[此处](https://www.anaconda.com/download)下载Anaconda并安装
|
|
|
+- 可以根据[这篇博客](https://zhuanlan.zhihu.com/p/147602389)配置Anaconda的系统环境变量
|
|
|
+- 此时在命令行中使用conda命令,可能会报错powershell/cmd/其他终端未初始化,需要根据提示进行对应初始化
|
|
|
+- 使用conda create -n imagetcha python=3.9创建新的python环境
|
|
|
+- 使用conda activate imagetcha激活python环境,此时输入python与pip均指向新的环境
|
|
|
+
|
|
|
+### 安装python依赖库
|
|
|
```
|
|
|
pip install -r requirement.txt
|
|
|
```
|
|
|
|
|
|
-待提交
|
|
|
+## 使用
|
|
|
+
|
|
|
+```
|
|
|
+python .\main_langchain.py
|
|
|
+```
|
|
|
+
|
|
|
+### 如何修改用户输入
|
|
|
+
|
|
|
+在config文件中有各模块的config.json配置文件
|
|
|
+
|
|
|
+xxx_declare代表该模块输出格式
|
|
|
+system_template代表发送给ai的系统消息
|
|
|
+human_template代表发送给ai的用户消息
|
|
|
+
|
|
|
+#### input_config.json (主要需要修改的)
|
|
|
+```
|
|
|
+{
|
|
|
+ "story": "三国,搞笑",
|
|
|
+ "style": "始于黄巾起义的混乱时代,我叫摸鱼,是黄巾军的一员,也是一名墨家子弟,年龄16岁",
|
|
|
+ "intro_declare": {
|
|
|
+ "故事简介": "字符串格式,这是展示给玩家的故事简介与游戏目标",
|
|
|
+ "角色设定": "数组格式,游戏中的npc角色设定,包括角色的名字、特征;不包含玩家所操控的角色",
|
|
|
+ "数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等",
|
|
|
+ "游戏通关所需条件": "字符串格式,游戏结束的条件,例如“成为了诸侯王”"
|
|
|
+ },
|
|
|
+ "system_template": "以如下格式输出可以被json.load读取的JSON字符串:{output_type}",
|
|
|
+ "human_template": "我希望生成一个文字冒险游戏,以下是对游戏故事的要求:故事风格:{style},故事参考:{story}"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### value_config.json
|
|
|
+```
|
|
|
+{
|
|
|
+ "value_declare": "数组格式,数组中的元素为int,分别对应数值系统中的数值",
|
|
|
+ "system_template": "以如下格式输出JSON:{output_type}",
|
|
|
+ "human_template": "我正在生成一个文字游戏,我将输入游戏当前信息,需要你根据游戏当前信息生成玩家当前数值,如果当前玩家数值为空,则进行初始化;如果不为空,则根据已经发生的最后一个事件对数值进行修改,游戏信息:{intro};严禁输出除了数值数组之外的其他内容,输出示例:[100,50,1,1],你的输出为:"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### event_config.json
|
|
|
+```
|
|
|
+{
|
|
|
+ "event_declare": {
|
|
|
+ "事件": "字符串格式,这是展示给玩家的,讲述了玩家当前遇到的事件,例如“0岁,你出生于颍川一个富贵之家...”。出现新的人物时需要在事件中对新的人物进行描写,并在当前角色设定中添加新的角色",
|
|
|
+ "是否需要玩家选择下一步操作": "Boolean格式",
|
|
|
+ "玩家可以做出的选择": "数组格式,玩家可以做出的有限个选择,如果不需要玩家做选择则返回空数组",
|
|
|
+ "当前场景角色": "数组格式,游戏中的npc角色设定,包括角色的名字、特征",
|
|
|
+ "当前场景数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等;允许由于故事的发展而添加新的数值",
|
|
|
+ "游戏是否结束": "Boolean格式,游戏是否结束"
|
|
|
+ },
|
|
|
+ "system_template": "我正在生成一个文字冒险游戏,我将输入游戏当前信息与当前游戏的风格、简介,需要你根据游戏当前信息生成玩家接下来遇到的下一个事件,以如下格式输出JSON:{output_type},严格按照格式输出,不要输出除了json字符串之外的其他内容",
|
|
|
+ "human_template": "游戏风格:{style},游戏参考:{story},当前信息:{intro}"
|
|
|
+}
|
|
|
+```
|
|
|
+#### format_config.json
|
|
|
+```
|
|
|
+{
|
|
|
+ "system_template": "将输入字符串转为可以使用json.load读取的字符串,格式如下{output_type},key值和value的类型以上述格式为准,不要输出除了json字符串之外的其他内容",
|
|
|
+ "human_template": "{text}"
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+#### evaluate_config.json
|
|
|
+```
|
|
|
+{
|
|
|
+ "evaluate_declare": {
|
|
|
+ "事件": "字符串格式,这是展示给玩家的,讲述了玩家当前遇到的事件,例如“0岁,你出生于颍川一个富贵之家...”。出现新的人物时需要在事件中对新的人物进行描写,并在当前角色设定中添加新的角色",
|
|
|
+ "是否需要玩家选择下一步操作": "Boolean格式",
|
|
|
+ "玩家可以做出的选择": "数组格式,玩家可以做出的有限个选择,如果不需要玩家做选择则返回空数组",
|
|
|
+ "当前场景角色": "数组格式,游戏中的npc角色设定,包括角色的名字、特征",
|
|
|
+ "当前场景数值系统": "数组格式,数值系统包括游戏中的数值名称、数值范围、数值含义,例如装备系统、官职系统等;允许由于故事的发展而添加新的数值",
|
|
|
+ "游戏是否结束": "Boolean格式,游戏是否结束"
|
|
|
+ },
|
|
|
+ "system_template": "我在生成一个文字冒险游戏,我在使用另一个gpt生成游戏的事件,需要你根据游戏当前信息对其生成内容进行检查与修改,保证生成内容没有逻辑错误,以如下格式输出JSON:{output_type},严禁输出其他内容,只输出json字符串",
|
|
|
+ "human_template": "另一个gpt生成的内容:{event_for_now},严禁输出其他内容,只输出json字符串"
|
|
|
+}
|
|
|
+```
|