项目简介
Gen AI Toolbox for Databases 是一个开源服务器,它位于您的应用编排框架和数据库之间,充当控制平面,用于修改、分发和调用工具。它通过集中管理工具,简化了 Gen AI 工具的开发、部署和维护,使得代理可以更便捷、安全地访问数据库中的数据。
主要功能点
- 简化开发: 通过少量代码集成工具到您的代理中,支持工具在多个代理或框架之间复用,并简化新版本工具的部署。
- 提升性能: 提供连接池、身份验证等最佳实践,优化工具性能。
- 增强安全性: 集成身份验证机制,提供更安全的数据访问。
- 端到端可观测性: 内置 OpenTelemetry 支持,提供开箱即用的指标和追踪功能。
- 资源管理: 集中管理数据源连接信息。
- 工具注册与执行: 允许注册和执行各种数据库操作工具。
- 工具集管理: 支持定义和加载工具集合,方便按需加载工具。
- MCP 协议支持: 通过 HTTP 和 SSE 协议提供 MCP 服务,与 MCP 客户端兼容。
安装步骤
-
下载服务器二进制文件
访问 发布页面 获取最新版本,根据您的操作系统和 CPU 架构,下载预编译的二进制文件。
例如,Linux AMD64 架构下,可以使用以下命令下载并安装:
export VERSION=0.3.0 curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox chmod +x toolbox -
或者,使用 Docker 镜像
您也可以使用 Docker 镜像来安装 Toolbox:
export VERSION=0.3.0 docker pull us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:$VERSION -
或者,从源代码编译
确保已安装 Go,然后运行以下命令从源代码编译安装:
go install github.com/googleapis/[email protected]
服务器配置
Toolbox 主要通过 'tools.yaml' 文件进行配置。您可以定义数据源 (sources)、工具 (tools) 和工具集 (toolsets)。
以下是一个 'tools.yaml' 示例:
sources: my-pg-source: kind: postgres host: 127.0.0.1 port: 5432 database: toolbox_db user: toolbox_user password: my-password tools: search-hotels-by-name: kind: postgres-sql source: my-pg-source description: Search for hotels based on name. parameters: - name: name type: string description: The name of the hotel. statement: SELECT * FROM hotels WHERE name ILIKE '%' || $1 || '%'; toolsets: my_first_toolset: - search-hotels-by-name
MCP 客户端配置 (JSON 格式):
{ "serverName": "GenAI-Toolbox", "command": "./toolbox", "args": ["--tools-file", "tools.yaml"] }
参数注释:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'command': 启动 MCP 服务器的可执行文件路径,这里假设 'toolbox' 二进制文件在当前目录下。请根据实际情况修改路径。
- 'args': 启动服务器的命令行参数,'"--tools-file tools.yaml"' 指定了工具配置文件的路径。
基本使用方法
-
配置 'tools.yaml' 文件: 根据您的数据库和需求,配置数据源、工具和工具集。参考 官方文档 获取更详细的配置信息。
-
启动 Toolbox 服务器: 在终端中执行以下命令启动服务器:
./toolbox --tools_file tools.yaml服务器默认监听 'http://127.0.0.1:5000',您可以通过 '--address' 和 '--port' 参数自定义监听地址和端口。
-
使用 MCP 客户端连接: 配置您的 MCP 客户端,使其连接到 Toolbox 服务器的 '/mcp' 端点(例如 'http://127.0.0.1:5000/mcp')。客户端可以通过 HTTP POST 请求或 SSE 连接与服务器进行交互,并按照 MCP 协议发送请求和接收响应。
-
集成到 LLM 应用: 使用官方提供的 SDK (如 'toolbox-langchain', 'toolbox-llamaindex') 或直接通过 MCP 协议与服务器交互,将 Toolbox 提供的工具集成到您的 LangChain 或 LlamaIndex 应用中。
信息
分类
AI与计算