Files
DB-GPT/dbgpt/app/scene/chat_factory.py
2024-05-15 09:57:19 +08:00

45 lines
2.3 KiB
Python

from dbgpt.app.scene.base_chat import BaseChat
from dbgpt.core import PromptTemplate
from dbgpt.util.singleton import Singleton
from dbgpt.util.tracer import root_tracer
class ChatFactory(metaclass=Singleton):
@staticmethod
def get_implementation(chat_mode, **kwargs):
# Lazy loading
from dbgpt.app.scene.chat_dashboard.chat import ChatDashboard
from dbgpt.app.scene.chat_dashboard.prompt import prompt
from dbgpt.app.scene.chat_data.chat_excel.excel_analyze.chat import ChatExcel
from dbgpt.app.scene.chat_data.chat_excel.excel_analyze.prompt import prompt
from dbgpt.app.scene.chat_data.chat_excel.excel_learning.prompt import prompt
from dbgpt.app.scene.chat_db.auto_execute.chat import ChatWithDbAutoExecute
from dbgpt.app.scene.chat_db.auto_execute.prompt import prompt
from dbgpt.app.scene.chat_db.professional_qa.chat import ChatWithDbQA
from dbgpt.app.scene.chat_db.professional_qa.prompt import prompt
from dbgpt.app.scene.chat_knowledge.extract_entity.chat import ExtractEntity
from dbgpt.app.scene.chat_knowledge.extract_entity.prompt import prompt
from dbgpt.app.scene.chat_knowledge.extract_triplet.chat import ExtractTriplet
from dbgpt.app.scene.chat_knowledge.extract_triplet.prompt import prompt
from dbgpt.app.scene.chat_knowledge.refine_summary.chat import (
ExtractRefineSummary,
)
from dbgpt.app.scene.chat_knowledge.refine_summary.prompt import prompt
from dbgpt.app.scene.chat_knowledge.v1.chat import ChatKnowledge
from dbgpt.app.scene.chat_knowledge.v1.prompt import prompt
from dbgpt.app.scene.chat_normal.chat import ChatNormal
from dbgpt.app.scene.chat_normal.prompt import prompt
chat_classes = BaseChat.__subclasses__()
implementation = None
for cls in chat_classes:
if cls.chat_scene == chat_mode:
metadata = {"cls": str(cls)}
with root_tracer.start_span(
"get_implementation_of_chat", metadata=metadata
):
implementation = cls(**kwargs)
if implementation == None:
raise Exception(f"Invalid implementation name:{chat_mode}")
return implementation