refactor: 适配配置管理器读取方式

This commit is contained in:
RockChinQ
2023-11-26 23:58:06 +08:00
parent 549a7eff7f
commit 3e17bbb90f
20 changed files with 147 additions and 112 deletions
+4 -3
View File
@@ -3,6 +3,8 @@ import logging
import openai
from ...utils import context
class RequestBase:
@@ -14,7 +16,6 @@ class RequestBase:
raise NotImplementedError
def _next_key(self):
import pkg.utils.context as context
switched, name = context.get_openai_manager().key_mgr.auto_switch()
logging.debug("切换api-key: switched={}, name={}".format(switched, name))
self.client.api_key = context.get_openai_manager().key_mgr.get_using_key()
@@ -22,12 +23,12 @@ class RequestBase:
def _req(self, **kwargs):
"""处理代理问题"""
logging.debug("请求接口参数: %s", str(kwargs))
import config
config = context.get_config_manager().data
ret = self.req_func(**kwargs)
logging.debug("接口请求返回:%s", str(ret))
if config.switch_strategy == 'active':
if config['switch_strategy'] == 'active':
self._next_key()
return ret
+13 -10
View File
@@ -1,9 +1,10 @@
# 多情景预设值管理
import json
import logging
import config
import os
from ..utils import context
# __current__ = "default"
# """当前默认使用的情景预设的名称
@@ -62,22 +63,24 @@ class NormalScenarioMode(ScenarioMode):
"""普通情景预设模式"""
def __init__(self):
config = context.get_config_manager().data
# 加载config中的default_prompt值
if type(config.default_prompt) == str:
if type(config['default_prompt']) == str:
self.using_prompt_name = "default"
self.prompts = {"default": [
{
"role": "system",
"content": config.default_prompt
"content": config['default_prompt']
}
]}
elif type(config.default_prompt) == dict:
for key in config.default_prompt:
elif type(config['default_prompt']) == dict:
for key in config['default_prompt']:
self.prompts[key] = [
{
"role": "system",
"content": config.default_prompt[key]
"content": config['default_prompt'][key]
}
]
@@ -123,9 +126,9 @@ def register_all():
def mode_inst() -> ScenarioMode:
"""获取指定名称的情景预设模式对象"""
import config
config = context.get_config_manager().data
if config.preset_mode == "default":
config.preset_mode = "normal"
if config['preset_mode'] == "default":
config['preset_mode'] = "normal"
return scenario_mode_mapping[config.preset_mode]
return scenario_mode_mapping[config['preset_mode']]
+5 -5
View File
@@ -43,13 +43,13 @@ class OpenAIInteract:
"""请求补全接口回复=
"""
# 选择接口请求类
config = context.get_config()
config = context.get_config_manager().data
request: api_model.RequestBase
model: str = config.completion_api_params['model']
model: str = config['completion_api_params']['model']
cp_parmas = config.completion_api_params.copy()
cp_parmas = config['completion_api_params'].copy()
del cp_parmas['model']
request = modelmgr.select_request_cls(self.client, model, messages, cp_parmas)
@@ -74,8 +74,8 @@ class OpenAIInteract:
Returns:
dict: 响应
"""
config = context.get_config()
params = config.image_api_params
config = context.get_config_manager().data
params = config['image_api_params']
response = openai.Image.create(
prompt=prompt,
+9 -9
View File
@@ -36,11 +36,11 @@ def reset_session_prompt(session_name, prompt):
f.write(prompt)
f.close()
# 生成新数据
config = context.get_config()
config = context.get_config_manager().data
prompt = [
{
'role': 'system',
'content': config.default_prompt['default'] if type(config.default_prompt) == dict else config.default_prompt
'content': config['default_prompt']['default'] if type(config['default_prompt']) == dict else config['default_prompt']
}
]
# 警告
@@ -170,15 +170,15 @@ class Session:
if self.create_timestamp != create_timestamp or self not in sessions.values():
return
config = context.get_config()
if int(time.time()) - self.last_interact_timestamp > config.session_expire_time:
config = context.get_config_manager().data
if int(time.time()) - self.last_interact_timestamp > config['session_expire_time']:
logging.info('session {} 已过期'.format(self.name))
# 触发插件事件
args = {
'session_name': self.name,
'session': self,
'session_expire_time': config.session_expire_time
'session_expire_time': config['session_expire_time']
}
event = plugin_host.emit(plugin_models.SessionExpired, **args)
if event.is_prevented_default():
@@ -216,8 +216,8 @@ class Session:
if event.is_prevented_default():
return None, None, None
config = context.get_config()
max_length = config.prompt_submit_length
config = context.get_config_manager().data
max_length = config['prompt_submit_length']
local_default_prompt = self.default_prompt.copy()
local_prompt = self.prompt.copy()
@@ -254,7 +254,7 @@ class Session:
funcs = []
trace_func_calls = config.trace_function_calls
trace_func_calls = config['trace_function_calls']
botmgr = context.get_qqbot_manager()
session_name_spt: list[str] = self.name.split("_")
@@ -381,7 +381,7 @@ class Session:
# 包装目前的对话回合内容
changable_prompts = []
use_model = context.get_config().completion_api_params['model']
use_model = context.get_config_manager().data['completion_api_params']['model']
ptr = len(prompt) - 1