SeaGOAT 项目介绍
SeaGOAT 是一个为人工智能时代打造的代码搜索引擎。它可以帮助用户在本地以语义方式搜索代码库,利用向量嵌入技术来提高搜索的精准性。
功能特点
SeaGOAT 通过在本地运行的服务器来执行所有功能,不依赖第三方 API,因此用户不必担心数据外泄。默认情况下,它使用向量数据库 ChromaDB,并且禁用了远程功能。同时,SeaGOAT 结合了 ripgrep 正则表达式搜索引擎,除了提供 AI 驱动的匹配,还支持基于正则表达式的匹配。
安装指南
要安装 SeaGOAT,用户需要准备好以下依赖软件:
- Python 3.11 或更高版本
- ripgrep
- 可选安装 bat,以增强结果的展示效果。
可以使用以下命令通过 pipx
安装 SeaGOAT:
pipx install seagoat
系统要求
SeaGOAT 能够在常见的操作系统上运行,包括 Linux(已测试)、macOS(部分测试,需协助)和 Windows(需协助)。
使用方法
用户安装后,需要先启动 SeaGOAT 服务器,以便在项目中使用,命令如下:
seagoat-server start /your/repository/path
启动服务器后,可以通过 gt
或 seagoat
命令来执行语义搜索。例如:
gt "Where are the numbers rounded"
也可以使用正则表达式,例如:
gt "function calc_.* that deals with taxes"
要停止服务器,用户可以使用以下命令:
seagoat-server stop /your/repository/path
定制与配置
用户可以通过 YAML 配置文件来定制 SeaGOAT,无论是全局配置还是项目特定配置。.seagoat.yml 文件示例如下:
# .seagoat.yml
server:
port: 31134 # 指定服务器端口
详细配置指南可查看 SeaGOAT 文档。
开发与测试
SeaGOAT 的开发需要安装 Poetry 和 Python 3.11 或更新版本。开发人员可以通过以下命令安装依赖:
poetry install
可以通过命令 poetry run
来手动测试 SeaGOAT 的命令,在本地开发环境下测试服务器启动命令的示例如下:
poetry run seagoat-server start ~/your/example/repo
常见问题解答
- SeaGOAT 如何工作? SeaGOAT 完全在本地运行,不会发送数据到任何远程服务器。
- 为什么 SeaGOAT 需要一个服务器? SeaGOAT 使用的是一种需要向量嵌入和数据库的架构,这需要启动本地服务器以提供快速响应。
- SeaGOAT 是否产生 AI 派生作品? SeaGOAT 是一个代码搜索引擎,而非代码生成器。
- 支持哪些编程语言? 目前支持的文件格式包括文本文件、Markdown、Python、C、C++、TypeScript、JavaScript、HTML、Go、Java、PHP 和 Ruby。
SeaGOAT 提供了一种灵活且强大的本地代码搜索体验,适合需要高效代码查找的开发者使用。