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

news2025/2/23 4:09:34

前言

测试工程师在管理测试资产时,需要面对多种文档格式、大量文件分类及知识库的构建任务。为了解决这些问题,我们升级了 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 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纯手工搭建整套CI/CD流水线指南

目录 一、前言 二、环境准备 1、服务器开荒(192.168.1.200) 2、离线资源清单(提前用U盘拷好) 三、硬核安装:比拧螺丝还细的步骤 Step1:搭建GitLab(注意!这是只内存饕餮&#xf…

智能硬件新时代,EasyRTC开启物联音视频新纪元

在万物互联的时代浪潮中,智能硬件正以前所未有的速度融入我们的生活,从智能家居的便捷控制,到智能穿戴设备的健康监测,再到工业物联网的高效管理,智能硬件的应用场景不断拓展。而在这个智能硬件蓬勃发展的背后&#xf…

Rust编程语言入门教程(八)所有权 Stack vs Heap

Rust 系列 🎀Rust编程语言入门教程(一)安装Rust🚪 🎀Rust编程语言入门教程(二)hello_world🚪 🎀Rust编程语言入门教程(三) Hello Cargo&#x1f…

交易所开发:数字市场的核心动力

数字资产交易所作为连接用户与市场的核心枢纽,已成为推动数字经济发展的关键引擎。其开发不仅需要技术创新,还需兼顾用户体验、合规安全与生态构建,以下是交易所开发的核心要素与实践路径分析: 一、交易所的核心定位与技术架构…

Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?

问题描述 今天使用Jmeter完成压测执行,然后使用命令将jtl文件转换成html报告时,遇到了报错! 大致就是说jmeter里定义了一个jmeter.save.saveservice.timestamp_format=ms的时间格式,但是jtl文件中的时间格式不是标准的这个ms格式,导致无法正常解析。对于这个问题,有如下…

Navicat17详细安装教程(附最新版本安装包和补丁)2025最详细图文教程安装手册

目录 前言:为什么选择Navicat 17? 一、下载Navicat17安装包 二、安装Navicat 1.运行安装程序 2.启动安装 3.同意“协议” 4.设置安装位置 5.创建桌面图标 6.开始安装 7.安装完成 三、安装补丁 1.解押补丁包 2.在解压后的补丁包目录下找到“w…

一文详解U盘启动Legacy/UEFI方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理,以及面对一些问题时的解决思路,故对以前的方法进行原理上的解释,主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导,我们可以看一下微pe制作的启动盘&#…

LeetCode 热题 100_搜索二维矩阵(64_74_中等_C++)(二分查找)(暴力破解法;Z字形查找;一次二分查找)

LeetCode 热题 100_搜索二维矩阵(64_74) 题目描述:输入输出样例:题解:解题思路:思路一(暴力破解法):思路二(Z字形查找):思路三&#x…

学习量化交易的环境安装记录

1、安装anaconda 因为使用python,需要安装anaconda,具体是下面的官方地址,根据自己需要下载相应的版本 https://www.anaconda.com/download 运行上面下载的文件,安装anaconda 可以根据自己需要安装到相应的盘上面 同时环境变量…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 1

第01章_Linux下MySQL的安装与使用 首先在vmware中下载centos7,实际上8更好一点,不过centos已经是时代的眼泪了,我之前已经教过了,不过是忘了,所以重新说一遍,看文档即可 2.开机前修改mac地址 &#xff0…

基于AVue的二次封装:快速构建后台管理系统的CRUD方案

基于AVue的二次封装:快速构建后台管理系统的CRUD方案 在开发后台管理系统时,表格是常见的组件之一。然而,使用原生的Element Plus实现CRUD(增删改查)功能往往需要编写大量重复代码,过程繁琐。即使借助类似…

第6章:基于LangChain如何开发Agents,附带客户支持智能体示例

本文主要介绍了 LangChain4j 中的 Agent(代理) 概念,以及如何使用 LangChain4j 构建代理系统,重点提供了一个客户支持系统的智能体样例 代理(Agents)| LangChain4j 注意: 请注意,“A…

传统的自动化行业的触摸屏和上位机,PLC是否会被取代?

传统的自动化行业的触摸屏和上位机是否会被取代? 在工业自动化领域,触摸屏和上位机长期扮演着核心角色,尤其在污水处理、化工生产等场景中,它们通过实时数据采集、逻辑控制、报警联动等功能,保障了生产设备的稳定运行…

智能合约的部署

https://blog.csdn.net/qq_40261606/article/details/123249473 编译 点击图中的 “Compile 1_Storage.sol” 存和取一个数的合约&#xff0c;remix自带 pragma solidity >0.8.2 <0.9.0; /*** title Storage* dev Store & retrieve value in a variable* custom:d…

word$deepseep

1、进入官网地址。 DeepSeek 2、进入DeepSeek的API文档 3、点击DeepSeek开放平台左侧的“API Keys”, 再点击“创建API Key” 4、在弹出的对话框中&#xff0c;输入自己的API Key名称&#xff0c;点击创建。 sk-0385cad5e19346a0a4ac8b7f0d7be428 5、打开Word文档。 6、Word找…

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用&#xff0c;知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统&#xff0c;支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

如何为自己的 PDF 文件添加密码?在线加密 PDF 文件其实更简单

随着信息泄露和数据安全问题的日益突出&#xff0c;保护敏感信息变得尤为重要。加密 PDF 文件是一种有效的手段&#xff0c;可以确保只有授权用户才能访问或修改文档内容。本文将详细介绍如何使用 CleverPDF 在线工具为你的 PDF 文件添加密码保护&#xff0c;确保其安全性。 为…

华为昇腾910b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…

hive—常用的函数整理

1、size(split(...))函数用于计算分割后字符串数组的长度 实例1&#xff09;&#xff1a;由客户编号列表计算客户编号个数 --数据准备 with tmp_test01 as ( select tag074445270 tag_id,202501busi_mon , 012399931003,012399931000 index_val union all select tag07444527…

Unity Mirror 多房间匹配

文章目录 一 、一些唠叨二 、案例位置三、多房间匹配代码解析四、关于MatchInterestManagement五、总结 一 、一些唠叨 最近使用Mirror开发了一款多人同时在线的肉鸽塔防游戏,其目的是巩固一下Mirror这个插件的熟练度,另一方面是想和身边的朋友一起玩一下自己开发的游戏. 但是…