为可观测性注入LLM :结合 ClickStack、OpenTelemetry 与 MCP

图片

本文字数:12221;估计阅读时间:31 分钟

作者:Dale McDiarmid & Lionel Palacin

本文在公众号【ClickHouseInc】首发

图片

在过去两年里,LLM(大语言模型)可观测性迅速成为热门话题,围绕这一领域的工具生态系统不断壮大,帮助开发者更好地理解与优化 AI 驱动的应用。从 LangChain 内置的 ClickHouse 集成,到各大 AI 工具包对 OpenTelemetry 的原生支持,关于模型行为、使用情况以及成本的透明度需求从未如此迫切。

ClickHouse 以其在高性能 LLM 分析领域的卓越表现而闻名[https://clickhouse.com/blog/langchain-why-we-choose-clickhouse-to-power-langchain],最近又推出了基于 ClickHouse 的开源可观测性栈——ClickStack。基于此背景,我们希望探索:利用 ClickStack 构建 LLM 可观测性到底有多容易。

本文将以 LibreChat 为例,介绍如何通过 OpenTelemetry(OTel)对这个集成了 MCP 服务器的 LLM 聊天界面进行埋点接入。我们的目标是:在尽量少改动代码的前提下,捕获有价值的追踪与指标,并评估基于 ClickStack 的方案在 LLM 应用的可观测性上能做到什么程度。

为什么这件事重要?在生产环境中,LLM 因 Token 消耗带来的成本往往十分可观。缺乏可观测性,团队就如同在盲飞——既无法洞察使用模式,也难以及时发现性能瓶颈或评估成本效益。可观测性不仅是“锦上添花”,更是成本管理、用户体验(UX)优化,以及投资回报率(ROI)验证的基础。接下来就让我们一探究竟。

什么是 LibreChat?

图片

LibreChat 是一个 AI 聊天平台,汇集了来自 OpenAI、Anthropic、Google 等提供商的模型,统一呈现在一个界面中。它被设计为 ChatGPT 或 Claude Desktop 的强大开源替代品,支持丰富的自定义选项、插件集成以及多语言访问。凭借简洁易用的界面和模块化架构,LibreChat 让自托管、功能扩展以及个性化定制的 AI 聊天体验变得轻而易举。

什么是 MCP?

MCP(Model Context Protocol)是一项新兴标准,旨在将数据库、API 以及各类工具等第三方服务接入语言模型。通过搭建 MCP 服务器,开发者可以定义服务供大语言模型(LLM)客户端调用的方式。相应地,MCP 客户端——如 Claude Desktop、ChatGPT 和 LibreChat——使模型能够以结构化的方式与这些服务交互。

MCP 正快速成为 LLM 集成的默认标准,它提供了一种轻量且与编程语言无关的服务访问接口。今年早些时候,我们发布了 mcp-clickhouse 服务器,让 ClickHouse 能够被任何 MCP 客户端无缝调用。

MCP 的价值在于它赋予 LLM 更强的能力——不再只是被动回答,而是充当实时系统的主动接口。这样,模型不仅能查询数据库,还能触发操作,或通过自然对话的方式挖掘洞察。在这些 AI 智能体工作流中,响应速度和交互体验尤为关键。ClickHouse 在此类场景中尤为擅长,凭借其低延迟的分析引擎,可以在对话的几秒钟内给出响应,而无需等待数小时。MCP 正是促成这种连接的桥梁。

在本示例中,我们将把 ClickHouse MCP 服务器连接到 LibreChat。与此同时,以下的埋点接入过程同样适用于任何基于 FastMCP 框架的实现(ClickHouse MCP 便是基于此开发)。我们的 MCP 服务器会进一步连接到演示环境 sql.clickhouse.com[http://sql.clickhouse.com/],该环境包含 35 个以上的数据集,可用于回答用户的各类问题。

部署 LibreChat

LibreChat 提供了一个 docker compose 文件[https://github.com/danny-avila/LibreChat/blob/main/docker-compose.yml],能够帮助用户轻松启动并运行所有相关组件。本节将介绍我们是如何在此基础上扩展 docker compose 文件,实现对 LibreChat 和 ClickHouse MCP Server 的埋点接入。完整的示例代码已发布在这个 Github 仓库[https://github.com/ClickHouse/examples/tree/main/clickstack/librechat-llm-observability]。

配置 LibreChat 连接 ClickHouse MCP

LibreChat 开箱即用支持 MCP,官方文档中提供了多种集成 MCP 服务器的示例[https://www.librechat.ai/docs/features/mcp#basic-configuration]。在本示例中,我们会将 ClickHouse MCP Server 作为独立服务部署,LibreChat 则通过 SSE 协议与其通信[https://en.wikipedia.org/wiki/Server-sent_events]。

ClickHouse MCP Server 提供了官方 Docker 镜像[https://hub.docker.com/r/mcp/clickhouse],方便我们在部署时实现独立运行。

下方展示了用于将 ClickHouse MCP Server 作为独立服务部署的 Docker Compose 配置,可直接追加到 LibreChat 官方提供的 docker compose 文件中[https://github.com/danny-avila/LibreChat/blob/main/docker-compose.yml]。

mcp-clickhouse: 
    image: mcp/clickhouse
    container_name: mcp-clickhouse
    ports:
      - 8001:8000
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - CLICKHOUSE_HOST=sql-clickhouse.clickhouse.com
      - CLICKHOUSE_USER=demo
      - CLICKHOUSE_PASSWORD=
      - CLICKHOUSE_MCP_SERVER_TRANSPORT=sse
      - CLICKHOUSE_MCP_BIND_HOST=0.0.0.0

在 LibreChat 的配置文件 librechat.yml 中,MCP 客户端配置为通过 SSE 协议连接 MCP 服务器。

mcpServers:
  clickhouse-playground:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值