You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Copyleaks Python SDK创建并搜索仓库?文件相似度对比方案咨询

用Copyleaks Python SDK实现文件相似度对比及仓库搜索

一、SearchRepository类的正确使用

你看到的SearchRepository是Copyleaks SDK内置的配置类,无需自行声明,它用于指定扫描时要搜索的仓库规则。完整使用流程如下:

  1. SDK初始化与认证
    先通过Copyleaks账号的邮箱和API密钥完成身份验证:

    from copyleaks import CopyleaksClient, AuthToken
    from copyleaks.models import ScanProperties, Scanning, SearchRepository
    
    # 替换为你的Copyleaks账号信息
    email = "你的Copyleaks邮箱"
    api_key = "你的Copyleaks API密钥"
    
    auth_token = AuthToken(email, api_key)
    client = CopyleaksClient(auth_token)
    
  2. 配置仓库搜索参数
    示例代码里的方法是用来设置仓库的扫描范围,其中ID_FETCHED_DASHBOARD是你在Copyleaks后台创建仓库后获得的唯一ID:

    # 初始化仓库搜索配置实例
    repo = SearchRepository()
    # 开启扫描自己提交到Copyleaks的内容
    repo.set_include_my_submissions(True)
    # 开启扫描其他用户公开的提交内容
    repo.set_include_others_submissions(True)
    # 指定目标仓库ID
    repo.set_id("你的仓库ID")
    
    # 将仓库配置绑定到扫描属性中
    scan_properties = ScanProperties()
    scan_properties.set_scanning(Scanning().set_repositories(repo))
    
  3. 发起文件扫描请求
    配置完成后,即可上传文件发起相似度扫描:

    # 替换为你要扫描的文件路径
    file_path = "本地文件路径"
    # 发起扫描并获取扫描ID,用于后续查询结果
    scan_id = client.create_file_scan(scan_properties, file_path)
    
  4. 获取并处理扫描结果
    扫描结束后,通过扫描ID调取对比结果:

    scan_result = client.get_scan_results(scan_id)
    # 遍历结果提取匹配信息
    for match in scan_result:
        print(f"匹配来源: {match.source.name}, 相似度: {match.score}%")
    

二、创建Copyleaks仓库的步骤

要使用仓库搜索功能,需先在Copyleaks后台创建仓库:

  • 登录Copyleaks控制台,进入「Repositories」页面
  • 点击「Create Repository」,设置仓库名称与权限(私有/公开)
  • 创建完成后,复制页面显示的仓库ID,填入代码中的对应位置

三、更优实现思路

如果你的需求是对比多个本地文件的相似度,可结合以下方案优化:

  • 批量扫描:将多个文件打包为ZIP包,使用create_zip_scan方法一次性上传,减少API调用次数
  • 本地预筛选:先用Python内置的difflib做初步文本对比,将疑似重复的文件再提交给Copyleaks做深度检测,节省API费用
  • 结果缓存:将已扫描的文件结果存储到本地数据库,避免重复扫描相同内容

内容的提问来源于stack exchange,提问作者MagentaPink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:49:54