"""
@author: luojunhui
"""
from openai import OpenAI

mini_program_title_generate_prompt = """
    请将以上标题改写成适合小程序点击和传播的小程序标题，小程序标题的写作规范如下，请学习后进行小程序标题的编写。直接输出最终的小程序标题
    小程序标题写作规范：
    1.要点前置：将最重要的信息放在标题的最前面，以快速吸引读者的注意力。例如，“5月一辈子同学，三辈子亲，送给我的老同学，听哭无数人！”中的“5月”和“一辈子同学，三辈子亲”都是重要的信息点。
    2.激发情绪：使用能够触动人心的语言，激发读者的情感共鸣。如“只剩两人同学聚会，看后感动落泪。”使用“感动落泪”激发读者的同情和怀旧情绪。
    3.使用数字和特殊符号：数字可以提供具体性，而特殊符号如“🔴”、“😄”、“🔥”等可以吸引视觉注意力，增加点击率。
    4.悬念和好奇心：创建悬念或提出问题，激发读者的好奇心。例如，“太神奇了!长江水位下降，重庆出现惊奇一幕!”中的“惊奇一幕”就是一个悬念。
    5.名人效应：如果内容与知名人士相关，提及他们的名字可以增加标题的吸引力。
    6.社会价值观：触及读者的文化和社会价值观，如家庭、友情、国家荣誉等。
    7.标点符号的运用：使用感叹号、问号等标点来增强语气和情感表达。
    8.直接的语言：使用直白、口语化的语言，易于理解，如“狗屁股，笑死我了!”。
    9.热点人物或事件：提及当前的热点人物或事件，利用热点效应吸引读者。
    10.字数适中：保持标题在10-20个字之间，既不过长也不过短，确保信息的完整性和吸引力。
    11.适当的紧迫感：使用“最新”、“首次”、“紧急”等词汇，创造一种紧迫感，促使读者立即行动。
    12.情感或价值诉求：使用如“感动”、“泪目”、“经典”等词汇，直接与读者的情感或价值观产生共鸣。
    避免误导：确保标题准确反映内容，避免夸大或误导读者。
    """


def generate_mini_program_title(ori_title):
    """
    prompt + kimi + ori_title generate new title
    :param ori_title:
    :return:
    """
    client = OpenAI(
        api_key='sk-5DqYCa88kche6nwIWjLE1p4oMm8nXrR9kQMKbBolNAWERu7q',
        base_url="https://api.moonshot.cn/v1"
    )
    chat_completion = client.chat.completions.create(
        messages=[
            {
                "role": "user",
                "content": ori_title + "\n" + mini_program_title_generate_prompt
            }
        ],
        model="moonshot-v1-32k",
    )
    response = chat_completion.choices[0].message.content
    return response.split("\n")[0]
