关于 grepai-embeddings-ollama
grepai-embeddings-ollama 是配置 grepai 使用 Ollama 生成代码搜索嵌入的技能,适合需要本地处理代码的开发者。它说明了模型选择、端点配置、性能调整和连接排查。
主要功能
- 01将 Ollama 配置为嵌入提供方
- 02选择不同模型与向量维度
- 03配置本地或远程端点
- 04提供性能调整和故障排查指引
适用场景
- 01在本地为代码搜索生成嵌入
- 02为多语言代码库选择嵌入模型
- 03连接远程 Ollama 服务处理嵌入
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yoanbernabeu/ grepai-skills --skill grepai-embeddings-ollama安装后在 Claude Code 中输入/grepai-embeddings-ollama确认已加载。
详细介绍
使用 Ollama 的 GrepAI 嵌入
本技能介绍如何将 Ollama 用作 GrepAI 的嵌入提供方,实现 100% 私密的本地代码搜索。
何时使用此技能
- 设置私密的本地嵌入
- 选择合适的 Ollama 模型
- 优化 Ollama 性能
- 排查 Ollama 连接问题
为什么选择 Ollama?
| 优势 | 描述 |
|---|---|
| 🔒 隐私 | 代码绝不会离开你的设备 |
| 💰 免费 | 无 API 费用或使用限制 |
| ⚡ 速度 | 无网络延迟 |
| 🔌 离线 | 无需互联网即可运行 |
| 🔧 控制权 | 可自行选择模型 |
前提条件
- 已安装并运行 Ollama
- 已下载嵌入模型
# Install Ollama
brew install ollama # macOS
# or
curl -fsSL https://ollama.com/install.sh | sh # Linux
# Start Ollama
ollama serve
# Download model
ollama pull nomic-embed-text
配置
基本配置
# .grepai/config.yaml
embedder:
provider: ollama
model: nomic-embed-text
endpoint: http://localhost:11434
使用自定义端点
embedder:
provider: ollama
model: nomic-embed-text
endpoint: http://192.168.1.100:11434 # Remote Ollama server
显式指定维度
embedder:
provider: ollama
model: nomic-embed-text
endpoint: http://localhost:11434
dimensions: 768 # Usually auto-detected
可用模型
推荐:nomic-embed-text
ollama pull nomic-embed-text
| 属性 | 值 |
|---|---|
| 维度 | 768 |
| 大小 | ~274 MB |
| 速度 | 快 |
| 质量 | 非常适合代码 |
| 语言 | 针对英语优化 |
配置:
embedder:
provider: ollama
model: nomic-embed-text
多语言:nomic-embed-text-v2-moe
ollama pull nomic-embed-text-v2-moe
| 属性 | 值 |
|---|---|
| 维度 | 768 |
| 大小 | ~500 MB |
| 速度 | 中等 |
| 质量 | 非常好 |
| 语言 | 多语言 |
最适合包含非英语注释或文档的代码库。
配置:
embedder:
provider: ollama
model: nomic-embed-text-v2-moe
高质量:bge-m3
ollama pull bge-m3
| 属性 | 值 |
|---|---|
| 维度 | 1024 |
| 大小 | ~1.2 GB |
| 速度 | 较慢 |
| 质量 | 很高 |
| 语言 | 多语言 |
最适合规模较大、结构复杂且对准确性要求很高的代码库。
配置:
embedder:
provider: ollama
model: bge-m3
dimensions: 1024
最高质量:mxbai-embed-large
ollama pull mxbai-embed-large
| 属性 | 值 |
|---|---|
| 维度 | 1024 |
| 大小 | ~670 MB |
| 速度 | 中等 |
| 质量 | 最高 |
| 语言 | 英语 |
配置:
embedder:
provider: ollama
model: mxbai-embed-large
dimensions: 1024
模型对比
| 模型 | 维度 | 大小 | 速度 | 质量 | 使用场景 |
|---|---|---|---|---|---|
nomic-embed-text | 768 | 274MB | ⚡⚡⚡ | ⭐⭐⭐ | 通用场景 |
nomic-embed-text-v2-moe | 768 | 500MB | ⚡⚡ | ⭐⭐⭐⭐ | 多语言 |
bge-m3 | 1024 | 1.2GB | ⚡ | ⭐⭐⭐⭐⭐ | 大型代码库 |
mxbai-embed-large | 1024 | 670MB | ⚡⚡ | ⭐⭐⭐⭐⭐ | 追求最高准确性 |
性能优化
内存管理
模型会加载到 RAM 中。请确保内存充足:
| 模型 | 所需 RAM |
|---|---|
nomic-embed-text | ~500 MB |
nomic-embed-text-v2-moe | ~800 MB |
bge-m3 | ~1.5 GB |
mxbai-embed-large | ~1 GB |
GPU 加速
Ollama 会自动使用:
- macOS: Metal(Apple Silicon)
- Linux/Windows: CUDA(NVIDIA GPU)
检查 GPU 使用情况:
ollama ps
保持模型加载
默认情况下,Ollama 会在模型闲置 5 分钟后将其卸载。若要保持模型加载:
# Keep model loaded indefinitely
curl http://localhost:11434/api/generate -d '{
"model": "nomic-embed-text",
"keep_alive": -1
}'
验证连接
检查 Ollama 是否正在运行
curl http://localhost:11434/api/tags
列出可用模型
ollama list
测试嵌入
curl http://localhost:11434/api/embeddings -d '{
"model": "nomic-embed-text",
"prompt": "function authenticate(user, password)"
}'
将 Ollama 作为服务运行
macOS(launchd)
Ollama 应用会在登录时自动运行。
Linux(systemd)
# Enable service
sudo systemctl enable ollama
# Start service
sudo systemctl start ollama
# Check status
sudo systemctl status ollama
手动在后台运行
nohup ollama serve > /dev/null 2>&1 &
远程 Ollama 服务
在高性能服务上运行 Ollama,并远程连接:
在服务端
# Allow remote connections
OLLAMA_HOST=0.0.0.0 ollama serve
在客户端
# .grepai/config.yaml
embedder:
provider: ollama
model: nomic-embed-text
endpoint: http://server-ip:11434
常见问题
❌ 问题: 连接被拒绝 ✅ 解决方案:
# Start Ollama
ollama serve
❌ 问题: 找不到模型 ✅ 解决方案:
# Pull the model
ollama pull nomic-embed-text
❌ 问题: 嵌入生成缓慢 ✅ 解决方案:
- 使用较小的模型(
nomic-embed-text) - 确保正在使用 GPU(
ollama ps) - 关闭占用大量内存的应用
- 考虑使用硬件性能更好的远程服务
❌ 问题: 内存不足 ✅ 解决方案:
- 使用较小的模型
- 关闭其他应用
- 升级 RAM
- 使用远程 Ollama 服务
❌ 问题: 模型更新后嵌入结果不同 ✅ 解决方案: 模型更新后重新建立索引:
rm .grepai/index.gob
grepai watch
最佳实践
- 从
nomic-embed-text开始: 速度与质量的最佳平衡 - 保持 Ollama 运行: 建议使用后台服务
- 匹配维度: 不要混用维度不同的模型
- 更换模型后重新建立索引: 删除索引并重新运行 watch
- 监控内存: 嵌入模型会占用大量 RAM
输出格式
成功的 Ollama 配置:
✅ Ollama Embedding Provider Configured
Provider: Ollama
Model: nomic-embed-text
Endpoint: http://localhost:11434
Dimensions: 768 (auto-detected)
Status: Connected
Model Info:
- Size: 274 MB
- Loaded: Yes
- GPU: Apple Metal
评论
支持 Markdown