code: def __init__(
      self,
      llm,
      rag_config,
  ) -> None:
      self.llm = llm
      self.rag_config = rag_config
      self.set_embed_model(**self.rag_config["embed"])
      self.set_text_splitter(**self.rag_config["splitter"])
      self.set_memory(**self.rag_config["chain"])
      self.set_info_retriever(**self.rag_config["retrieval"])
      self.set_rag_chain(**self.rag_config["chain"])
      if self.rag_config["chain"].get("disambig_prompt", None):
          self.set_disambig_retriv(**self.rag_config["chain"])
  
      self.documents = []
      self.docs_names = []
  
imports: import os
  from typing import Dict, Tuple
  from colossalqa.chain.retrieval_qa.base import RetrievalQA
  from colossalqa.data_loader.document_loader import DocumentLoader
  from colossalqa.memory import ConversationBufferWithSummary
  from colossalqa.mylogging import get_logger
  from colossalqa.prompt.prompt import PROMPT_DISAMBIGUATE_ZH, PROMPT_RETRIEVAL_QA_ZH, SUMMARY_PROMPT_ZH, ZH_RETRIEVAL_QA_REJECTION_ANSWER, ZH_RETRIEVAL_QA_TRIGGER_KEYWORDS
  from colossalqa.retriever import CustomRetriever
  from langchain import LLMChain
  from langchain.embeddings import HuggingFaceEmbeddings
label_desc: Use image node_id 1 to create a new RAG_ChatBot object  with example: obj = RAG_ChatBot(llm, rag_config)