class_docstr: Base class to implement a new LLM.
docstr: Extracts the text between two tags in the response.
  
  Args:
      response (str): Response
      tag (str): Tag name
  
  Returns:
      (str or None): Extracted text from the response
docstr_tok: ["Extracts","the","text","between","two","tags","in","the","response",".","Args",":","response","(","str",")",":","Response","tag","(","str",")",":","Tag","name","Returns",":","(","str","or","None",")",":","Extracted","text","from","the","response"]
code: def _extract_tag_text(self, response: str, tag: str) -> str:
      """
      Extracts the text between two tags in the response.
  
      Args:
          response (str): Response
          tag (str): Tag name
  
      Returns:
          (str or None): Extracted text from the response
      """
  
      if match := re.search(
          f"(<{tag}>)(.*)(</{tag}>)",
          response,
          re.DOTALL | re.MULTILINE,
      ):
          return match[2]
      return None
  
imports: import os
  import ast
  import re
  from abc import abstractmethod
  from typing import Any, Dict, Optional, Union, Mapping, Tuple
  import requests
  from ..exceptions import APIKeyNotFoundError, MethodNotImplementedError, NoCodeFoundError, LLMResponseHTTPError
  from ..helpers.openai import is_openai_v1
  from ..helpers.openai_info import openai_callback_var
  from ..prompts.base import AbstractPrompt
label_desc: Use image node_id 6 for calling the LLM obj's underlying member method code with example usage: obj._extract_tag_text(response, tag) and returns: None, match