import os class BaseConfig(object): # 讯飞asr配置 XFASR_HOST = 'https://raasr.xfyun.cn/v2/api' XF_API = { 'upload': '/upload', 'get_result': '/getResult' } XFASR_CONFIG = { 'appid': 'ac4ec700', 'secret_key': 'f822c63011275bcd26fa286fbb01768a' } # 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_URL = 'http://aigc.piaoquantv.com/aigc-server/aigc/content' # 代理地址 PROXIES = { 'http': 'http://127.0.0.1:4780', 'https': 'http://127.0.0.1:4780' } # MQ配置 MQ_CONFIG = { 'ENDPOINT': 'http://1894469520484605.mqrest.cn-qingdao-public.aliyuncs.com', 'ACCESS_KEY': 'LTAI4G7puhXtLyHzHQpD6H7A', 'SECRET_KEY': 'nEbq3xWNQd1qLpdy2u71qFweHkZjSG', 'INSTANCE_ID': 'MQ_INST_1894469520484605_BXhXuzkZ' } # 飞书应用凭证 FEISHU_TOKEN = { 'app_id': 'cli_a3667697a57b500e', 'app_secret': '5eMszgeNt21U56XnPjCykgmTfZUEEMnp' } # 记录生成标题重试次数 TITLE_GENERATE_RETRY_KEY_NAME_PREFIX = 'title:generate:retry:count:' # video tags TAGS = ['舞蹈', '美食', '时尚', '旅行', '音乐', '运动', '影视', '搞笑', '科技', '综艺', '游戏', '情感', '健康', '人文', '社会', '热点', '财富', '生活'] # GPT prompt 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, summery, title, keywords。分别代表类别,分类置信度,概要,标题,关键词。 ----------------------------- """ }, 'title': { 'prompt1': f""" 请对如下文本进行: 为文本取一个易于分享,吸引人要求的标题。要求在30个字以内。 ----------------------------- """, 'prompt2': f""" 我想让你充当爆款标题生成器,我会给你提供一段视频的讲解文本,你生成一个更吸引眼球的标题。 标题不要超过35个字。 标题要突出惊奇感,让老年人看到就想转发,语义要保持中立,不要向负面倾斜,不要涉及政治敏感话题。 如果原讲解文本中有地名,不要改变讲解文本中的地名。 如果原讲解文本是关于唱歌但是没有说明是哪首歌,你起的标题也不要说歌名。 如果原讲解文本中没有明确指出男女性别,你起的标题也不要说具体的性别。 如果原讲解文本中没有明确指出是谁干了这件事,你起的标题也不要说是谁干的。 如果原讲解文本中没有提及老年人,你起的标题也不要说老年人。 我的原讲解文本是: """ } } class DevelopmentConfig(BaseConfig): """开发环境配置""" # 报警内容 环境区分 ENV_TEXT = "开发环境" # 日志服务配置 ALIYUN_LOG = { 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com', 'ACCESSID': 'LTAIWYUujJAm7CbH', 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P', 'PROJECT': 'aigc-server-test', } # redis地址 REDIS_INFO = { 'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com', 'port': 6379, 'password': 'Wqsd@2019', } # MQ TOPIC配置 MQ_TOPIC_CONFIG = { 'asr_title_todo': { 'topic_name': 'topic_asr_title_todo_test', 'group_id': 'GID_ASR_TITLE_TODO_TEST' }, 'asr_title_done': { 'topic_name': 'topic_asr_title_done_test', 'group_id': 'GID_ASR_TITLE_DONE_TEST' }, } class TestConfig(BaseConfig): """测试环境配置""" # 报警内容 环境区分 ENV_TEXT = "测试环境" # 日志服务配置 ALIYUN_LOG = { 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com', 'ACCESSID': 'LTAIWYUujJAm7CbH', 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P', 'PROJECT': 'aigc-server-test', } # redis地址 REDIS_INFO = { 'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com', 'port': 6379, 'password': 'Wqsd@2019', } # MQ TOPIC配置 MQ_TOPIC_CONFIG = { 'asr_title_todo': { 'topic_name': 'topic_asr_title_todo_test', 'group_id': 'GID_ASR_TITLE_TODO_TEST' }, 'asr_title_done': { 'topic_name': 'topic_asr_title_done_test', 'group_id': 'GID_ASR_TITLE_DONE_TEST' }, } class PreProductionConfig(BaseConfig): """预发布环境配置""" # 报警内容 环境区分 ENV_TEXT = "预发布环境" # 日志服务配置 ALIYUN_LOG = { 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com', 'ACCESSID': 'LTAIWYUujJAm7CbH', 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P', 'PROJECT': 'aigc-server', } # redis地址 REDIS_INFO = { 'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com', 'port': 6379, 'password': 'Wqsd@2019', } # MQ TOPIC配置 MQ_TOPIC_CONFIG = { 'asr_title_todo': { 'topic_name': 'topic_asr_title_todo', 'group_id': 'GID_ASR_TITLE_TODO' }, 'asr_title_done': { 'topic_name': 'topic_asr_title_done', 'group_id': 'GID_ASR_TITLE_DONE' }, } class ProductionConfig(BaseConfig): """生产环境配置""" # 报警内容 环境区分 ENV_TEXT = "生产环境" # 日志服务配置 ALIYUN_LOG = { 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com', 'ACCESSID': 'LTAIWYUujJAm7CbH', 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P', 'PROJECT': 'aigc-server', } # redis地址 REDIS_INFO = { 'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com', 'port': 6379, 'password': 'Wqsd@2019', } # MQ TOPIC配置 MQ_TOPIC_CONFIG = { 'asr_title_todo': { 'topic_name': 'topic_asr_title_todo', 'group_id': 'GID_ASR_TITLE_TODO' }, 'asr_title_done': { 'topic_name': 'topic_asr_title_done', 'group_id': 'GID_ASR_TITLE_DONE' }, } def set_config(): # 获取环境变量 AIGC_SERVER_ENV env = os.environ.get('AIGC_SERVER_ENV') # env = 'dev' if env is None: # log_.error('ENV ERROR: is None!') return if env == 'dev': return DevelopmentConfig() elif env == 'test': return TestConfig() elif env == 'pre': return PreProductionConfig() elif env == 'pro': return ProductionConfig() else: # log_.error('ENV ERROR: is {}'.format(env)) return