from http import HTTPStatus import dashscope import re def theme_generate_with_qwen_plus(input_filepath, title): """ 使用通义千问-Plus生成摘要标题。 本函数读取指定文件的内容,并基于该内容和给定的主题生成一个精确、概括性的摘要标题。 参数: - input_filepath: 输入文件的路径。该文件的内容将用于生成摘要标题。 - title: 生成摘要标题需围绕的主题。确保生成的标题与该主题紧密相关。 返回: - response_content: 生成的摘要标题。 注意: - 该函数以流式传输的方式请求生成标题,仅当响应状态码为HTTPStatus.OK时,累加响应内容。 - 如果发生错误,函数会打印请求的相关错误信息。 """ # 读取输入文件内容 with open(input_filepath, 'r', encoding='utf-8') as file: content = file.read() # 构建提示信息,指导模型生成与主题紧密相关的标题 prompt = f""" 请为以下输入文档创建一个精确的、具备概括性的摘要标题,能够反映文档核心内容,忽略所有链接,仅聚焦文字信息。 需要紧紧地围绕主题“{title}”。 直接呈现标题成果,勿附加其他文本,不超过10个汉字,用中文回答。 以下是输入文档的内容: """ # 构建消息格式 messages = [{ 'role': 'user', 'content': f""" "{prompt}" "{content}" """ }] # 初始化响应内容 response_content = '' # 以流式传输的方式获取生成的结果 responses = dashscope.Generation.call("qwen-plus", messages=messages, result_format='message', stream=True, incremental_output=True) # 遍历响应,累加生成的标题内容 for response in responses: if response.status_code == HTTPStatus.OK: response_content += response.output.choices[0]['message']['content'] else: # 打印错误信息 print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( response.request_id, response.status_code, response.code, response.message )) # 移除标题中的双引号(如果存在) response_content = re.sub(r'^"|"$', '', response_content) # 返回生成的标题内容 return response_content