45.RAG项目-03-RAG项目-md5工具函数开发

image.png

config_data.py


md5_path = "./md5.txt"

knowledge_base.py

'''
知识库
'''
import os
import config_data as config
import hashlib

def check_md5(md5_str: str):
    '''
    检查传入的md5字符串是否已经被处理过了
    return False(md5未处理过)
    return True(已经处理过,已有记录)
    '''
    if not os.path.exists(config.md5_path):
        # if进入表示文件不存在,那肯定没有处理过这个md5了
        open(config.md5_path, "w", encoding="utf-8").close() # 创建文件
        return False
    else:
        lines = open(config.md5_path, "r", encoding="utf-8").readlines() # 读取文件内容
        for line in lines:
            line = line.strip() # 移除行首尾的空格
            if line == md5_str: # 如果行内容等于传入的md5字符串
                return True
            else:
                return False

def save_md5(md5_str: str):
    '''
    保存文件内容的md5值到知识库
    '''
    with open(config.md5_path, "a", encoding="utf-8") as f: # 追加写入文件
        f.write(md5_str + "\n") # 写入md5值,每个md5值占一行

def get_string_md5(input_str: str, encoding="utf-8"):
    '''
    获取知识库中的字符串内容的md5值
    '''
    str_byte = input_str.encode(encoding) # 字符串编码为字节
    md5_str = hashlib.md5() # 创建md5对象
    md5_str.update(str_byte) # 更新md5对象
    md5_hex = md5_str.hexdigest()    # 获取md5值的十六进制表示
    return md5_hex # 返回md5值

class knowledgeBaseService(object):
    
    pass

if __name__ == "__main__":
    # test check_md5 and save_md5
    r1 = get_string_md5("任贤齐")
    r2 = get_string_md5("任贤齐")
    r3 = get_string_md5("任贤齐1")
    print(r1)
    print(r2)
    print(r3)

    save_md5("4490987f13fe3cebaa4da6ccd732e9e7")
    print(check_md5("4490987f13fe3cebaa4da6ccd732e9e7"))

4490987f13fe3cebaa4da6ccd732e9e7
4490987f13fe3cebaa4da6ccd732e9e7
50f2044ed74f0bdb171b6f6a6d058c07
True
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容