grepai-config-reference

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

GrepAI Configuration Reference

GrepAI配置参考

This skill provides a complete reference for all GrepAI configuration options in
.grepai/config.yaml
.
此技能提供了
.grepai/config.yaml
中所有GrepAI配置选项的完整参考。

When to Use This Skill

何时使用此技能

  • Understanding all available configuration options
  • Optimizing GrepAI for your specific use case
  • Troubleshooting configuration issues
  • Setting up advanced configurations
  • 了解所有可用配置选项
  • 根据你的特定用例优化GrepAI
  • 排查配置问题
  • 设置高级配置

Configuration File Location

配置文件位置

/your/project/.grepai/config.yaml
/your/project/.grepai/config.yaml

Complete Configuration Schema

完整配置 Schema

yaml
version: 1
yaml
version: 1

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

EMBEDDER CONFIGURATION

嵌入模型配置

Converts code text into vector embeddings

将代码文本转换为向量嵌入

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

embedder:

Provider: ollama | openai | lmstudio

provider: ollama

Model name (depends on provider)

Ollama: nomic-embed-text, bge-m3, mxbai-embed-large

OpenAI: text-embedding-3-small, text-embedding-3-large

LM Studio: nomic-embed-text-v1.5, bge-small-en-v1.5

model: nomic-embed-text

API endpoint URL

Ollama default: http://localhost:11434

LM Studio default: http://localhost:1234

OpenAI: uses official API

Vector dimensions (auto-detected if omitted)

nomic-embed-text: 768

text-embedding-3-small: 1536

text-embedding-3-large: 3072

dimensions: 768

API key (for OpenAI, supports env vars)

api_key: ${OPENAI_API_KEY}

Parallel requests (OpenAI only, for speed)

parallelism: 4
embedder:

提供商: ollama | openai | lmstudio

provider: ollama

模型名称(取决于提供商)

Ollama: nomic-embed-text, bge-m3, mxbai-embed-large

OpenAI: text-embedding-3-small, text-embedding-3-large

LM Studio: nomic-embed-text-v1.5, bge-small-en-v1.5

model: nomic-embed-text

API端点URL

Ollama默认值: http://localhost:11434

LM Studio默认值: http://localhost:1234

OpenAI: 使用官方API

向量维度(省略时自动检测)

nomic-embed-text: 768

text-embedding-3-small: 1536

text-embedding-3-large: 3072

dimensions: 768

API密钥(适用于OpenAI,支持环境变量)

api_key: ${OPENAI_API_KEY}

并行请求数(仅OpenAI支持,提升速度)

parallelism: 4

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

STORE CONFIGURATION

存储配置

Where vector embeddings are stored

向量嵌入的存储位置

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

store:

Backend: gob | postgres | qdrant

backend: gob

PostgreSQL configuration (when backend: postgres)

postgres: dsn: postgres://user:password@localhost:5432/grepai

Qdrant configuration (when backend: qdrant)

qdrant: endpoint: localhost port: 6334 use_tls: false api_key: your-qdrant-api-key # Optional
store:

后端存储: gob | postgres | qdrant

backend: gob

PostgreSQL配置(当backend为postgres时)

postgres: dsn: postgres://user:password@localhost:5432/grepai

Qdrant配置(当backend为qdrant时)

qdrant: endpoint: localhost port: 6334 use_tls: false api_key: your-qdrant-api-key # 可选

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

CHUNKING CONFIGURATION

代码分块配置

How code files are split for embedding

代码文件如何拆分以进行嵌入

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

chunking:

Tokens per chunk (smaller = more precise, larger = more context)

Recommended: 256-1024

size: 512

Overlap between chunks (preserves context at boundaries)

Recommended: 10-20% of size

overlap: 50
chunking:

每个分块的令牌数(越小=精度越高,越大=上下文越多)

推荐值: 256-1024

size: 512

分块之间的重叠部分(保留边界处的上下文)

推荐值: 分块大小的10-20%

overlap: 50

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

WATCH CONFIGURATION

文件监听配置

File watching daemon settings

文件监听守护进程设置

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

watch:

Debounce delay in milliseconds

Groups rapid file changes together

debounce_ms: 500
watch:

防抖延迟(毫秒)

将频繁的文件变更合并处理

debounce_ms: 500

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

TRACE CONFIGURATION

调用追踪配置

Call graph analysis settings

调用图分析设置

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

trace:

Extraction mode: fast | precise

fast: Uses regex, no dependencies, faster

precise: Uses tree-sitter AST parsing, more accurate

mode: fast

Languages to analyze for call graphs

enabled_languages: - .go - .js - .ts - .jsx - .tsx - .py - .php - .c - .h - .cpp - .hpp - .cc - .cxx - .rs - .zig - .cs - .pas - .dpr

Patterns to exclude from trace analysis

exclude_patterns: - "_test.go" - ".spec.ts" - "*.test.js"
trace:

提取模式: fast | precise

fast: 使用正则表达式,无依赖,速度更快

precise: 使用tree-sitter AST解析,准确度更高

mode: fast

用于分析调用图的语言

enabled_languages: - .go - .js - .ts - .jsx - .tsx - .py - .php - .c - .h - .cpp - .hpp - .cc - .cxx - .rs - .zig - .cs - .pas - .dpr

调用追踪分析中排除的模式

exclude_patterns: - "_test.go" - ".spec.ts" - "*.test.js"

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

SEARCH CONFIGURATION

搜索配置

Search result scoring and ranking

搜索结果的评分与排序

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

search:

Score boosting configuration

boost: enabled: true
# Reduce scores for certain paths
penalties:
  - pattern: /tests/
    factor: 0.5
  - pattern: _test.
    factor: 0.5
  - pattern: .spec.
    factor: 0.5
  - pattern: /docs/
    factor: 0.6
  - pattern: /vendor/
    factor: 0.3
  - pattern: /node_modules/
    factor: 0.3

# Increase scores for certain paths
bonuses:
  - pattern: /src/
    factor: 1.1
  - pattern: /lib/
    factor: 1.1
  - pattern: /core/
    factor: 1.2
  - pattern: /app/
    factor: 1.1

Hybrid search (vector + keyword)

hybrid: enabled: false k: 60 # BM25 parameter
search:

分数权重配置

boost: enabled: true
# 降低特定路径的分数
penalties:
  - pattern: /tests/
    factor: 0.5
  - pattern: _test.
    factor: 0.5
  - pattern: .spec.
    factor: 0.5
  - pattern: /docs/
    factor: 0.6
  - pattern: /vendor/
    factor: 0.3
  - pattern: /node_modules/
    factor: 0.3

# 提高特定路径的分数
bonuses:
  - pattern: /src/
    factor: 1.1
  - pattern: /lib/
    factor: 1.1
  - pattern: /core/
    factor: 1.2
  - pattern: /app/
    factor: 1.1

混合搜索(向量+关键词)

hybrid: enabled: false k: 60 # BM25参数

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

IGNORE CONFIGURATION

忽略规则配置

Files and directories to exclude from indexing

索引时排除的文件和目录

═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════

ignore:

Directories

  • .git
  • .grepai
  • .svn
  • .hg
  • node_modules
  • vendor
  • target
  • pycache
  • .pytest_cache
  • dist
  • build
  • out
  • .next
  • .nuxt

Files

  • "*.min.js"
  • "*.min.css"
  • "*.bundle.js"
  • "*.map"
  • "*.lock"
  • package-lock.json
  • yarn.lock
  • pnpm-lock.yaml
  • go.sum

Generated

  • ".generated."
  • "*.pb.go"
  • "*.d.ts"
undefined
ignore:

目录

  • .git
  • .grepai
  • .svn
  • .hg
  • node_modules
  • vendor
  • target
  • pycache
  • .pytest_cache
  • dist
  • build
  • out
  • .next
  • .nuxt

文件

  • "*.min.js"
  • "*.min.css"
  • "*.bundle.js"
  • "*.map"
  • "*.lock"
  • package-lock.json
  • yarn.lock
  • pnpm-lock.yaml
  • go.sum

生成文件

  • ".generated."
  • "*.pb.go"
  • "*.d.ts"
undefined

Configuration by Use Case

按用例配置

Small Personal Project

小型个人项目

yaml
version: 1
embedder:
  provider: ollama
  model: nomic-embed-text
store:
  backend: gob
chunking:
  size: 512
  overlap: 50
yaml
version: 1
embedder:
  provider: ollama
  model: nomic-embed-text
store:
  backend: gob
chunking:
  size: 512
  overlap: 50

Large Codebase

大型代码库

yaml
version: 1
embedder:
  provider: ollama
  model: bge-m3  # Larger model
  parallelism: 4
store:
  backend: postgres  # Scalable storage
  postgres:
    dsn: postgres://user:pass@localhost:5432/grepai
chunking:
  size: 768  # Larger chunks
  overlap: 100
yaml
version: 1
embedder:
  provider: ollama
  model: bge-m3  # 更大的模型
  parallelism: 4
store:
  backend: postgres  # 可扩展存储
  postgres:
    dsn: postgres://user:pass@localhost:5432/grepai
chunking:
  size: 768  # 更大的分块
  overlap: 100

Team Environment

团队环境

yaml
version: 1
embedder:
  provider: openai
  model: text-embedding-3-small
  api_key: ${OPENAI_API_KEY}
  parallelism: 8
store:
  backend: qdrant
  qdrant:
    endpoint: qdrant.internal.company.com
    port: 6334
    use_tls: true
yaml
version: 1
embedder:
  provider: openai
  model: text-embedding-3-small
  api_key: ${OPENAI_API_KEY}
  parallelism: 8
store:
  backend: qdrant
  qdrant:
    endpoint: qdrant.internal.company.com
    port: 6334
    use_tls: true

Maximum Privacy

最高隐私配置

yaml
version: 1
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://localhost:11434
store:
  backend: gob  # Local file only
yaml
version: 1
embedder:
  provider: ollama
  model: nomic-embed-text
  endpoint: http://localhost:11434
store:
  backend: gob  # 仅本地文件存储

Environment Variables

环境变量

GrepAI supports environment variable substitution:
yaml
embedder:
  api_key: ${OPENAI_API_KEY}

store:
  postgres:
    dsn: ${DATABASE_URL}
Set in your shell:
bash
export OPENAI_API_KEY="sk-..."
export DATABASE_URL="postgres://..."
GrepAI支持环境变量替换:
yaml
embedder:
  api_key: ${OPENAI_API_KEY}

store:
  postgres:
    dsn: ${DATABASE_URL}
在Shell中设置:
bash
export OPENAI_API_KEY="sk-..."
export DATABASE_URL="postgres://..."

Validating Configuration

验证配置

Check your config is valid:
bash
grepai status
If there are config errors, they'll be displayed.
检查你的配置是否有效:
bash
grepai status
如果存在配置错误,会显示相关信息。

Configuration Precedence

配置优先级

  1. .grepai/config.yaml
    in current directory
  2. Workspace configuration (if using workspaces)
  3. Default values
  1. 当前目录下的
    .grepai/config.yaml
  2. 工作区配置(如果使用工作区)
  3. 默认值

Best Practices

最佳实践

  1. Start simple: Use defaults, optimize later
  2. Match chunking to code style: Larger chunks for verbose code
  3. Use boosting: Penalize test/vendor, boost src/lib
  4. Secure API keys: Use environment variables, never commit
  5. Exclude noise: Ignore generated files, dependencies
  1. 从简开始:使用默认值,之后再优化
  2. 匹配代码风格调整分块:对于冗长的代码使用更大的分块
  3. 使用权重调整:降低测试/依赖库的分数,提高源码/库目录的分数
  4. 保护API密钥:使用环境变量,绝不要提交到代码仓库
  5. 排除干扰文件:忽略生成文件和依赖目录

Output Format

输出格式

Valid configuration status:
✅ GrepAI Configuration Valid

   Embedder: ollama (nomic-embed-text)
   Storage: gob (.grepai/index.gob)
   Chunking: 512 tokens, 50 overlap
   Trace mode: fast
   Languages: 18 enabled
   Ignore patterns: 12 configured
   Boosting: enabled
有效的配置状态:
✅ GrepAI Configuration Valid

   Embedder: ollama (nomic-embed-text)
   Storage: gob (.grepai/index.gob)
   Chunking: 512 tokens, 50 overlap
   Trace mode: fast
   Languages: 18 enabled
   Ignore patterns: 12 configured
   Boosting: enabled