插件的配置文件存储在插件目录下的chat-with-npc
文件夹中,文件名为config.json
。文件的内容如下:
{
"enabled": true,
"range": 10.0,
"language": "Chinese",
"apiKey": "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"model": "gpt-3.5-turbo",
"apiURL": "api.openai.com",
"isBubble": true,
"isChatBar": true,
"wordLimit": 30
}
您可以设置以下参数:
range
:玩家可以看到和与NPC交谈的距离。language
:NPC用来与玩家交谈的语言。model
:OpenAI的模型。apiURL
:您可以使用代理访问OpenAI API。(适合在中国大陆地区使用本mod的服务器)isBubble
:是否在NPC上方显示气泡。isChatBar
:是否在玩家的聊天栏中显示NPC的聊天。wordLimit
:NPC每次回复的最大字数。一旦您创建了一个新的NPC,您将在OpenAI平台中看到助手如下:
您可以访问OpenAI平台来管理、使用和测试您的NPC,OpenAI平台助手。
重要:在你配置文件中的设定将会覆盖OpenAI平台上的设定,所以请记得测试完成后也在配置文件中修改。
本文档是关于插件一些基础设定的说明,这些基础设定可以很好的帮助用户使用本插件,或者在许可证范围内进行二次开发。该插件有以下部分:
以及一些基础设定:
Long
类型记录。Conversation管理器是插件的核心部分,它负责管理所有的对话。Conversation的主要设定有:
ConversationManager
储存所有的ConversationHandler
,即一个NPC的当前会话,并且提供激活、提取、删除会话的方法。ConversationHandler
包含一个NPCEntity
成员,最近一次对话的时间updateTime
,当前NPC是否正在讲话isTalking
。isTalking
会被置为true
直到模型返回结果,并且updateTime
会被更新。ConversationHandler
仅在玩家与NPC交谈时被激活,当玩家与NPC交谈结束后5分钟被卸载。ConversationHandler
的生命周期由插件生命周期管理器管理。Group管理器负责管理所有的Group,Group的主要设定有:
GroupManager
储存所有的Group
,并提供激活、提取、删除Group的方法。Group
包含一个最后加载时间lastLoadTime
,以及一些设定parentGroup
, instructions
, event
。Group
仅在ConversationHandle
向模型请求信息前,生成Prompt时被激活,或者当OP使用指令查看和修改一个Group时被激活。Group
的生命周期由插件生命周期管理器管理。其他设定:
Group
的parentGroup
是一个父Group,一般情况下,所有Group
最终将会指向Global
。NPCEntity管理器负责管理所有的NPCEntity,NPCEntity的主要设定有:
NPCEntityManager
储存所有的NPCEntity
,并提供激活、提取、删除NPCEntity的方法。NPCEntity
包含一个TextBubbleEntity
,以及一些设定Career
, instructions
, Group
。NPCEntity
仅在玩家与NPC交谈时、或者OP使用指令查看和修改一个NPC时被激活。NPCEntity
的生命周期由插件生命周期管理器管理。其他设定:
NPCEntity
的TextBubbleEntity
是一个文本气泡,由NPCEntity
管理,它会在NPC被激活时被加载,被卸载时卸载。TextBubbleEntity
会显示在NPC的上方0.55格处,当NPC回复玩家时,气泡会正常显示10秒钟,然后变成透明,但不会被卸载(待修改)。生命周期管理器负责管理所有ConversationHandler
,NPCEntity
和Group
的生命周期,它的主要设定有:
ConversationHandler
,NPCEntity
和Group
,并且将会卸载那些超过5分钟没有被使用的实例。ConversationHandler
,NPCEntity
和Group
,并关闭生命周期管理器线程。/npc saveAll
可以异步保存并卸载所有的ConversationHandler
,NPCEntity
和Group
,并且同步插件设定和函数文件夹。