数据安全
保障您的源代码安全和本地开发环境安全对我们来说至关重要,本节详细描述了文心快码如何保障您的信息安全。如果您在使用文心快码的过程中发现任何与安全相关的问题,请随时通过 comate@baidu.com 与我们联系。
虽然我们已经有几家大型企业信任文心快码,如顺丰、同程、喜马拉雅等。但请注意,我们仍在发展产品和改善安全状况的过程中。如果您在高度敏感的环境中工作,建议您使用文心快码私有化版(点击进入专属解决方案通道)。我们希望此页面能让您了解我们在安全保障方面的进展,并帮助您进行适当的风险评估。
1、认证和第三方评估
文心快码已通过信通院的信息安全性认证,同时也通过了SOC 3、SOC 2 Type 2、SOC 1 Type 2的认证。不会存储您的任何源码信息,更不会用您的数据进行训练。您可以向 comate@baidu.com 发送邮件获取认证报告。
2、基础设施安全
我们依赖于百度智能云构建了完善的基础设施,以下详细说明用到了哪些组件以及如何保障数据安全。请注意,您的本地代码数据会碎片化的发送到我们的服务器以便支持文心快码的所有能力,但仅作向量化使用,不会存储您的任何源码信息。
- 百度智能云:我们的基础设施全部托管在百度智能云,都在中国境内部署,并且根据开发者地域的不同请求可在不同的区域(Region)进行自动分发,以提供更快速的响应。
- 基础模型:文心快码所使用的模型全部托管在 百度智能云千帆平台,包含文心一言4.0、文心一言3.5、DeepSeek等一系列模型,提供了完备的权限校验机制和传输链路防护机制。
- 向量存储:我们使用PGVector存储代码向量数据,该数据经过文件名混淆和路径混淆,并且存储的数据只有向量数据(一个1024维度的矩阵)。只有开发者本地才可以对此数据进行解密,即将向量数据映射为代码数据。
- 百度搜索:当您通过 「#」选择网络搜索时,我们将调用百度搜索的API获取互联网上的实时信息。
- MongoDB:针对企业用户,我们在MongoDB中记录您的企业使用文心快码时的采纳数据,用于计算采纳率、AI代码生成占比等,该数据仅是一个「数字」,不会存储任何代码。如果企业不需要统计该信息,可以选择隐私模式并进行关闭。
- K8S:我们基于百度智能云的K8S(CCE)部署整个服务,并且基于Prometheus来监控集群状态,基于ELK体系记录日志,日志中不包含任何代码数据。
- ModelBuilder:我们基于千帆大模型服务与开发平台(ModelBuildr)用于训练一些自定义模型,训练的数据全部来自合成数据和互联网公开数据。
- 百度统计:我们使用百度统计在文心快码的官网收集用户点击数据,不存储任何用户身份信息,仅用于用户行为分析以帮助我们改善产品体验。
- 如流:如流是我们的内部通信工具,我们可能会在内部聊天中发送一些错误日志用于代码调试和问题排查。
- 如流知识库:如流知识库是我们内部的文档协作工具,我们可能会在内部协作中通过知识库记录一些错误日志用于代码调试和问题排查。
我们以最低权限为基础为团队成员分配基础设施访问权限。我们在百度智能云开启了多因素认证,以保证团队成员账号密码不会存在泄漏风向。
3、客户端安全
文心快码是插件形态,可以在VSCode、JetBrains、Visual Studio、Xcode、Eclipse等多个IDE使用,完全遵守各个IDE的隐私协议。在使用中,文心快码将向以下域名发出请求,以便与我们的后端服务进行通信。如果您的公司支持代理,请将这些域列入白名单,以确保 文心快码 正常工作。
- comate.baidu.com:针对用户认证、代码索引构建、代码问答、代码补全等所有请求均通过此域名。 同时,为了让开发者有更好的产品体验,我们在客户端采用WebView的模式,同时在开发者本地环境启动一个进程(Comate Kernel),该进程负责IDE与服务端的请求中转。如果该进程占用您较多的内存或CPU,请联系我们 comate@baidu.com ,我们将提供问题排查服务以确保您的优秀体验。
4、远程请求安全
当您在聊天框提问时会发出请求、当您在编码区触发Tab时会发出请求、当您手动触发构建代码索引时会发出请求,所有的请求都被加密,完全基于HTTPS。当发起请求时,请求的内容通常包括您最近查看的文件、对话历史记录、光标附近上下文,最终会组装到一起发给模型。在整个过程,我们不会记录任何代码数据。同时,您拥有文心快码生成的所有代码权益。
5、代码库索引安全
文心快码会您对代码库进行语义索引,这使它能够回答所有代码上下文中的问题,并通过引用现有实现来编写更好的代码。默认情况下,代码库索引处于启用状态。我们的代码库索引功能的工作原理如下:
- 打开一个项目后,它会扫描您在IDE中打开的文件夹,只有Git项目才会被索引,由 '.gitignore' 指定的文件和子目录将被忽略。然后,我们会计算所有文件的Hash,以确定哪些文件是变化的,并增量构建索引。向服务端传输文件时全部是碎片化的,基于Tree-Sitter进行语法树解析后切割,因此服务端接收到的代码片段都是「不完整」的,这进一步保障了代码逻辑安全。一旦向量建立完毕,碎片化的代码也会被清理。
- 在我们的服务器上,我们对碎片化的代码建立向量,并将向量存储在 PGVector 中。为了允许按文件路径过滤向量搜索结果,我们为每个向量存储一个混淆的相对文件路径,以及 Chunk 对应的行范围。我们还将向量存储在Redis的缓存中,按块的哈希值进行索引,以确保再次为同一代码库编制索引的速度要快得多(这对用户体验特别有用)。
- 在推理时,我们通过用户的问题计算一个向量,让 PGVector 进行最近邻搜索,将混淆后的文件路径和行范围发送回客户端,并在本地客户端上读取这些文件块。然后,我们将这些 Chunk 发送回服务器以回答用户的问题。这意味着我们的服务器或 PGVector 中没有存储任何源码。
6、账户安全
我们完全遵循百度账号协议,不会存储您的任何密码、手机号,不会明文存储您的邮箱。当您注销您的账号时,我们保证在 30 天内完全删除您的数据(我们会立即删除数据,但我们的一些数据库和云存储的备份时间不超过 30 天)。