Skip to content

Latest commit

 

History

History
98 lines (70 loc) · 2.89 KB

File metadata and controls

98 lines (70 loc) · 2.89 KB

CLI 模块 (coderepoindex.cli)

1. 概述

cli 模块为 CodeRepoIndex 项目提供了一个功能强大且易于使用的命令行接口(Command-Line Interface)。它基于优秀的 click 库构建,允许用户直接在终端中执行核心的索引和搜索操作,而无需编写Python脚本。

这使得 CodeRepoIndex 不仅可以作为一个库被集成到其他应用中,还可以作为一个独立的工具直接使用。

2. 核心功能

通过命令行,用户可以执行以下操作:

  • index: 为一个本地的代码仓库创建或更新索引。
  • search: 在已创建的索引中执行语义搜索。
  • stats: 查看当前索引的统计信息。

3. 命令详解

3.1. index

此命令用于将一个代码仓库转换为可搜索的索引。

用法:

coderepoindex index [OPTIONS] REPO_PATH

参数:

  • REPO_PATH: (必需) 要索引的本地代码仓库的路径。

选项:

  • -l, --language TEXT: (可选) 只索引特定语言的文件。
  • -e, --exclude TEXT: (可选) 排除匹配指定模式的文件或目录(可多次使用)。
  • -s, --storage-backend TEXT: (可选) 指定存储后端,默认为 chroma
  • -m, --embedding-model TEXT: (可选) 指定要使用的嵌入模型名称。

示例:

# 索引当前目录下的 my-project 文件夹
coderepoindex index ./my-project

# 索引一个项目,但排除所有的测试文件
coderepoindex index /path/to/project -e "*.test.js" -e "tests/"

3.2. search

此命令用于在索引中搜索代码。

用法:

coderepoindex search [OPTIONS] QUERY

参数:

  • QUERY: (必需) 你的搜索查询,可以是自然语言描述或一段代码。

选项:

  • -k, --top-k INTEGER: (可选) 返回最相关的结果数量,默认为 10。
  • -l, --language TEXT: (可选) 将搜索范围限制在特定编程语言内。
  • -t, --threshold FLOAT: (可选) 设置一个相似度分数阈值(0.0到1.0),只返回高于该分数的结果。

示例:

# 使用自然语言进行搜索
coderepoindex search "a function to calculate fibonacci sequence"

# 搜索与一段代码相似的代码,并只返回前3个Python结果
coderepoindex search "def fib(n): ..." -k 3 -l python

3.3. stats

此命令用于快速查看当前索引的总体情况。

用法:

coderepoindex stats [OPTIONS]

示例输出:

📊 索引统计信息:
  - 总向量数: 12345
  - 支持语言: python, javascript, go
  - 索引大小: 123.4 MB
  - 最后更新: 2023-10-27T10:30:00

4. 入口点

当通过 pip 安装 CodeRepoIndex 后,pyproject.toml 文件中定义的 [project.scripts] 会自动创建一个名为 coderepoindex 的可执行脚本在你的环境中,使其可以直接在命令行中调用。

# pyproject.toml
[project.scripts]
coderepoindex = "coderepoindex.cli:main"