cli 模块为 CodeRepoIndex 项目提供了一个功能强大且易于使用的命令行接口(Command-Line Interface)。它基于优秀的 click 库构建,允许用户直接在终端中执行核心的索引和搜索操作,而无需编写Python脚本。
这使得 CodeRepoIndex 不仅可以作为一个库被集成到其他应用中,还可以作为一个独立的工具直接使用。
通过命令行,用户可以执行以下操作:
index: 为一个本地的代码仓库创建或更新索引。search: 在已创建的索引中执行语义搜索。stats: 查看当前索引的统计信息。
此命令用于将一个代码仓库转换为可搜索的索引。
用法:
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/"此命令用于在索引中搜索代码。
用法:
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此命令用于快速查看当前索引的总体情况。
用法:
coderepoindex stats [OPTIONS]示例输出:
📊 索引统计信息:
- 总向量数: 12345
- 支持语言: python, javascript, go
- 索引大小: 123.4 MB
- 最后更新: 2023-10-27T10:30:00
当通过 pip 安装 CodeRepoIndex 后,pyproject.toml 文件中定义的 [project.scripts] 会自动创建一个名为 coderepoindex 的可执行脚本在你的环境中,使其可以直接在命令行中调用。
# pyproject.toml
[project.scripts]
coderepoindex = "coderepoindex.cli:main"