GrepAI Init 介绍
GrepAI Init 是 GrepAI 的项目初始化技能,覆盖 grepai init 命令以及项目初始化的相关内容。当你需要在一个新项目中设置 GrepAI、了解 grepai init 会创建哪些内容、定制初始配置或排查初始化问题时,都可以使用该技能。
基本用法
在项目目录中执行:
cd /path/to/your/project grepai init
初始化创建的内容
运行 grepai init 会创建 .grepai/ 目录,其中包含:
.grepai/ ├── config.yaml # 配置文件 ├── index.gob # 向量索引(由 watch 创建) └── symbols.gob # 用于 trace 的符号索引(由 watch 创建)
默认配置
生成的 config.yaml 如下:
version: 1
embedder: provider: ollama model: nomic-embed-text endpoint: http://localhost:11434
store: backend: gob
chunking: size: 512 overlap: 50
watch: debounce_ms: 500
trace: mode: fast enabled_languages: - .go - .js - .ts - .jsx - .tsx - .py - .php - .c - .h - .cpp - .hpp - .cc - .cxx - .rs - .zig - .cs - .pas - .dpr
ignore:
- .git
- .grepai
- node_modules
- vendor
- target
- pycache
- dist
- build
默认设置说明
嵌入(Embedder)设置:provider 默认为 ollama,用于本地嵌入生成;model 默认为 nomic-embed-text,是一个 768 维模型;endpoint 默认为 http://localhost:11434,即 Ollama API 地址。
存储(Store)设置:backend 默认为 gob,即本地文件存储。
分块(Chunking)设置:size 默认为 512,表示每个分块的 token 数;overlap 默认为 50,表示用于上下文的重复量。
监听(Watch)设置:debounce_ms 默认为 500,表示重新建立索引前的等待时间。
忽略模式
默认忽略模式会排除:版本控制目录 .git;GrepAI 数据目录 .grepai;依赖目录 node_modules、vendor;构建输出目录 target、dist、build;缓存目录 pycache。
初始化后自定义
编辑 .grepai/config.yaml 即可进行自定义。
更换嵌入提供商:
embedder: provider: openai model: text-embedding-3-small api_key: ${OPENAI_API_KEY}
更换存储后端:
store: backend: postgres postgres: dsn: postgres://user:pass@localhost:5432/grepai
添加自定义忽略模式:
ignore:
- .git
- .grepai
- node_modules
- "*.min.js"
- "*.bundle.js"
- coverage/
- .nyc_output/
在 monorepo 中初始化
对于 monorepo,在根目录初始化:
cd /path/to/monorepo grepai init
或使用工作区(workspaces)为不同项目建立独立索引:
grepai workspace create my-workspace grepai workspace add my-workspace /path/to/project1 grepai workspace add my-workspace /path/to/project2
重新初始化
如果需要重置:
删除已有配置
rm -rf .grepai
重新初始化
grepai init
注意:这会删除你的索引,之后需要重新运行 grepai watch。
验证初始化
初始化后可以这样验证:
检查配置是否存在
cat .grepai/config.yaml
检查状态(此时会显示尚无索引)
grepai status
常见问题
问题:.grepai 已存在。解决:先删除它,或编辑现有配置:
rm -rf .grepai && grepai init
问题:配置已创建但 Ollama 未运行。解决:在运行 grepai watch 前启动 Ollama:
ollama serve
问题:初始化到了错误的目录。解决:移除 .grepai 并在正确的目录中初始化。
最佳实践
在项目根目录初始化:即主要代码所在的位置。
将 .grepai/ 加入 .gitignore:索引与机器相关。
自定义忽略模式:排除生成或引入的代码。
初始化后检查配置:根据你的技术栈进行调整。
.gitignore 添加示例
GrepAI
.grepai/
输出格式
初始化成功后会输出:
✅ GrepAI Initialized
Config: .grepai/config.yaml
Default settings:
- Embedder: Ollama (nomic-embed-text)
- Storage: GOB (local file)
- Chunking: 512 tokens, 50 overlap
Next steps:
- Ensure Ollama is running: ollama serve
- Start indexing: grepai watch