import random from http import HTTPStatus from dashscope import Generation
defcall_with_messages(content): messages = [{'role': 'system', 'content': '你是文章提纲生成器,我将会输入一段 Markdown 格式的文章,你需要解析输入的文章,理解其中的意思,最后给出它的概要,可以多一些,但是内容在200字以内。'}, {'role': 'user', 'content': content}] gen = Generation() response = gen.call( Generation.Models.qwen_turbo, messages=messages, seed=random.randint(1, 10000), # set the random seed, optional, default to 1234 if not set result_format='message', # set the result to be "message" format. ) if response.status_code == HTTPStatus.OK: print(response) else: print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( response.request_id, response.status_code, response.code, response.message ))
if __name__ == '__main__': content = r""" 这里粘贴整段文章 """
defcall_with_messages(content): messages = [{'role': 'system', 'content': '你是文章提纲生成器,我将会输入一段 Markdown 格式的文章,你需要解析输入的文章,理解其中的意思,最后给出它的概要,可以多一些,但是内容在200字以内。'}, {'role': 'user', 'content': content}] gen = Generation() response = gen.call( Generation.Models.qwen_turbo, messages=messages, seed=random.randint(1, 10000), # set the random seed, optional, default to 1234 if not set result_format='message', # set the result to be "message" format. ) if response.status_code == HTTPStatus.OK: logger.debug(response) logger.info(response.output.choices[0].message.content) return response.output.choices[0].message.content else: raise RuntimeError('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( response.request_id, response.status_code, response.code, response.message ))
# 这条导入语句要写在赋环境变量之后 from dashscope import Generation
deftree(filepath, ignore_dir_names=None, ignore_file_names=None): """返回两个列表,第一个列表为 filepath 下全部文件的完整路径, 第二个为对应的文件名""" if ignore_dir_names isNone: ignore_dir_names = [] if ignore_file_names isNone: ignore_file_names = [] ret_list = [] ifisinstance(filepath, str): ifnot os.path.exists(filepath): logger.error("路径不存在: " + filepath) returnNone, None elif os.path.isfile(filepath) and os.path.basename(filepath) notin ignore_file_names: return [filepath], [os.path.basename(filepath)] elif os.path.isdir(filepath) and os.path.basename(filepath) notin ignore_dir_names: for file in os.listdir(filepath): fullfilepath = os.path.join(filepath, file) if os.path.isfile(fullfilepath) and os.path.basename(fullfilepath) notin ignore_file_names: ret_list.append(fullfilepath) if os.path.isdir(fullfilepath) and os.path.basename(fullfilepath) notin ignore_dir_names: ret_list.extend(tree(fullfilepath, ignore_dir_names, ignore_file_names)[0]) return ret_list, [os.path.basename(p) for p in ret_list]
defcall_with_messages(content): messages = [{'role': 'system', 'content': '你是文章提纲生成器,我将会输入一段 Markdown 格式的文章,你需要解析输入的文章,理解其中的意思,最后给出它的概要,可以多一些,但是内容在200字以内。'}, {'role': 'user', 'content': content}] gen = Generation() response = gen.call( Generation.Models.qwen_turbo, messages=messages, seed=random.randint(1, 10000), # set the random seed, optional, default to 1234 if not set result_format='message', # set the result to be "message" format. ) if response.status_code == HTTPStatus.OK: logger.debug(response) logger.info(response.output.choices[0].message.content) return response.output.choices[0].message.content else: raise RuntimeError('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( response.request_id, response.status_code, response.code, response.message ))
if __name__ == '__main__': ROOT_PATH = r'目录路径' file_lists = list(zip(*tree(ROOT_PATH))) for file_tuple in file_lists: if file_tuple[1].endswith('.md'): logger.info('当前处理文件:' + file_tuple[1]) gen_ai_abstract_from_one_md_file(file_tuple[0])
执行情况
我对我现有的文章执行了上述代码,其中成功 47 个,失败 23 个。失败的里面除了一个 提示的是 Range of input length should be [1, 6000] 外,其他的都是上面提到的错误。总计用掉 token 数量为 86715(输入输出都会消耗 token)。