def METHOD_NAME(api_key=None, secret_key=None, query="", maxlen=11200):
    """
    FistrParsing query to obtain keywords,
    then,text retrieval, and table Q&A
    """
    prompt = "给你年报主要内容的28个标题，具体为\n{}。".format(";".join(all_titles))
    prompt += """现在给你一个问题，你需要理解这个问题，并给出这个问题涉及到公司年报哪些标题，
    请你返回一个json格式的字符串，键值包含"公司名"和"涉及标题"，涉及标题的value是一个列表，
    列表包含这个问题涉及到公司年报哪些标题，
    请你保证你输出的涉及标题不要把27个标题都输出，只输出你认为与问题相关性高的标题。
    下面给你以下示例：
    示例1:
    输入问题：宁德时代近三年发展的怎么样
    输出：{"公司名":宁德时代,"涉及标题":['主营收入','公司主营业务','历年营业总收入、归母净利润、扣非净利润数据','营业收入的主营产品构成情况','历年毛利率和净利率数据']}
    示例2:
    输入问题：宁德时代的股票可以买吗？
    输出：{"公司名":宁德时代,"涉及标题":['公司主营业务','日行情K线数据','近年来市盈率(TTM)、市净率(LF)、市销率(TTM)变化情况','近年来市盈率(TTM)、市净率(LF)、市销率(TTM)历史分位','人均薪酬、创利、创收情况','历年加权净资产收益率','历年研发投入','历年净现比数据','历年主要负债堆积']}
    示例3:
    输入问题：寒武纪的风险点有哪些？
    输出：{"公司名":寒武纪,"涉及标题":['历年营业总收入、归母净利润、扣非净利润数据','公司主营业务','五大客户、供应商集中度情况','前五大客户和供应商占比','近年来市盈率(TTM)、市净率(LF)、市销率(TTM)历史分位','营运能力各周转率','应收账款及减值准备情况','历年存货堆积']}
    现在让我们开始
    输入问题："""
    prompt += query + "\n请你记住你的输出是一个json格式的字符串,键值有两个,请你保证你输出的标题是与问题相关的标题"
    ernie_bot = ErnieBot(api_key=api_key, secret_key=secret_key)
    query_keys = []
    company = ""
    for i in range(3):
        try:
            result = ernie_bot.run(prompt)[0]
            result = result["result"]
            result = result[result.find("{") :]
            result = result[: result.find("}")] + "}"
            result = json.loads(result)
            company = result.get("公司名", "")
            query_keys.extend([i.strip() for i in result["涉及标题"] if i.strip() in all_titles])
        except:
            time.sleep(3)
            continue
    query_keys = list(set(query_keys))
    if query_keys == []:
        return "我无法解答这个问题"
    else:
        text = ""
        for key in query_keys:
            query_text = "请提取" + company + key + "的信息来解答" + query + "这个问题"
            if key in ["主营收入", "公司主营业务"]:
                text += "从" + key + "角度：\n" + text_retrieval(query_text, key) + "\n"
            elif key != "日行情K线数据":
                text += "从" + key + "角度：\n" + chat_table(query_text, api_key, secret_key, key) + "\n"
    ernie_bot = ErnieBot(api_key, secret_key)
    try:
        prompt = "你现在是金融助手，请你根据背景信息回答问题。请你记住，你的回答要基于背景信息，不要胡编乱造。背景信息{information},请回答相关问题{query}"
        information = text[: maxlen - 1 - len(query) - len(prompt)]
        prompt = prompt.format(information=information, query=query)
        text = ernie_bot.run(prompt)[0]["result"] + "\n" + text
        return text
    except:
        return text