config.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. import os
  2. class BaseConfig(object):
  3. # 讯飞asr配置
  4. XFASR_HOST = 'https://raasr.xfyun.cn/v2/api'
  5. XF_API = {
  6. 'upload': '/upload',
  7. 'get_result': '/getResult'
  8. }
  9. XFASR_CONFIG = {
  10. 'appid': 'ac4ec700',
  11. 'secret_key': 'f822c63011275bcd26fa286fbb01768a'
  12. }
  13. # gpt配置
  14. GPT_HOST = 'https://api.openai.com/v1/chat/completions'
  15. GPT_OPENAI_API_KEY = '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'
  16. GPT_URL = 'http://aigc.piaoquantv.com/aigc-server/aigc/content'
  17. # 代理地址
  18. PROXIES = {
  19. 'http': 'http://127.0.0.1:4780',
  20. 'https': 'http://127.0.0.1:4780'
  21. }
  22. # MQ配置
  23. MQ_CONFIG = {
  24. 'ENDPOINT': 'http://1894469520484605.mqrest.cn-qingdao-public.aliyuncs.com',
  25. 'ACCESS_KEY': 'LTAI4G7puhXtLyHzHQpD6H7A',
  26. 'SECRET_KEY': 'nEbq3xWNQd1qLpdy2u71qFweHkZjSG',
  27. 'INSTANCE_ID': 'MQ_INST_1894469520484605_BXhXuzkZ'
  28. }
  29. # 飞书应用凭证
  30. FEISHU_TOKEN = {
  31. 'app_id': 'cli_a3667697a57b500e',
  32. 'app_secret': '5eMszgeNt21U56XnPjCykgmTfZUEEMnp'
  33. }
  34. # 记录生成标题重试次数
  35. TITLE_GENERATE_RETRY_KEY_NAME_PREFIX = 'title:generate:retry:count:'
  36. # video tags
  37. TAGS = ['舞蹈', '美食', '时尚', '旅行', '音乐', '运动', '影视', '搞笑', '科技', '综艺',
  38. '游戏', '情感', '健康', '人文', '社会', '热点', '财富', '生活']
  39. # GPT prompt
  40. GPT_PROMPT = {
  41. 'tags': {
  42. 'prompt1': f"""
  43. 请对如下文本进行分类。类别为其中的一个:【{' '.join(TAGS)}】。
  44. 以json格式返回,key为category与confidence,分别代表类别与分类置信度。给出top 3的分类结果。
  45. -----------------------------
  46. """,
  47. 'prompt2': f"""
  48. 请对如下文本进行:
  49. 1. 分类,类别为其中的一个:【{' '.join(TAGS)}】。如果无法有效分类,请返回“其他”。
  50. 2. 用20个字以内对文本内容进行概况。
  51. 3. 为文本取一个易于分享,吸引人要求的标题。
  52. 4. 列举三个关键词。
  53. 以json格式返回,key为category, confidence, summery, title, keywords。分别代表类别,分类置信度,概要,标题,关键词。
  54. -----------------------------
  55. """
  56. },
  57. 'title': {
  58. 'prompt1': f"""
  59. 请对如下文本进行: 为文本取一个易于分享,吸引人要求的标题。要求在30个字以内。
  60. -----------------------------
  61. """,
  62. 'prompt2': f"""
  63. 我想让你充当爆款标题生成器,我会给你提供一段视频的讲解文本,你生成一个更吸引眼球的标题。
  64. 标题不要超过35个字。
  65. 标题要突出惊奇感,让老年人看到就想转发,语义要保持中立,不要向负面倾斜,不要涉及政治敏感话题。
  66. 如果原讲解文本中有地名,不要改变讲解文本中的地名。
  67. 如果原讲解文本是关于唱歌但是没有说明是哪首歌,你起的标题也不要说歌名。
  68. 如果原讲解文本中没有明确指出男女性别,你起的标题也不要说具体的性别。
  69. 如果原讲解文本中没有明确指出是谁干了这件事,你起的标题也不要说是谁干的。
  70. 如果原讲解文本中没有提及老年人,你起的标题也不要说老年人。
  71. 我的原讲解文本是:
  72. """
  73. }
  74. }
  75. class DevelopmentConfig(BaseConfig):
  76. """开发环境配置"""
  77. # 报警内容 环境区分
  78. ENV_TEXT = "开发环境"
  79. # 日志服务配置
  80. ALIYUN_LOG = {
  81. 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
  82. 'ACCESSID': 'LTAIWYUujJAm7CbH',
  83. 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
  84. 'PROJECT': 'aigc-server-test',
  85. }
  86. # redis地址
  87. REDIS_INFO = {
  88. 'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
  89. 'port': 6379,
  90. 'password': 'Wqsd@2019',
  91. }
  92. # MQ TOPIC配置
  93. MQ_TOPIC_CONFIG = {
  94. 'asr_title_todo': {
  95. 'topic_name': 'topic_asr_title_todo_test',
  96. 'group_id': 'GID_ASR_TITLE_TODO_TEST'
  97. },
  98. 'asr_title_done': {
  99. 'topic_name': 'topic_asr_title_done_test',
  100. 'group_id': 'GID_ASR_TITLE_DONE_TEST'
  101. },
  102. }
  103. class TestConfig(BaseConfig):
  104. """测试环境配置"""
  105. # 报警内容 环境区分
  106. ENV_TEXT = "测试环境"
  107. # 日志服务配置
  108. ALIYUN_LOG = {
  109. 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
  110. 'ACCESSID': 'LTAIWYUujJAm7CbH',
  111. 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
  112. 'PROJECT': 'aigc-server-test',
  113. }
  114. # redis地址
  115. REDIS_INFO = {
  116. 'host': 'r-bp1ps6my7lzg8rdhwx682.redis.rds.aliyuncs.com',
  117. 'port': 6379,
  118. 'password': 'Wqsd@2019',
  119. }
  120. # MQ TOPIC配置
  121. MQ_TOPIC_CONFIG = {
  122. 'asr_title_todo': {
  123. 'topic_name': 'topic_asr_title_todo_test',
  124. 'group_id': 'GID_ASR_TITLE_TODO_TEST'
  125. },
  126. 'asr_title_done': {
  127. 'topic_name': 'topic_asr_title_done_test',
  128. 'group_id': 'GID_ASR_TITLE_DONE_TEST'
  129. },
  130. }
  131. class PreProductionConfig(BaseConfig):
  132. """预发布环境配置"""
  133. # 报警内容 环境区分
  134. ENV_TEXT = "预发布环境"
  135. # 日志服务配置
  136. ALIYUN_LOG = {
  137. 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
  138. 'ACCESSID': 'LTAIWYUujJAm7CbH',
  139. 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
  140. 'PROJECT': 'aigc-server',
  141. }
  142. # redis地址
  143. REDIS_INFO = {
  144. 'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com',
  145. 'port': 6379,
  146. 'password': 'Wqsd@2019',
  147. }
  148. # MQ TOPIC配置
  149. MQ_TOPIC_CONFIG = {
  150. 'asr_title_todo': {
  151. 'topic_name': 'topic_asr_title_todo',
  152. 'group_id': 'GID_ASR_TITLE_TODO'
  153. },
  154. 'asr_title_done': {
  155. 'topic_name': 'topic_asr_title_done',
  156. 'group_id': 'GID_ASR_TITLE_DONE'
  157. },
  158. }
  159. class ProductionConfig(BaseConfig):
  160. """生产环境配置"""
  161. # 报警内容 环境区分
  162. ENV_TEXT = "生产环境"
  163. # 日志服务配置
  164. ALIYUN_LOG = {
  165. 'ENDPOINT': 'cn-hangzhou-intranet.log.aliyuncs.com',
  166. 'ACCESSID': 'LTAIWYUujJAm7CbH',
  167. 'ACCESSKEY': 'RfSjdiWwED1sGFlsjXv0DlfTnZTG1P',
  168. 'PROJECT': 'aigc-server',
  169. }
  170. # redis地址
  171. REDIS_INFO = {
  172. 'host': 'r-bp1fogs2mflr1ybfot.redis.rds.aliyuncs.com',
  173. 'port': 6379,
  174. 'password': 'Wqsd@2019',
  175. }
  176. # MQ TOPIC配置
  177. MQ_TOPIC_CONFIG = {
  178. 'asr_title_todo': {
  179. 'topic_name': 'topic_asr_title_todo',
  180. 'group_id': 'GID_ASR_TITLE_TODO'
  181. },
  182. 'asr_title_done': {
  183. 'topic_name': 'topic_asr_title_done',
  184. 'group_id': 'GID_ASR_TITLE_DONE'
  185. },
  186. }
  187. def set_config():
  188. # 获取环境变量 AIGC_SERVER_ENV
  189. env = os.environ.get('AIGC_SERVER_ENV')
  190. # env = 'dev'
  191. if env is None:
  192. # log_.error('ENV ERROR: is None!')
  193. return
  194. if env == 'dev':
  195. return DevelopmentConfig()
  196. elif env == 'test':
  197. return TestConfig()
  198. elif env == 'pre':
  199. return PreProductionConfig()
  200. elif env == 'pro':
  201. return ProductionConfig()
  202. else:
  203. # log_.error('ENV ERROR: is {}'.format(env))
  204. return