Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .translation-init
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Translation initialization: 2025-08-07T12:00:58.554814
Translation initialization: 2025-08-07T12:15:30.045055
16 changes: 8 additions & 8 deletions docs/cn/guides/51-ai-functions/01-external-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: 使用外部函数(External Function)自定义 AI/ML

# 使用外部函数(External Function)自定义 AI/ML

通过将 Databend 与您自己的基础设施连接,构建强大的 AI/ML 能力。外部函数(External Function)让您部署自定义模型、利用 GPU 加速,并与任何 ML 框架集成,同时确保数据安全。
通过将 Databend 与您自己的基础设施连接,构建强大的 AI/ML 能力。外部函数(External Function)让您部署自定义模型、利用 GPU 加速并与任何 ML 框架集成,同时确保数据安全。

## 核心能力

Expand All @@ -18,9 +18,9 @@ title: 使用外部函数(External Function)自定义 AI/ML

## 工作原理

1. **创建 AI 服务器**:使用 Python 和 [databend-udf](https://pypi.org/project/databend-udf) 构建您的 AI/ML 服务器
2. **注册函数**:使用 `CREATE FUNCTION` 将您的服务器连接到 Databend
3. **在 SQL 中使用**:直接在 SQL 查询中调用您的自定义 AI 函数
1. **创建 AI 服务器**:使用 Python 和 [databend-udf](https://pypi.org/project/databend-udf) 构建 AI/ML 服务器
2. **注册函数**:通过 `CREATE FUNCTION` 将服务器接入 Databend
3. **在 SQL 中使用**:直接在 SQL 查询中调用自定义 AI 函数

## 示例:文本嵌入函数

Expand All @@ -45,11 +45,11 @@ def ai_embed_768(inputs: list[str], headers) -> list[list[float]]:
return [embedding.tolist() for embedding in embeddings]
except Exception as e:
print(f"生成嵌入时出错:{e}")
# 如果出错则返回空列表
# 出错时返回空列表
return [[] for _ in inputs]

if __name__ == '__main__':
print(" 8815 端口启动嵌入 UDF 服务器...")
print("在端口 8815 启动嵌入 UDF 服务器...")
server = UDFServer("0.0.0.0:8815")
server.add_function(ai_embed_768)
server.serve()
Expand Down Expand Up @@ -78,5 +78,5 @@ LIMIT 5;

## 了解更多

- **[外部函数(External Function)指南](/guides/query/external-function)** - 完整的设置和部署说明
- **[Databend Cloud](https://databend.cn)** - 使用免费账户试用外部函数(External Function)
- **[外部函数(External Function)指南](/guides/query/external-function)** - 完整的设置与部署说明
- **[Databend Cloud](https://databend.cn)** - 免费账户体验外部函数
67 changes: 33 additions & 34 deletions docs/cn/guides/51-ai-functions/02-mcp.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import DetailsWrap from '@site/src/components/DetailsWrap';

# 适用于 Databend 的 MCP 服务器
# 适用于 Databend 的 MCP Server

[mcp-databend](https://github.com/databendlabs/mcp-databend) 是一个 MCP(Model Context Protocol,模型上下文协议)服务器,它让 AI 助手能够使用自然语言直接与你的 Databend 数据库交互。
[mcp-databend](https://github.com/databendlabs/mcp-databend) 是一个 MCP(Model Context Protocol)服务器,它让 AI 助手能够使用自然语言直接与您的 Databend 数据库交互。

## mcp-databend 能做什么

Expand All @@ -13,28 +13,28 @@ import DetailsWrap from '@site/src/components/DetailsWrap';

## 构建 ChatBI 工具

本教程将演示如何使用 mcp-databend 和 Agno 框架构建对话式商业智能(Business Intelligence,BI)工具。你将创建一个本地 Agent,能够用自然语言回答数据问题。
本教程将演示如何使用 mcp-databend 和 Agno 框架构建一个对话式商业智能(Business Intelligence)工具。您将创建一个本地 Agent,能够用自然语言回答数据问题。

![Databend MCP ChatBI](@site/static/img/connect/databend-mcp-chatbi.png)

## 分步教程

### 步骤 1:配置 Databend 连接
### 第 1 步:配置 Databend 连接

首先,你需要一个可连接的 Databend 数据库:
首先,您需要一个可连接的 Databend 数据库:

1. **注册 [Databend Cloud](https://app.databend.cn)**(提供免费套餐)
2. **创建 Warehouse 和数据库**
3. **在控制台获取连接字符串**
2. **创建 Warehouse 和 Database**
3. **在控制台获取连接字符串(Connection String)**

有关 DSN 格式和示例的详细信息,请参阅 [连接字符串文档](https://docs.databend.cn/developer/drivers/#connection-string-dsn)。
有关 DSN 格式和示例的详细信息,请参阅[连接字符串文档](https://docs.databend.cn/developer/drivers/#connection-string-dsn)。

| 部署方式 | 连接字符串示例 |
| ------------------ | ------------------------------------------------------------- |
| **Databend Cloud** | `databend://user:pwd@host:443/database?warehouse=wh` |
| **自托管** | `databend://user:pwd@localhost:8000/database?sslmode=disable` |
| 部署方式 | 连接字符串示例 |
| ------------------ | ------------------------------------------------------------ |
| **Databend Cloud** | `databend://user:pwd@host:443/database?warehouse=wh` |
| **自托管** | `databend://user:pwd@localhost:8000/database?sslmode=disable`|

### 步骤 2:安装依赖
### 第 2 步:安装依赖

创建虚拟环境并安装所需包:

Expand All @@ -47,9 +47,9 @@ source .venv/bin/activate
pip install packaging openai agno openrouter sqlalchemy fastapi mcp-databend
```

### 步骤 3:创建 ChatBI Agent
### 第 3 步:创建 ChatBI Agent

现在创建 ChatBI Agent,它将使用 mcp-databend 与数据库交互
现在创建 ChatBI Agent,它将使用 mcp-databend 与您的数据库交互

创建文件 `agent.py`:
<DetailsWrap>
Expand Down Expand Up @@ -127,10 +127,10 @@ agent = Agent(
),
tools=[],
instructions=[
"你是 ChatBI —— Databend 的商业智能助手。",
"你是 ChatBI - 专为 Databend 打造的商业智能助手。",
"帮助用户使用自然语言探索和分析数据。",
"始终从探索可用数据库和表开始。",
"将查询结果格式化为清晰易读的表格。",
"始终先探索可用的数据库和表。",
"以清晰、易读的表格格式展示查询结果。",
"在分析中提供见解和解释。"
],
storage=SqliteStorage(table_name="chatbi", db_file="chatbi.db"),
Expand All @@ -145,7 +145,7 @@ agent = Agent(
async def lifespan(app: FastAPI):
tool = databend.create()
if not await databend.init():
logger.error("初始化 Databend 失败")
logger.error("Databend 初始化失败")
raise RuntimeError("Databend 连接失败")

agent.tools.append(tool)
Expand All @@ -165,17 +165,16 @@ playground = Playground(
app = playground.get_app(lifespan=lifespan)

if __name__ == "__main__":
print("🤖 正在为 Databend 启动 MCP 服务器")
print("🤖 正在启动 Databend MCP Server")
print("打开 http://localhost:7777 开始聊天!")
playground.serve(app="agent:app", host="127.0.0.1", port=7777)
```

</details>
</DetailsWrap>
### 第 4 步:配置环境

### 步骤 4:配置环境

设置 API 密钥和数据库连接:
设置您的 API 密钥和数据库连接:

```bash
# 设置 OpenRouter API 密钥
Expand All @@ -185,19 +184,19 @@ export OPENROUTER_API_KEY="your-openrouter-key"
export DATABEND_DSN="your-databend-connection-string"
```

### 步骤 5:启动 ChatBI Agent
### 第 5 步:启动 ChatBI Agent

运行 Agent 启动本地服务器:

```bash
python agent.py
```

你将看到
您将看到

```
✅ 环境变量检查通过
🤖 正在为 Databend 启动 MCP 服务器
🤖 正在启动 Databend MCP Server
打开 http://localhost:7777 开始聊天!
INFO Starting playground on http://127.0.0.1:7777
INFO: Started server process [189851]
Expand All @@ -208,7 +207,7 @@ INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:7777 (Press CTRL+C to quit)
```

### 步骤 6:设置 Web 界面
### 第 6 步:设置 Web 界面

为获得更佳体验,可配置 Agno 的 Web 界面:

Expand All @@ -220,22 +219,22 @@ npx create-agent-ui@latest
cd agent-ui && npm run dev
```

**连接到 Agent:**
**连接到您的 Agent:**

1. 打开 [http://localhost:3000](http://localhost:3000)
2. 选择 "localhost:7777" 作为端点
3. 开始提问你的数据
3. 开始提问关于您的数据

**试试这些查询:**

- "显示所有数据库"
- "我有哪些表?"
- "描述我的表结构"
- "运行查询展示示例数据"
- "运行查询显示示例数据"

## 资源

- **GitHub 仓库**: [databendlabs/mcp-databend](https://github.com/databendlabs/mcp-databend)
- **PyPI 包**: [mcp-databend](https://pypi.org/project/mcp-databend)
- **Agno 框架**: [Agno MCP](https://docs.agno.com/tools/mcp/mcp)
- **Agent UI**: [Agent UI](https://docs.agno.com/agent-ui/introduction)
- **GitHub 仓库**:[databendlabs/mcp-databend](https://github.com/databendlabs/mcp-databend)
- **PyPI 包**:[mcp-databend](https://pypi.org/project/mcp-databend)
- **Agno 框架**:[Agno MCP](https://docs.agno.com/tools/mcp/mcp)
- **Agent UI**:[Agent UI](https://docs.agno.com/agent-ui/introduction)
2 changes: 1 addition & 1 deletion docs/cn/guides/51-ai-functions/_category_.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"label": "AI 能力"
"label": "Databend 人工智能(AI)与机器学习(ML)"
}
18 changes: 9 additions & 9 deletions docs/cn/guides/51-ai-functions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,30 @@

Databend 通过两种互补的方法实现强大的 AI 和 ML 功能:使用您自己的基础设施构建自定义 AI 函数,或使用自然语言创建对话式数据体验。

## 外部函数(External Function) - 推荐方法
## 外部函数 - 推荐方法

外部函数(External Function)使您能够将数据与自定义的 AI/ML 基础设施连接,为 AI 工作负载提供最大的灵活性和性能。
外部函数使您能够将数据与自定义的 AI/ML 基础设施连接,为 AI 工作负载提供最大的灵活性和性能。

| 特性 | 优势 |
| 功能 | 优势 |
|---------|----------|
| **自定义模型** | 使用任何开源或专有的 AI/ML 模型 |
| **GPU 加速** | 部署在配备 GPU 的机器上以加快推理速度 |
| **数据隐私** | 将数据保留在您的基础设施内 |
| **可扩展性** | 独立扩展和资源优化 |
| **可扩展性** | 独立的扩展和资源优化 |
| **灵活性** | 支持任何编程语言和 ML 框架 |

## MCP 服务器(MCP Server) - 自然语言数据交互
## MCP 服务器 - 自然语言数据交互

模型上下文协议(Model Context ProtocolMCP)服务器使 AI 助手能够使用自然语言与您的 Databend 数据库进行交互,非常适合构建对话式 BI 工具。
模型上下文协议(Model Context Protocol, MCP)服务器使 AI 助手能够使用自然语言与您的 Databend 数据库进行交互,非常适合构建对话式 BI 工具。

| 特性 | 优势 |
| 功能 | 优势 |
|---------|----------|
| **自然语言** | 使用简单的英语查询您的数据 |
| **AI 助手集成** | 可与 Claude、ChatGPT 和自定义代理配合使用 |
| **实时分析** | 从您的数据中即时获取洞察 |

## 入门指南

**[外部函数(External Function)指南](01-external-functions.md)** - 学习如何通过实际示例和实施指导创建和部署自定义 AI 函数
**[外部函数指南](01-external-functions.md)** - 学习如何通过实际示例和实施指导来创建和部署自定义 AI 函数

**[MCP 服务器(MCP Server)指南](02-mcp.md)** - 使用 mcp-databend 和自然语言查询构建对话式 BI 工具
**[MCP 服务器指南](02-mcp.md)** - 使用 mcp-databend 和自然语言查询构建对话式 BI 工具