Shire 0.5 发布:构建数据安全 RAG,充分整合研发资产

news2024/9/21 0:33:22

 最近,我们发布了新版本的 Shire,在这个新的发布(Shire 0.5)里,你可以更好地融合本地研发资产,同时构建数据安全 RAG。在这次版本中,我们增加了:

  • 对 SonarQube 的 issue 支持。可以直接获取到当前文件的 SonarQube 问题列表等。

  • 增强了 ShireQL 的能力。增加了对 Git 的支持,可以直接对 Git 进行查询与分析。

  • 自定义 RAG 能力增强。增加了 reranking 函数,用于对检索到的信息进行重新排序。

  • 新增了 AI 数据安全保护函数: redact。可以对数据进行脱敏处理。

  • 自定义 .shireSecretPattern.yaml。用于定义自定义的敏感数据规则。

有了这些新能力,你可以快速、安全地构建自己的 AI 编码智能体。

开始之前,再让我们回顾一下 Shire 的基本能力:

Shire 是一个基于 IDE 的开源 AI 编码智能体语言,你可以用 Shire 创建轻量级编码任务、编码智能体。其 Prompt 即代码的实践方式,可以让你与团队 成员共享这些编排好的 AI 任务。

整合研发生态,融合数据资产

Shire 的核心能力在于通过 Shire 语言来抽象 IDE 的 API,同时利用 IDE 的生态(插件、工具等)来提供更多的能力。IDE 本身提供了大量的数据资产,如代码 、版本管理等,而其生成(如插件)则提供了更多的能力,如代码质量检查、代码生成等。

作为 AI 辅助研发的非常重要的一部分,我们需要整合这些生态资产、组织内部研发资产,以提供更好的 AI 能力,提升开发人员的效率。

结合 SonarQube 的代码质量检查与修复

a5cb922d06b226ba0af77a797177b876.jpeg

在先前版本中,你可以通过 $codeSmell 变量来获取当前文件的代码坏味道问题。在 0.5 版本中,我们增加了对 SonarQube 的支持, 你可以直接获取到当前文件的 SonarQube 问题列表等。

新功能要求你的 IDE 安装了 SonarQube 插件时,你就可以通过 Shire 与 SonarQube 进行交互。当前,Shire 支持两个变量:

  • sonarIssues,当前文件的 SonarQube 中的问题列表。

  • sonarResults,当前文件的 SonarQube 中的结果,含有问题的详细信息。

你就可以直接使用这两个变量,来进行代码质量检查与修复。示例如下:

修复如下的 Sonar 问题:
$sonarResults

输出示例如下:

修复如下的 Sonar 问题:
File: file:///Users/phodal/IdeaProjects/shire-demo/src/main/java/com/phodal/shire/demo/service/BlogService.java
  - MAJOR, (293,303): Remove this field injection and use constructor injection instead.
  - []

ShireQL 增强:Git 支持

b2d4061b1db3cfb4ddc5ed8a50ebd62a.png

ShireQL 是一个基于 IDE 的数据查询语言,它允许你查询当前文件的 AST(抽象语法树)、Git、依赖信息等。它在 Shire 中用于定义当前文件的上下文以及可以在当前文件上执行的操作。

在上一个版本中,ShireQL 原来只针对的是代码文件(PsiClass、 PsiMethod 等)。而在在这个版本中,我们增加了对 Git 的支持,并将其重新命名为 ShireQL。如下是一个简单的示例:

---
variables:
  "phodalCommits": {
    from {
        GitCommit commit, Date date
    }
    where {
        commit.authorName == "Phodal Huang" and commit.authorDate <= date.now()
    }
    select {
        commit.authorName, commit.authorEmail, commit.message
    }
  }
---
根据如下的信息,总结这个人的提交:
$phodalCommits

更详细的文档见:https://shire.phodal.com/shireql

构建数据安全的 RAG

91a7db39ec7ef2683132809b08e52d71.png

由于 Shire 的用户都是使用公开的模型,因此在处理数据时,我们需要保护数据的隐私。在这个版本中,我们增加了一些新的功能,用于保护数据的隐私。

使用 sed 函数保护数据

在新的版本中,我们优化了 sed 函数,增加了对正则表达式的支持。如下是一个简单的示例:

---
variables:
  "var2": /.*ple.shire/ { cat | sed("(?i)\b(sk-[a-zA-Z0-9]{20}T3BlbkFJ[a-zA-Z0-9]{20})(?:['|\"|\n|\r|\s|\x60|;]|${'$'})", "sk-***") }
---
Summary webpage: $var2

在这个例子中,我们定义了一个变量 var2,它的值是从所有 *.shire 文件中检索 openai key 的内容,并对其进行脱敏处理。而考虑到,有大量的类似 场景,所以我们添加了新的函数 redact

AI 数据安全保护函数: redact

数据安全保护函数(Data Guarding Functions)是用于进行对与模型交互的数据进行数据保护、去敏感化等操作的一种机制。

在 redact 函数中, 我们使用 db/pii-stable.yml 作为敏感数据的配置文件, 用于对数据进行脱敏处理。

普通变量使用示例:

---
variables:
  "var2": /.*ple.shire/ { cat | redact }
---

在这里,代码中类似于 086-1234567890 这样的手机吰信息,将会被脱敏为 "****"

详细见:https://shire.phodal.com/data-privacy/guarding-functions

自定义 .shireSecretPattern.yaml

除此,我们还在 Shire 中支持与 Secrets Patterns DB 相似的配置文件,用于对数据进行脱敏处理。你可以在项目中新建一个 .shireSecretPattern.yaml结尾的文件,用于定义自定义的敏感数据规则,如: Phodal.shireSecretPattern.yaml

在该文件中,你可以定义一些敏感数据的规则,如:

patterns:
  - pattern:
      name: Slack Token
      regex: "(xox[pborsa]-[0-9]{12}-[0-9]{12}-[0-9]{12}-[a-z0-9]{32})"
      confidence: high

随后,Shire 将会在处理数据时,自动对匹配到的数据进行脱敏处理。

其它更新

除了上述的更新外,我们还增加了一些其它的一些功能。

自定义 RAG 能力增强: reranking

在 RAG 函数中, 我们增加了 reranking 函数,用于对检索到的信息进行重新排序。不过,当前仅支持 lostInTheMiddle 模式,未来我们将添加更多的 适合于编码场景的 reranker

.shire 后缀推荐

如下图所示,当你在项目中创建一个 .shire 文件时,IDE 会判断是否存在 Shire 插件,如果没有则会提示你安装。

ca305083e82bce4e526056f28102f736.png

这样一来,你就拥有了一种更加简单的方式来与 IDE 进行交互。

总结

构建自定义 AI 编码智能体,是一个非常有趣的事情。通过 Shire,你可以更好地整合研发资产,构建数据安全的 RAG,以及更好地保护数据隐私。如果你有 任何问题,欢迎在 GitHub 上进行反馈与交流。

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

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

相关文章

1.反爬虫机制

一、IP 封锁 网站可以检测请求的IP地址&#xff0c;并封锁那些频繁请求的IP&#xff0c;使其无法访问网站。这是一种常见的反爬虫策略&#xff0c;用于防止单个IP地址对服务器造成过大的负载。 解决办法 &#xff1a; 使用代理IP池以避免IP封锁 // 待补充 二、请求头检测(Us…

2024百元学生党蓝牙耳机有哪些?甄选四款精品王炸机型推荐

近年来&#xff0c;随着手机的普及和音乐娱乐的盛行&#xff0c;蓝牙耳机成为越来越多人的选择。蓝牙耳机的优点在于无需使用线缆&#xff0c;方便携带&#xff0c;而且可以随时随地享受音乐或者通话。在市面上&#xff0c;有各种各样的蓝牙耳机可供选择&#xff0c;对于预算有…

Star-CCM+探针查看与创建

在实际应用工况中&#xff0c;数值计算结束后为了产看某个点的标量场或矢量场可以采用探针查看。而在软件中可以通过“&#xff0c;”、“。”快捷键进行创建与查看。两者的区别具体如下所示&#xff1a; 鼠标放在要查看部件的位置&#xff0c;同时点击键盘上的“。”键&#…

神经网络动画讲解 - 神经网络工作流程

神经网络工作流程 神经网络工作流程&#xff1a; 特征分解1&#xff08;手写数字->简单笔画组合&#xff09;、特征分解2&#xff08;简单笔画->最小笔画组合&#xff09;、特征识别1&#xff08;最小笔画组合->简单笔画&#xff09;、特征识别2&#xff08;简单笔画…

Java 入门指南:迭代器(Iterator)

迭代器 迭代器&#xff08;Iterator&#xff09; 是一种行为型设计模式&#xff0c;属于设计模式之一&#xff0c;迭代器模式提供了一种方法来顺序访问一个聚合对象&#xff08;如List、Set等&#xff09;中各个元素&#xff0c;而不需要暴露该对象的内部表示。 Iterator 对象…

攻防世界-web题型-6星难度汇总-个人wp

i-got-id-200 这一题很清楚的告诉了考点是什么&#xff0c;就是cgi相关的知识&#xff0c;不过我对这个不了解。。。也不会perl语言&#xff0c;先去网上看看这个东西吧&#xff0c;了解一下 看到一篇挺有意思的视频CGI&#xff08;通用网关接口&#xff09;_百度百科 看了这…

MediaTek 天玑9000 旗舰5G,都有哪些突破

天玑9000&#xff0c;是MTK 在2022发布的全新旗舰SOC , 采用台积电4nm制程和Armv9架构,八核CPU。 市场上采用天玑9000的手机有小米12Pro、小米Redmi K50 Pro、Vivo X80等。 今天我们看下这款soc更详细的一些特点介绍。 一、率先采用台积电 4nm 先进制程 业界率先采用台积电 4nm…

传统2D3D视觉分享

哈喽&#xff0c;大家好&#xff0c;本文主要是说明关于【视觉源码小铺】知识星球内的相关内容 视觉源码小铺都有什么内容 IVision拖拽平台&算法 星球内算法&#xff08;持续更新&#xff09;

滚雪球学Java(90):Java图形界面新篇章:Swing框架深度解析,真有点东西!

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE啦&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好习惯&#…

解决MySQL的PacketTooBigException异常问题

一、背景 在大数据量导入mysql的时候&#xff0c;提示错误Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large 原因是MySQL的max_allowed_packet设置最大允许接收的数据包过小引起的&#xff0c;默认的max_allowed_packet如果不设置&…

Stable Diffusion 使用详解(9)--- 艺术字及海报融入

目录 背景 方法一 利用controlNet lineart invert depth 提示词 效果 方法二 准备蒙版 绘制大型场景艺术字 controlnet Lora 模型 效果 PS 融入 背景 如果看过上一期你应该知道如何利用layer diffusion 制作场景动漫海报&#xff0c;其实掌握这个方法后&#xf…

DFS 算法:记忆化搜索

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 无 此系列更新频繁&#xff0c;求各位读者点赞 关…

视频号小店:微信生态下的新零售革命者

在数字化浪潮的席卷之下&#xff0c;微信视频号凭借其独特的社交基因和庞大的用户群落&#xff0c;正悄然崛起为新零售战场上的新晋强者。特别是视频号小店体系的创立&#xff0c;为商家打造了一个集商品展现、交易促进与营销策略部署于一体的综合运营平台&#xff0c;实现了业…

网络安全中的人工智能应用

1. 引言 随着网络攻击的复杂性和频率不断增加&#xff0c;传统的安全防护措施逐渐难以应对这些威胁。人工智能&#xff08;AI&#xff09;作为一种变革性的技术&#xff0c;正在逐步成为增强网络安全的重要工具。AI通过自动化、智能化的方式&#xff0c;可以有效提高威胁检测、…

【JAVA基础】多态

文章目录 多态向上转型练习题 多态 父类的引用指向子类的对象 public class A {public String name;public int age;public void run(){ //该run()方法被覆盖System.out.println("a跑的快");}public void eat(String name){System.out.println(name"吃的很多&…

从零到一,我的AI绘画赚钱之旅:准大一新生暑假自学成才,月入学费不是梦!

大家好&#xff0c;我是即将步入大学校园的准大一新生。在这个漫长的暑假里&#xff0c;我决定学习一门新技术&#xff0c;充实自己。在一次网上冲浪的过程中&#xff0c;我偶然发现了AI绘画这个神奇的世界。以下是我在暑假期间学习AI绘画的经历&#xff0c;以及我是如何通过它…

缓存之Tair

介绍 ​ 在Tair出现之前的很长一段时间里&#xff0c;像redis、memcache这些知名NoSql数据库是不支持分布式的&#xff0c;在这样的背景下&#xff0c;由淘宝网自主开发并在2010.6开源的一个高性能、高扩展、高可靠分布式缓存&#xff0c;类似map的key/value结构&#xff0c;在…

C#实现数据采集系统-数据反写(3)ModbusTcp写入数据模块开发

写入报文分析 ModbusTcp报文详细解析见 ModbusTCP协议报文解析 写入常用的四个功能码&#xff0c;线圈 05,15&#xff08;0x0F&#xff09;,寄存器06,16&#xff08;0x10&#xff09; 详细报文如下&#xff1a; //00 01 00 00 00 06 FF 05 00 01 FF 00 写单个线圈 //00 01 …

【人工智能】AI虚拟主播制作初体验:生成数字人到视频创作全流程

文章目录 &#x1f4af;AI虚拟主播&#x1f4af;使用AI绘画工具生成数字人借助GPT生成数字人所需的提示词方案一&#xff1a;使用Midjourney生成数字人方案二&#xff1a;使用TensAI生成数字人补充方案三&#xff1a;在D-ID内直接生成数字人 &#x1f4af;使用D-ID生成数字人视…

CS1.5快捷键

《黑神话悟空》玩不起&#xff0c;玩起了23年前的cs1.5 B11&#xff1a;USP(警察自带手枪&#xff09; B12&#xff1a;Glock18(匪徒自带手枪) B13&#xff1a;Desert Eagle&#xff08;沙漠之鹰&#xff09; B14&#xff1a;P-228 B15&#xff1a;Dual Berettas&#xff08;匪…