DeepSeek智能测试知识库助手PRO版:多格式支持+性能优化

前言

测试工程师在管理测试资产时,需要面对多种文档格式、大量文件分类及知识库的构建任务。为了解决这些问题,我们升级了 DeepSeek智能测试知识库助手,不仅支持更多文档格式,还加入了 多线程并发处理可扩展格式支持,大幅提升处理性能和灵活性。

主要功能亮点:

  1. 多格式支持:扩展支持 .md.csv 文件,兼容 docxpdftxtxlsx 等常见类型。
  2. 多线程并发处理:利用多线程加速文件处理,以应对大文件或批量文件的高效分类和存储。
  3. 智能清洗与分词:清理无用内容、提取高价值文本并分词,为 DeepSeek 提供更优质的输入。
  4. DeepSeek分类接口:结合 AI 模型精准分类,自动归档到知识库。
  5. 结构化存储:处理后的内容以 JSON 格式存储,便于后续扩展和检索。

知识库层级设计

与之前版本一致,知识库结构继续按 类型项目模块 分类,支持扩展到更多类别:

知识库/
├── 测试策略和计划/
│   ├── 测试策略.json
│   ├── 测试计划.json
├── 测试用例和脚本/
│   ├── 登录模块用例.json
│   ├── 自动化脚本.json
├── 测试工具和框架/
│   ├── 工具指南.json
│   ├── 框架文档.json
├── 缺陷管理/
│   ├── 缺陷报告模板.json
│   ├── 缺陷跟踪.json
├── 测试方法和技术/
├── 版本控制和发布管理/
├── 学习资源和培训材料/
├── 常见问题和解答/
└── 参考文档/

升级实现方案

1. 支持更多文档格式

扩展文档内容提取支持

扩展支持 .md(Markdown)和 .csv(表格文件)格式,统一处理接口,增加灵活性。

import pandas as pd
from PyPDF2 import PdfReader
from docx import Document

def extract_text(file_path):
    """
    根据文件类型提取内容
    :param file_path: 文件路径
    :return: 文本内容
    """
    ext = file_path.split(".")[-1].lower()
    if ext == "txt":
        with open(file_path, "r", encoding="utf-8") as f:
            return f.read()
    elif ext == "docx":
        return "\n".join([paragraph.text for paragraph in Document(file_path).paragraphs])
    elif ext == "pdf":
        reader = PdfReader(file_path)
        return "\n".join([page.extract_text() for page in reader.pages])
    elif ext == "xlsx":
        df = pd.read_excel(file_path)
        return df.to_csv(index=False)  # 转换为 CSV 格式文本
    elif ext == "md":
        with open(file_path, "r", encoding="utf-8") as f:
            return f.read()
    elif ext == "csv":
        df = pd.read_csv(file_path)
        return df.to_csv(index=False)
    else:
        return "Unsupported file format."

2. 文档清洗和分词

智能清洗代码实现

使用正则表达式去除无关内容(如页眉页脚、空行、多余标点等),并对文本内容进行分词处理。此处需将NLTK对应的包放置在指定位置。

获取位置:

import nltk
nltk.find('.')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件下载路径:

https://github.com/nltk/nltk_data/tree/gh-pages/packages/tokenizers

已上传云盘,也可联系获取云盘资源~

import re
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import nltk

# 下载 NLTK 数据(首次运行时需要)
nltk.download("punkt")
nltk.download("stopwords")

def clean_and_tokenize(text):
    """
    清洗文本并进行分词
    :param text: 原始文本
    :return: 清洗后的文本和分词结果
    """
    # 清洗文本
    cleaned_text = re.sub(r"\s+", " ", text)  # 去除多余空格
    cleaned_text = re.sub(r"[^\w\s,。!?:;、]", "", cleaned_text)  # 保留常见标点和文字
    cleaned_text = cleaned_text.strip()

    # 分词处理
    stop_words = set(stopwords.words("english") + stopwords.words("chinese"))  # 停用词
    tokens = [word for word in word_tokenize(cleaned_text) if word not in stop_words]

    return cleaned_text, tokens

3. 并发处理优化

多线程实现

利用 Python 的 concurrent.futures 模块,实现文件的并发处理,提升性能。

from concurrent.futures import ThreadPoolExecutor

def process_single_file(file_path, knowledge_base_dir="知识库/"):
    """
    处理单个文件:清洗、分类、存储
    :param file_path: 文件路径
    :param knowledge_base_dir: 知识库根目录
    """
    try:
        # 提取内容
        content 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973577.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

宝塔面板开始ssl后,使用域名访问不了后台管理

宝塔面板后台开启ssl访问后,用的证书是其他第三方颁发的证书 再使用 域名/xxx 的形式:https://域名:xxx/xxx 访问后台,结果出现如下,不管使用 http 还是 https 的路径访问都进不后台管理 这个时候可以使用 https://ip/xxx 的方式来…

机器学习_12 逻辑回归知识点总结

逻辑回归是机器学习中一种重要的分类算法,广泛应用于二分类和多分类问题。它不仅能够预测分类结果,还能提供每个类别的概率估计。今天,我们就来深入探讨逻辑回归的原理、实现和应用。 一、逻辑回归的基本概念 1.1 逻辑回归与线性回归的区别…

AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践

前言 自2022年末ChatGPT的问世,大语言模型(LLM)技术引发全球关注。在大模型技术落地的最佳实践中,智能体(Agent)架构显现出巨大潜力,成为业界的普遍共识,各大公司也纷纷启动Agent技…

【工具篇】【深度解析 DeepAI 工具:开启 AI 应用新体验】

一、DeepAI 基本信息 嘿,咱先来说说 DeepAI 这工具到底是啥。DeepAI 是一个综合性的人工智能平台,就像是一个装满各种 AI 魔法的百宝箱。它把好多先进的人工智能技术整合到一起,让咱们普通人也能轻松用上这些高大上的 AI 功能。 这个平台背后有一群超厉害的技术人员,他们…

C语言之typedef

目录 前言 一、基本数据类型定义 二、作用 自带阅读 封装复杂类型的描述过程 三、指针类型定义 ​ 四、函数类型定义 总结 前言 typedef是C语言中用来为已有数据类型取别名的关键字。通过使用typedef关键字,可以方便地为数据类型定义新的名称,提高代码的…

如何在 SpringBoot 项目使用 Redis 的 Pipeline 功能

本文是博主在批量存储聊天中用户状态和登陆信息到 Redis 缓存中时,使用到了 Pipeline 功能,并对此做出了整理。 一、Redis Pipeline 是什么 Redis 的 Pipeline 功能可以显著提升 Redis 操作的性能,性能提升的原因在于可以批量执行命令。当我…

【HBase】HBaseJMX 接口监控信息实现钉钉告警

目录 一、JMX 简介 二、JMX监控信息钉钉告警实现 一、JMX 简介 官网:Apache HBase ™ Reference Guide JMX (Java管理扩展)提供了内置的工具,使您能够监视和管理Java VM。要启用远程系统的监视和管理,需要在启动Java…

鸿蒙开发环境搭建-入门篇

本文章讲述如何搭建鸿蒙应用开发环境:新建工程、虚拟机运行、真机调试等。 开发工具: DevEco Studio 5.0.3.906 os系统: mac 参考文档:https://juejin.cn/post/7356143704699699227 官网鸿蒙应用开发学习文档:https://developer.huawei.com/c…

[OD E 100] 生成哈夫曼树

题目 题目描述 给定长度为 n 的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于 1 。请完成一个函数,根据输入的数字数组,生成哈夫曼树,并将哈夫曼树按照中序遍历输出。 为了保证输出的二…

Linux-ubuntu系统移植之Uboot启动流程

Linux-ubuntu系统移植之Uboot启动流程 一,Uboot启动流程1.Uboot的两阶段1.1.第一阶段1.11.硬件初始化1.12.复制 U-Boot 到 RAM1.13.跳转到第二阶段 1.2.第二阶段1.21.C 语言环境初始化1.22. 硬件设备初始化1.23. 加载环境变量1.24. 显示启动信息1.25. 等待用户输入&…

ElasticSearch公共方法封装

业务场景 1、RestClientBuilder初始化(同时支持单机与集群) 2、发送ES查询请求公共方法封装(支持sql、kql、代理访问、集群访问、鉴权支持) 3、判断ES索引是否存在(/_cat/indices/${indexName}) 4、判断ES…

vertical-align

属性名: vertical - align 。 作用:用于指定 同一行元素之间 ,或 表格单元格 内文字的 垂直对齐方式 。 常用值: 1. baseline (默认值):使元素的基线与父元素的基线对齐。 2. top …

Markdown 与富文本语法对照全解析

原文:Markdown 与富文本语法对照全解析 | w3cschool笔记 Markdown 和富文本是两种广泛应用的文本格式。Markdown 以简洁易读的语法著称,而富文本则凭借其丰富的样式和强大的功能深受用户喜爱。本文将对 Markdown 和富文本的语法进行详细对照&#xff0c…

基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)

文章目录 基于Django快递物流管理可视化分析系统(完整系统源码数据库详细开发文档万字详细论文答辩PPT详细部署教程等资料)一、项目概述二、项目说明三、研究意义四、系统设计技术架构 五、功能实现六、完整系统源码数据库详细开发文档万字详细论文答辩P…

vmvare kali如何配置桥接模式进行上网

注意点:虚拟机可以PING通物理机,但是PING不通其他的网站。经过收集资料,得知由于是校园网连接,所以DHCP只能分配一个授权的IP地址给连接的主机,由于KALI是桥接物理机,物理机已经获得了这个授权的IP,所以导致桥接的虚拟机无法上网。所以不是因为配置的有问题,而是网络的…

【数据挖掘】--算法

【数据挖掘】--算法 目录:1. 缺失值和数值属性处理1缺失值处理: 2. 用于文档分类的朴素贝叶斯3. 分治法:建立决策树4. 覆盖算法建立规则5. 挖掘关联规则6. 线性模型有效寻找最近邻暴力搜索(Brute-Force Search)kd树&am…

【数据库系统概论】第6章 (三)数据依赖的公理系统

推理规则 定理 函数依赖的其他五条推理规则。 (1) A4(合并性规则):{X→Y,X→Z}| X→YZ。 (2) A5(分解性规则):{X→Y,Z  Y}| X→Z …

1.22作业

1 Web-php-unserialize __construct()与$file、__destruct() __wakeup()检查 先绕过wakeup函数: O:4:"Demo":2:{s:10:"Demofile";s:8:"fl4g.php";}1.PHP序列化的时候对public protected private变量的处理方式是不同的 public无标…

IDEA + 通义灵码AI程序员:快速构建DDD后端工程模板

作者:陈荣健 IDEA 通义灵码AI程序员:快速构建DDD后端工程模板 在软件开发过程中,一个清晰、可维护、可扩展的架构至关重要。领域驱动设计 (DDD) 是一种软件开发方法,它强调将软件模型与业务领域紧密结合,从而构建更…

什么是矩阵账号?如何高效运营tiktok矩阵账号

‍‌​​‌‌​‌​‍‌​​​‌‌​​‍‌​​​‌​‌​‍‌​​‌​​‌​‍‌​‌‌​‌‌‌‍‌​‌​‌​​​‍‌​​‌​‌‌​‍‌​​​​‌‌​‍‌​‌​​‌‌‌‍‌​​‌‌​‌​‍‌​‌​​‌‌‌‍‌​‌‌‌​​‌‍‌‌​​‌‌‌​‍‌‌​​‌‌​​‍‌…