OpenAI 节点的 OpenInference 仪器
本模块为下列人员提供自动仪器: OpenAI 节点.js SDK 可用于与 @ opleteometry/ sdk- trace- 节点。 。 。 .
安装
npm install --save @arizeai/openinference-instrumentation-openai
使用量
要装入 OpenAI 仪器, 请在寄存器调用中指定它以及您想要启用的任何附加仪器 .
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { OpenAIInstrumentation } = require("@arizeai/openinference-instrumentation-openai");
const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [new OpenAIInstrumentation()],
});
支持的 APIs
| OpenAI API 软件 | 宽度 | 扩展名 |
|---|---|---|
聊天补全( C)chat.completions.create,包括流线) | LLM | OpenAI Chat Completions |
完成(completions.create,包括流线) | LLM | OpenAI Completions |
嵌入( 相接)embeddings.create(中文(简体) ) | EMBEDDING | OpenAI Embeddings |
答复responses.create,包括流线) | LLM | OpenAI Responses |
决 定decisions.create时,需要 openai 页:1 | DECISION | OpenAI Decisions |
决定 API
要求 决定 API 记录为
DECISION 间距 而不是说
LLM 跨度:模型对调用者提供的答案进行分数,而不是生成文本。 跨度带
decision.system 编号 : decision.provider (单位:千美元)openai, (中文(简体) ), decision.request.model_name, (中文(简体) ),
decision.response.model_name, (中文(简体) ), decision.model_name, (中文(简体) ), decision.token_count.input 编号 :
decision.token_count.output,以及作为 JSON 的原始请求和答复 input.value 编号 :
output.value。无 llm.* 属性设定在决定跨度上.
实例
要运行示例, 请运行以下命令:
cd js/packages/openinference-instrumentation-openai
pnpm install
pnpm -r build
npx -y tsx examples/chat.ts # or responses.ts, embed.ts, etc
关于OpenTeleometry Node.js SDK的更多信息,请参见: OpenTeleometry 节点.js SDK 文档。 。 。 .
使用自定义追踪提供者
您可以在创建 OpenAI 仪器时指定自定义的跟踪器提供者 。 当您想要使用非全局追踪器提供者或对追踪配置有更强的控制时,此功能是有用的.
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { Resource } from "@opentelemetry/resources";
import { SEMRESATTRS_PROJECT_NAME } from "@arizeai/openinference-semantic-conventions";
import { OpenAIInstrumentation } from "@arizeai/openinference-instrumentation-openai";
import { registerInstrumentations } from "@opentelemetry/instrumentation";
// Create a custom tracer provider
const customTracerProvider = new NodeTracerProvider({
resource: new Resource({
[SEMRESATTRS_PROJECT_NAME]: "my-openai-project",
}),
});
// Pass the custom tracer provider to the instrumentation
const openaiInstrumentation = new OpenAIInstrumentation({
tracerProvider: customTracerProvider,
});
// Register the instrumentation with the custom tracer provider
registerInstrumentations({
instrumentations: [openaiInstrumentation],
tracerProvider: customTracerProvider,
});
或者,您可以在创建仪器后设置跟踪提供者:
const openaiInstrumentation = new OpenAIInstrumentation();
openaiInstrumentation.setTracerProvider(customTracerProvider);
兼容性
@arizeai/openinference-instrumentation-openai 与以下版本兼容 openai 软件包 :
| OpenAI 版本 | OpenInference 仪器版本 |
|---|---|
| ^7.0.0 (中文(简体) ) | ^ 4.4.0 (中文(简体) ) |
| ^ 6. 0 | ^ 4.0.0 (中文(简体) ) |
| ^ 5.0.0 (中文(简体) ) | ^ 3. 0.0 (韩语) |
| ^ 4.0.0 (中文(简体) ) | ^ 2. 0 |
快速缓存令牌计数
OpenAI 缓存读取( O)cached_tokens写作(cache_write_tokens)记录为
llm.token_count.prompt_details.cache_read 财务报告和审定财务报表 cache_write见
语义公约 说明这些分项与及时总数的关系,以及
缓存符号示例 凤凰城的往返旅行.