使用 IBM watsonx.ai Studio 索引代码库

watsonx Code Assistant 标准计划

您可以使用 IBM watsonx.ai Studio 对代码库进行索引,以实现检索增强生成 (RAG)。

准备工作

  • 在运行笔记本之前,在 IBM Cloud 上配置 Milvus 或 Elasticsearch DB 实例。
  • 提供 watsonx.ai Studio 实例来运行笔记本。 要创建 watsonx.ai Studio 实例,请参阅 watsonx.ai Studio 目录
  • 确保您拥有访问 watsonx Code Assistant 的 API 密钥,以便为代码中的函数生成解释。 解释与代码一起编入索引,以获得更好的搜索结果。 更多信息,请参阅 创建 IBM Cloud API 密钥

规划您的索引

使用 RAG 时,有效的索引对于优化 watsonx Code Assistant 的性能至关重要。 为资源库或文件编制索引时要考虑以下因素:

  • 确保磁盘存储空间是索引内容大小的两倍。

  • 在重复使用现有代码生成新代码、查找特定功能的实现方法、回答与代码库相关的操作问题时,索引代码库。 您可以包含主代码项目及其依赖项,如 API 实现。

  • 如果您需要 watsonx Code Assistant 来回复基于这些文档的查询,可对产品或项目文档、技术指南和设计文档等文档库进行索引。

  • 不要为很少使用的代码库或文档编制索引,以减少存储空间的使用,并最大限度地减少创建和维护索引所需的时间。

  • 每个版本库使用一个索引,尤其是源代码,以便将上下文搜索限制在特定版本库中。

  • 如果您经常在所有文档中进行搜索,可将多个文档库合并到一个索引中。 如果文档库之间存在大量关键字重叠,且不同团队或用户需要在特定文档库中搜索上下文,则可以创建单独的索引。

  • 不要在同一索引中合并来自不同版本库的代码。 如果对用户的访问限制执行不当,合并代码会降低生成提示响应的准确性,并导致未经授权的代码访问。

  • 确保在索引编制过程中正确管理安全性和授权。 有关不同的使用场景,请参阅 用例场景

  • 确保在将机密或敏感内容编入索引之前获得所有必要的组织批准。 用于 RAG 的源代码和文档以纯文本和矢量化格式保存在 GitHub 资源库之外的矢量存储中。

代码库索引

  1. 登录此项目:为 watsonx Code Assistant 创建 RAG 向量存储

  2. 单击创建项目

  3. 存储字段中选择 Cloud Object Storage 实例。 如果下拉列表中没有 Cloud Object Storage 实例,请创建该实例。

  4. 单击创建

  5. 转到项目中的“资产”选项卡,然后单击“填充矢量存储笔记本”。

  6. 按照 Populate vector store 笔记本中的说明为代码或文件编制索引。