doc2video / theme_generate.py
zhao1977's picture
Upload 15 files
dd74184 verified
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