ソースを参照

create bot when first need

master
lanvent 1年前
コミット
8847b5b674
2個のファイルの変更19行の追加9行の削除
  1. +18
    -8
      bridge/bridge.py
  2. +1
    -1
      plugins/plugin_manager.py

+ 18
- 8
bridge/bridge.py ファイルの表示

@@ -1,3 +1,4 @@
from common.log import logger
from bot import bot_factory
from common.singleton import singleton
from voice import voice_factory
@@ -6,16 +7,24 @@ from voice import voice_factory
@singleton
class Bridge(object):
def __init__(self):
self.bots = {
"chat": bot_factory.create_bot("chatGPT"),
"voice_to_text": voice_factory.create_voice("openai"),
# "text_to_voice": voice_factory.create_voice("baidu")
self.btype={
"chat": "chatGPT",
"voice_to_text": "openai",
"text_to_voice": "baidu"
}
try:
self.bots["text_to_voice"] = voice_factory.create_voice("baidu")
except ModuleNotFoundError as e:
print(e)
self.bots={}

def getbot(self,typename):
if self.bots.get(typename) is None:
logger.info("create bot {} for {}".format(self.btype[typename],typename))
if typename == "text_to_voice":
self.bots[typename] = voice_factory.create_voice(self.btype[typename])
elif typename == "voice_to_text":
self.bots[typename] = voice_factory.create_voice(self.btype[typename])
elif typename == "chat":
self.bots[typename] = bot_factory.create_bot(self.btype[typename])
return self.bots[typename]
# 以下所有函数需要得到一个reply字典,格式如下:
# reply["type"] = "ERROR" / "TEXT" / "VOICE" / ...
# reply["content"] = reply的内容
@@ -28,3 +37,4 @@ class Bridge(object):

def fetch_text_to_voice(self, text):
return self.bots["text_to_voice"].textToVoice(text)


+ 1
- 1
plugins/plugin_manager.py ファイルの表示

@@ -63,7 +63,7 @@ class PluginManager:

def load_plugins(self):
pconf = self.load_config()
logger.debug("plugins.json config={}" % pconf)
logger.debug("plugins.json config={}".format(pconf))
for plugin in pconf["plugins"]:
name = plugin["name"]
enabled = plugin["enabled"]


読み込み中…
キャンセル
保存