code: def set_rag_chain(self, **kwargs):
      params = (
          {"llm_kwargs": kwargs["gen_llm_kwargs"]}
          if kwargs.get("gen_llm_kwargs", None)
          else {}
      )
      self.rag_chain = RetrievalQA.from_chain_type(
          llm=self.llm,
          verbose=kwargs["verbose"],
          chain_type="stuff",
          retriever=self.info_retriever,
          chain_type_kwargs={
              "prompt": kwargs["gen_qa_prompt"],
              "memory": self.memory,
          },
          **params,
      )
  
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 6 for calling the RAG_ChatBot obj's underlying member method code with example usage: obj.set_rag_chain() without return types