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

 最近,我们发布了新版本的 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 Tokenregex: "(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.rhkb.cn/news/407712.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从0到1构建视频汇聚生态:EasyCVR视频汇聚平台流媒体协议支持的前瞻性布局

TSINGSEE青犀EasyCVR视频汇聚平台是一款基于云-边-端一体化架构的视频融合AI智能分析平台&#xff0c;广泛应用于工地、仓储、工厂、社区、校园、楼宇等多个领域。平台凭借其强大的数据接入、处理、转码及分发能力&#xff0c;在视频监控领域展现出显著的技术优势和应用前景。本…

python项目在linux中的启动脚本(shell脚本)

背景&#xff1a; 在linux环境&#xff0c;使用shell脚本&#xff0c;实现对某个服务的启动、停止功能。 shell脚本的功能&#xff1a; 启动&#xff08;start&#xff09;&#xff1a;通过参数 start &#xff0c;实现启动服务。如果该服务已经启动&#xff0c;给出已经启动…

松下弧焊机器人维修 控制柜故障 连接线修复

一、Panasonic焊接机器人控制柜与机器人的接线 机器人的控制箱&#xff0c;一定要配对使用。松下焊接机器人控制柜已经记忆了机器人的绝对原点(机器人位置控制原点)。 二、编码器电缆 (圆形连接器) 1. 接口的插头插座要注意&#xff0c;插头要插到插座中。 2. 用一手握住电缆&a…

《黑神话:悟空》发售后快手游戏笔记本电脑GMV日环比增长40%

一、美联储9月降息预期升温 昨夜美股三大股指在震荡中收涨&#xff0c;市场情绪受到美联储7月会议纪要提振。纪要显示&#xff0c;美联储官员普遍倾向于9月降息&#xff0c;多位官员认为当前利率水平已对经济构成限制。此消息推动美股上涨&#xff0c;并带动金价创新高&#xf…

鸿蒙HarmonyOS编程开发:TLS单向认证通讯示例

1.TLS简介 TLS&#xff08;Transport Layer Security&#xff09;协议的前身是SSL&#xff08;Secure Socket Layer&#xff09;安全套接层协议&#xff0c;由Netscape公司于1994年提出&#xff0c;是一套网络通信安全协议。IETF&#xff08;The Internet Engineering Task Fo…

前端开发中的大屏布局方案:使用 rem 单位与动态设置 html 的 font-size

使用 rem 单位与动态设置 html 的 font-size 前言 随着设备尺寸的多样化&#xff0c;网页需要能够在不同大小的屏幕上提供良好的用户体验。传统的布局方式&#xff08;如使用 px&#xff09;在不同分辨率下可能会导致布局失真。为了解决这个问题&#xff0c;我们可以通过动态…

【UE5】基于摄像机距离逐渐剔除角色

效果 步骤 1. 新建一个工程&#xff0c;在内容浏览器中添加第三人称游戏内容包 2. 找到第三人称角色的材质实例“MI_Quinn_01”并打开 找到材质实例的父项材质“M_Mannequin” 打开材质“M_Mannequin” 在材质图表中添加如下节点 此时运行效果如文章开头所示。 参考视频&#…

flutter 中 ssl 双向证书校验

SSL 证书&#xff1a; 在处理 https 请求的时候&#xff0c;通常可以使用 中间人攻击的方式 获取 https 请求以及响应参数。应为通常我们是 SSL 单向认证&#xff0c;服务器并没有验证我们的客户端的证书。为了防止这种中间人攻击的情况。我么可以通过 ssl 双向认证的方式。即…

创意无限,尽在掌握:热门视频剪辑软件一览

我们记录生活、分享故事、传播信息用视频的频率越来越高了。而这些视频往往都是通过剪辑之后才能展示出当前的效果。那这次我们就来探索剪辑视频的时候都会用到什么工具吧。 1.福昕视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这是一款专为追求高效与创意…

【React】为什么Hooks不能出现在判断中

前言 在 React 中&#xff0c;Hooks 不能写在条件语句中&#xff0c;如下面这段代码点击button后则会报错。 import { useEffect, useState } from "react"export default () > {const [count, setCount] useState(0)if (count > 0) {useEffect(() > {co…

2-74 基于matlab的图像k-means聚类GUI

基于matlab的图像k-means聚类GUI&#xff0c;可对彩色图像进行Kmeans和meanshift进行聚类分析&#xff0c;生成最后的聚类图像以及聚类中心的迭代轨迹。程序已调通&#xff0c;可直接运行。 2-74 matlab GUI - 小红书 (xiaohongshu.com)

iOS 通知

iOS 通知分为本地推送和远程推送两类 一. 本地推送使用流程 1. 注册通知 //请求通知权限 UNUserNotificationCenter *center [UNUserNotificationCenter currentNotificationCenter];[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizati…

Java方法的使用

目录 一&#xff1a;方法概念及使用 1.1什么是方法 1.2 方法定义 1.3 方法调用的执行过程 1.4 实参和形参的关系(重要) 1.5 没有返回值的方法 二&#xff1a;方法重载 2.1 为什么需要方法重载 2.2 方法重载概念 2.3 方法签名 三. 递归 3.1递归的概念 3.2 递归执行过…

Unity 资源 之 Photon Inventory 2 (Game Creator 2)

免费获取资源&#xff1a; 有2种方式可免费获取资源&#xff1a; 在后台回复**“UnityAssetStore**“ 或 ”Unity资源”。在Unity官方地址&#xff1a;https://assetstore.unity.com/publisher-sale &#xff0c;兑换码&#xff1a;NINJUTSUGAMES 【本周限定】 关注我每周&a…

配置PXE预启动执行环境:Kickstart自动化无人值守安装

文章目录 实现 Kickstart 无人值守安装1. 安装Kickstart和配置应答文件&#xff08;图形化界面&#xff09;2. 配置 PXE 菜单支持 Kickstart 无人值守安装3. 验证 Kickstart 无人值守安装4. 拓展&#xff1a;命令行配置应答文件&#xff08;命令行界面&#xff09; 实现 Kickst…

校友会系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;校友管理&#xff0c;生活模块管理&#xff0c;兼职信息管理&#xff0c;表白墙管理&#xff0c;我的收藏管理&#xff0c;校友论坛&#xff0c;系统管理 微信端账号功能包括&…

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全&#xff0c;实现自己的“黑客梦”。文章的宗旨是&#xff1a; 1.指出一些自学的误区 2.提供客观可行的学习表 3.推荐我认为适合小白学习的资源.大佬绕道哈&#xff01; →点击获取网络安全资料攻略← 一、自学…

【图形学】TA之路-基于Unity Shader编程之初体验

学习shader之前你必须知道的事情&#xff1a; Unity开发引擎、Direct3D、Shader他们之间的关系 Direct3D 是一个底层图形 API&#xff0c;它直接与 GPU &#xff08;显卡&#xff09;交互&#xff0c;提供了访问硬件加速功能的接口。Unity 开发引擎&#xff0c;它封装了很多底…

Python酷库之旅-第三方库Pandas(094)

目录 一、用法精讲 401、pandas.Series.to_string方法 401-1、语法 401-2、参数 401-3、功能 401-4、返回值 401-5、说明 401-6、用法 401-6-1、数据准备 401-6-2、代码示例 401-6-3、结果输出 402、pandas.Series.to_clipboard方法 402-1、语法 402-2、参数 40…

⼆⼿⻋交易系统架构分析

二手车交易系统架构分析涉及多个层面&#xff0c;包括技术选型、系统模块、数据库设计、用户界面及安全性等。以下是对二手车交易系统架构的综合分析&#xff1a; 技术选型&#xff1a;系统通常采用B/S架构模式&#xff0c;前后端分离&#xff0c;前端使用微信小程序开发工具&…