import os


class BaseConfig(object):
    # 每日AI标签视频信息表
    DAILY_VIDEO = {
        'project': 'loghubods',
        'table': 'video_aigc_tag_yesterday_upload'
    }

    # ODPS服务配置
    ODPS_CONFIG = {
        'ENDPOINT': 'http://service.cn.maxcompute.aliyun.com/api',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
    }

    # OSS配置
    OSS_CONFIG = {
        'endpoint': 'http://oss-cn-hangzhou-internal.aliyuncs.com',
        'accessKeyId': 'LTAIP6x1l3DXfSxm',
        'accessKeySecret': 'KbTaM9ars4OX3PMS6Xm7rtxGr1FLon',
        'bucket_name': 'art-pubbucket'
    }

    # 讯飞asr配置
    XFASR_HOST = 'https://raasr.xfyun.cn/v2/api'
    XF_API = {
        'upload': '/upload',
        'get_result': '/getResult'
    }
    XFASR_CONFIG = {
        'appid': 'b11df2ff',
        'secret_key': '598f38c17bd361f1f473dcfc840d330a'
    }

    # gpt配置
    GPT_HOST = 'https://api.openai.com/v1/chat/completions'
    # GPT_OPENAI_API_KEY = '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'
    # GPT_OPENAI_API_KEY = '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'
    GPT_OPENAI_API_KEY = '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'
    GPT_URL = 'http://aigc.piaoquantv.com/aigc-server/aigc/content'
    RETRY_MAX_COUNT = 3

    # 代理地址
    PROXIES = {
        'http': 'http://127.0.0.1:4780',
        'https': 'http://127.0.0.1:4780'
    }

    # 飞书应用凭证
    FEISHU_TOKEN = {
        'app_id': 'cli_a3667697a57b500e',
        'app_secret': '5eMszgeNt21U56XnPjCykgmTfZUEEMnp'
    }

    # stop_words
    STOP_WORDS = ['啊', '嗯', '呗', '呢', '呐', '呀', '唉', '哎', '额', '呃', '哦', '呵']

    # video tags
    TAGS = ['舞蹈', '美食', '时尚', '旅行', '音乐', '运动', '影视', '搞笑', '科技', '综艺',
            '游戏', '情感', '健康', '人文', '社会', '热点', '财富', '生活']
    TAGS_NEW = ['资讯', '国际', '政治', '科技', '军事', '健康', '社会', '民生政策', '人文', '人物', '旅行', '生活',
                '美食', '综艺', '搞笑', '民俗文化', '安全', '休闲娱乐', '艺术', '情感']
    # GPT prompt
    format_json_array = '[{},{},{}]'
    GPT_PROMPT = {
        'tags': {
            'prompt1': f"""
请对如下文本进行分类。类别为其中的一个:【{' '.join(TAGS)}】。
以json格式返回,key为category与confidence,分别代表类别与分类置信度。给出top 3的分类结果。
-----------------------------
""",
            'prompt2': f"""
请对如下文本进行:
1. 分类,类别为其中的一个:【{' '.join(TAGS)}】。如果无法有效分类,请返回“其他”。
2. 用20个字以内对文本内容进行概况。
3. 为文本取一个易于分享,吸引人要求的标题。
4. 列举三个关键词。
以json格式返回,key为category, confidence, summary, title, keywords。分别代表类别,分类置信度,概要,标题,关键词。
-----------------------------
""",
            'prompt3': f"""
请对如下文本进行分类,不允许返回"其他"。
以json格式返回,key为categor与confidence, 分别代表类别与分类置信度。给出top 3的分类结果。
-----------------------------
""",
            'prompt4': f"""请对如下文本进行分类。类别为其中的一个:【{' '.join(TAGS_NEW)}】。
以json array格式返回,key为category与confidence,分别代表类别与分类置信度。给出top 3的分类结果。
-----------------------------
""",
            'prompt5': f"""请对如下文本进行分类。类别为其中的一个:【{' '.join(TAGS_NEW)}】。
以json array格式返回,{format_json_array},key为category与confidence,分别代表类别与分类置信度。给出top 3的分类结果。
-----------------------------
    """,
            'prompt6': f"""
请对如下文本进行:
1. 用20个字以内对文本内容进行概况。
2. 列举三个关键词。
仅以json格式返回,key为summary, keywords。分别代表概要,关键词。
-----------------------------
""",
            'prompt7': f"""请根据以下的视频信息对其进行分类。类别为其中的一个:【{' '.join(TAGS_NEW)}】。
仅以json array格式返回,{format_json_array},key为category与confidence,分别代表类别与分类置信度。给出top 3的分类结果。
-----------------------------
""",
        },
        'title': {
            'prompt1': f"""
请对如下文本进行: 为文本取一个易于分享,吸引人要求的标题。要求在30个字以内。
-----------------------------
""",
            'prompt2': f"""
我想让你充当爆款标题生成器,我会给你提供一段视频的讲解文本,你生成一个更吸引眼球的标题。
标题不要超过35个字。
标题要突出惊奇感,让老年人看到就想转发,语义要保持中立,不要向负面倾斜,不要涉及政治敏感话题。
如果原讲解文本中有地名,不要改变讲解文本中的地名。
如果原讲解文本是关于唱歌但是没有说明是哪首歌,你起的标题也不要说歌名。
如果原讲解文本中没有明确指出男女性别,你起的标题也不要说具体的性别。
如果原讲解文本中没有明确指出是谁干了这件事,你起的标题也不要说是谁干的。
如果原讲解文本中没有提及老年人,你起的标题也不要说老年人。
我的原讲解文本是:
"""
        }
    }


class TestConfig(BaseConfig):
    # 后端接口 - 视频添加AI相关标签
    ADD_VIDEO_AI_TAGS_URL = 'https://testadmin.piaoquantv.com/manager/video/tag/addVideoAiTags'
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'aigc-server-test',
    }


class PreConfig(BaseConfig):
    # 后端接口 - 视频添加AI相关标签
    ADD_VIDEO_AI_TAGS_URL = 'https://preadmin.piaoquantv.com/manager/video/tag/addVideoAiTags'
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'aigc-server',
    }


class ProConfig(BaseConfig):
    # 后端接口 - 视频添加AI相关标签
    ADD_VIDEO_AI_TAGS_URL = 'https://admin.piaoquantv.com/manager/video/tag/addVideoAiTags'
    # 日志服务配置
    ALIYUN_LOG = {
        'ENDPOINT': 'cn-hangzhou.log.aliyuncs.com',
        'ACCESSID': 'LTAIWYUujJAm7CbH',
        'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
        'PROJECT': 'aigc-server',
    }


def set_config():
    return TestConfig()
    # return ProConfig()
    # return ProConfig