@rabbittwatch/ai-observability
v0.1.2
Published
RabbittWatch AI Observability tracing SDK
Readme
RabbittWatch AI Observability SDK
Install:
npm install @rabbittwatch/ai-observabilityConfigure:
RABBITTIZE_INGEST_KEY=rw_live_xxxxx
RABBITTIZE_ENDPOINT=https://rabbitize-api.rabbitt.ai
RABBITTIZE_SERVICE_NAME=support-api
RABBITTIZE_ENVIRONMENT=prodWrap a provider call:
import { RabbittWatchAI } from "@rabbittwatch/ai-observability";
const rwAI = new RabbittWatchAI({
apiKey: process.env.RABBITTIZE_INGEST_KEY!,
endpoint: process.env.RABBITTIZE_ENDPOINT,
serviceName: process.env.RABBITTIZE_SERVICE_NAME || "app",
environment: process.env.RABBITTIZE_ENVIRONMENT || "prod",
});
const response = await rwAI.trace(
{
name: "chat.answer",
provider: "openai",
model: "gpt-4o",
endpoint: "/chat",
input: messages,
},
() => openai.chat.completions.create({ model: "gpt-4o", messages })
);Manual spans:
const trace = rwAI.startTrace({ name: "POST /tickets/classify", endpoint: "/tickets/classify" });
const span = trace.startSpan({
name: "bedrock.classify",
kind: "llm",
provider: "bedrock",
model: "anthropic.claude-3-5-sonnet-20241022-v2:0",
});
try {
const result = await bedrockClient.send(command);
span.end({ status: "success", promptTokens: 1800, completionTokens: 120, output: result });
} catch (error) {
span.end({ status: "error", error });
throw error;
} finally {
await trace.flush();
}By default, prompt and output previews are not sent. Enable captureInput or captureOutput only when your privacy policy allows it.
