如何建设品牌网站大连网站推广排名
前言
测试开发工程师在日常工作中需要处理大量测试文档,并且这些文档需要被高效分类、清洗和管理,同时结合强大的 AI 推理能力(如 DeepSeek 模型)进行智能化处理和分析。为此,我们开发了一款基于 PyQt5 的 GUI 工具,集 文件分类、内容清洗、内容展示、DeepSeek推理 和 结果导出 于一体。本地的deepseek-r1由于硬件受限,推理能力难以达到预期。使用三方提供的免费API接口,生成的结果较为满意。由于各位宝子所在公司模板要求不一,这里会将用例导出为json格式输出。
由于阿里云百炼的deepseek-r1接口不支持返回json格式,代码里进行了简单的适配。所有在输入提示词的时候,最好是加入以json格式输出。这样代码可以拿来即用。
本文将详细介绍这款工具的功能实现,并提供完整的源码,让测试工程师轻松实现测试文档的智能化管理与分析。
功能特点
-
智能文档分类:
- 支持常见文本格式:
docx
、xlsx
、md
、txt
、pdf
。 - 使用
阿里云百炼的deepseek-r1
模型API推理,更加智能。 - 使用
NLTK
进行智能清洗,仅保留有效内容。 - 支持用户手动修正分类。
self.template_phrases = ["请参考以下格式", "本段用于描述", "请参照", "示意图","文档信息", "版本记录", "目 录", "运行维护", "终端设备","网络需求", "其他", "【注:以下内容,请做 标注】", "不涉及","【注:需求规格说明书经业务、开发确认后可形成定版需求,版本号统一为V1.0】","其他", "【注:以下内容,请做 标注】", "不涉及", "V1.0", "需求规格说明书","【注:描述本批处理涉及的计算公式,比如退保金计算公式,尽可能列举实际案例说明】"]
- 支持常见文本格式:
-
知识库目录选择与文件展示:
- 可通过下拉框选择知识库目录,本地的知识库需维护好,选取了文件后,会按预设的模板内容进行清洗,页眉、页脚及目录等信息也会被清除。
def clean_text(self, text):""" 文本清洗处理 """# 去除标点text = self.clean_headers_footers(text)cleaned_content = self.remove_template_phrases(text)return cleaned_content
- 联动展示所选目录下的所有文件。
- 支持文件单选、多选或全选。
效果如下图所示:
-
文件内容展示与编辑:
- 拼接多个文件内容并在文本框中展示。
- 提供输入框,供用户输入提示词,这里适配了json格式,所以可以在提示词中加入以json格式输出。
-
DeepSeek智能推理:
- 结合选取的文件内容和提示词,使用 DeepSeek 模型生成推理结果。
- 推理完成后结果进行展示。代码如下,需要注意的是需要更换代码里的api-key的值为自己的哦:
def generate_cases(self, content_param, prompt_param):# 初始化OpenAI客户端client = OpenAI(# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"api_key='sk-xxx', # todo 此处需更换base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")reasoning_content = "" # 定义完整思考过程answer_content = "" # 定义完整回复is_answering = False # 判断是否结束思考过程并开始回复# 创建聊天完成请求completion = client.chat.completions.create(model="deepseek-r1", # 此处以 deepseek-r1 为例,可按需更换模型名称messages=[{'role': 'user', 'content': f'文档内容: {content_param}, 提示词:{prompt_param}'}],stream=True,# 解除以下注释会在最后一个chunk返回Token使用量# stream_options={# "include_usage": True# })print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")for chunk in completion:# 如果chunk.choices为空,则打印usageif not chunk.choices:print("\nUsage:")print(chunk.usage)else:delta = chunk.choices[0].delta# 打印思考过程if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:print(delta.reasoning_content, end='', flush=True)reasoning_content += delta.reasoning_contentelse:# 开始回复if delta.content != "" and not is_answering:print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")is_answering = True# 打印回复过程print(delta.content, end='', flush=True)answer_content += delta.contentreturn answer_content
-
结果导出:
- 支持将推理结果导出为用户指定的文件格式(如
json
)。 - 用户可自定义文件命名。
- 支持将推理结果导出为用户指定的文件格式(如
- 美观大方的 GUI 界面:
- 使用 PyQt5 开发,布局简洁美观,符合大众审美。
保存的文件内容如下图所示:
总结
这款工具集智能推理和结果导出为一体,功能强大,界面美观,操作简洁,帮助测试开发工程师高效管理和分析测试文档。快来体验吧,让你的测试工作更智能!后续可在文档分类、内容清洗等方向持续优化。升级后的源码已上传云盘