@arizeai/openinference-tanstack-ai

中文文档
0.3.3发布于 2026/10/24Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 1.3万

TanStack AI 的 OpenInference 中间软件

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 追踪器设置
  4. 自定义跟踪器
  5. 追踪到什么
  6. 实例
  7. 页:1

OpenInference TanStack AI 打开推论 谭斯塔克AI

npm version

此软件包提供了用于 谭斯塔克AI。它发出OpenTeleometry 跨度,按照 OpenInference 规格定型,因此 TanStack AI 运行可以在像 : 调整 AX 财务报告和审定财务报表 凤凰。 。 。 .

安装

npm install --save @arizeai/openinference-tanstack-ai @tanstack/ai

您还需要在应用程序中设置 OpenTeleometry 。 例如:

npm install --save @arizeai/phoenix-otel

或:

npm install --save @opentelemetry/api @opentelemetry/sdk-trace-node @opentelemetry/exporter-trace-otlp-proto

安装您计划使用 TanStack AI 的提供者适配器, 例如:

npm install --save @tanstack/ai-openai

使用量

@arizeai/openinference-tanstack-ai 出口 openInferenceMiddleware,直接插入 TanStack AI的 middleware 选项.

import { chat } from "@tanstack/ai";
import { openaiText } from "@tanstack/ai-openai";

import { openInferenceMiddleware } from "@arizeai/openinference-tanstack-ai";

const stream = chat({
  adapter: openaiText("gpt-4o-mini"),
  messages: [{ role: "user", content: "What is OpenInference?" }],
  middleware: [openInferenceMiddleware()],
});

中相器既为流相也为非流相所通的TanStack AI调用.

const text = await chat({
  adapter: openaiText("gpt-4o-mini"),
  stream: false,
  systemPrompts: ["You are a concise technical explainer."],
  messages: [{ role: "user", content: "Explain OpenInference in one sentence." }],
  middleware: [openInferenceMiddleware()],
});

追踪器设置

此软件包使用您应用程序中已有的 OpenTeleometry tracker 提供者和导出者 。 它本身不出口.

[注] 您的仪表代码应该在中间软件应用前运行. 这保证了追踪器提供者在中间软件开始放出跨度前得到适当配置.

推荐的快速启动是将其与 @arizeai/phoenix-otel。 。 。 .

import { register } from "@arizeai/phoenix-otel";

register({
  projectName: "my-tanstack-ai-app",
  endpoint: process.env["PHOENIX_COLLECTOR_ENDPOINT"] ?? "http://localhost:6006/v1/traces",
  apiKey: process.env["PHOENIX_API_KEY"],
});

如果你已经有一个标准的 OpenTeleometry 设置, 那也是有效的。 例如,一个当地的凤凰城收藏家,一个最低限度的手动设置看起来是这样的:

import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";
import { Resource } from "@opentelemetry/resources";
import { SimpleSpanProcessor } from "@opentelemetry/sdk-trace-base";
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";

const tracerProvider = new NodeTracerProvider({
  resource: new Resource({
    [SEMRESATTRS_PROJECT_NAME]: "my-tanstack-ai-app",
  }),
  spanProcessors: [
    new SimpleSpanProcessor(
      new OTLPTraceExporter({
        url: process.env["PHOENIX_COLLECTOR_ENDPOINT"] ?? "http://localhost:6006/v1/traces",
        headers:
          process.env["PHOENIX_API_KEY"] == null
            ? undefined
            : {
                Authorization: `Bearer ${process.env["PHOENIX_API_KEY"]}`,
              },
      }),
    ),
  ],
});

tracerProvider.register();

自定义跟踪器

默认情况下,中件会为此包使用全局跟踪器. 如果您的应用程序已经设置了请求扫描器或自定义跟踪器,请明确通过.

import { trace } from "@opentelemetry/api";

const tracer = trace.getTracer("tanstack-ai-request");

const middleware = openInferenceMiddleware({ tracer });

当您想要中间软件在不依赖全局默认的情况下参与特定的跟踪器设置时,此功能是有用的.

追踪到什么

中间软件为一个 TanStack AI 运行发出以下跨度结构 :

  • 一个 AGENT 跨度 chat() 援引
  • 一个 LLM 每个模型转弯的间距
  • 一个 TOOL 每个已执行的工具调用的时间间隔

对于工具循环,追踪一般会像:

  • AGENT
  • LLM 1
  • TOOL
  • LLM 2

这个 AGENT 跨度捕捉顶级请求和最后回应。 这个 LLM 跨度捕捉提供者/模型元数据、输入信息、输出信息、工具定义、符号计数以及模型的完成原因(llm.finish_reason提供时。 这个 TOOL 横跨.

实例

此软件包包含实例文件 examples/数字 :

  • examples/chat-with-tools.ts - 一个工具呼叫的 OpenAI 示例
  • examples/anthropic-multi-tool.ts - 有多个工具呼叫的Anthropic实例
  • examples/non-streaming-chat.ts - 带有系统提示的非流化实例

见 examples/README.md 用于设置和运行命令.

页:1

  • 这一一揽子措施只针对无害环境管理,因为TanStack AI只针对无害环境管理.
  • 中间软件在服务器和客户端环境中都起作用,但客户端/服务器的痕量缝合取决于您的应用程序的上下文传播设置.

版本与发布记录

@arizeai/openinference-tanstack-ai 共发布 24 个版本,首次发布于 2026/04/28;过去 12 个月发布了 24 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.3latest2026/10/2414 天前
0.3.22026/10/021 个月前
0.3.12026/10/021 个月前
0.3.02026/10/011 个月前
0.2.132026/09/191 个月前
0.2.122026/09/151 个月前

关于 @arizeai/openinference-tanstack-ai 的常见问题

@arizeai/openinference-tanstack-ai 是什么?

TanStack AI 的 OpenInference 中间软件

如何安装 @arizeai/openinference-tanstack-ai?

在项目目录运行 npm install @arizeai/openinference-tanstack-ai,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@tanstack/ai(>=0.10.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@arizeai/openinference-tanstack-ai 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@arizeai/openinference-tanstack-ai 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@arizeai/openinference-tanstack-ai 可以商用吗?

@arizeai/openinference-tanstack-ai 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@arizeai/openinference-tanstack-ai 的下载量有多少?

根据 npm 官方下载统计,@arizeai/openinference-tanstack-ai 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,932 次,日均约 431 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@arizeai/openinference-tanstack-ai 还在维护吗?

最新版本 0.3.3 发布于 2026/10/24(14 天前);至今共发布 24 个版本,其中过去 12 个月发布了 24 个;首次发布于 2026/04/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。