Respan Observability
Respan Observability
Respan(구 Keywords AI)은 observability, evaluation, gateway 라우팅을 위한 LLM 엔지니어링 플랫폼이에요. Respan은 AI SDK와 연동되어 다음을 제공해요:
- AI SDK 호출마다 트레이싱 (입력, 출력, 토큰 사용량, 비용, 지연시간)
- Tool 호출 및 구조화된 출력 캡처
- 단일 엔드포인트 뒤에서 250개 이상의 모델에 걸친 선택적 gateway 라우팅
출처: 문서
본문
설정 (Setup)
AI SDK는 OpenTelemetry를 통한 트레이싱을 지원해요. @respan/instrumentation-vercel 의 VercelAIInstrumentor 를 사용하면 트레이스가 Respan으로 자동 내보내져요.
설치 (Install)
npm install ai @ai-sdk/openai @respan/respan @respan/instrumentation-vercel
환경 변수 설정
RESPAN_API_KEY="your-respan-api-key"
API 키는 platform.respan.ai에서 받을 수 있어요.
Respan 초기화
<Tabs items={["Next.js", "Serverless / Node"]}>
Next.js 프로젝트 루트에 instrumentation.ts 를 만드세요:
import { Respan } from '@respan/respan';
import { VercelAIInstrumentor } from '@respan/instrumentation-vercel';
export async function register() {
const respan = new Respan({
apiKey: proces...KEY,
instrumentations: [new VercelAIInstrumentor()],
});
await respan.initialize();
}
그런 다음 next.config.ts 에서 SDK 패키지를 서버 외부 패키지로 표시하세요:
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
serverExternalPackages: ['@respan/respan', '@respan/instrumentation-vercel'],
};
export default nextConfig;
핸들러나 진입점의 맨 위에서 Respan을 초기화하세요:
import { Respan } from '@respan/respan';
import { VercelAIInstrumentor } from '@respan/instrumentation-vercel';
const respan = new Respan({
apiKey: proces...KEY,
instrumentations: [new VercelAIInstrumentor()],
});
await respan.initialize();
텔레메트리를 활성화한 텍스트 생성
import { openai } from '@ai-sdk/openai';
import { generateText } from 'ai';
const result = await generateText({
model: openai('gpt-6-luna'),
prompt: 'Tell me a joke about AI',
experimental_telemetry: { isEnabled: true },
});
스팬은 입력, 출력, 토큰 사용량, 비용과 함께 Respan 트레이스 페이지에 나타나요.
Gateway 라우팅 (선택)
Respan을 프로바이더 전반의 통합 게이트웨이로 사용하려면, 어떤 AI SDK 프로바이더든 https://api.respan.ai/api 와 RESPAN_API_KEY 를 가리키게 하면 돼요. 프로바이더 키는 Respan에서 관리하며, 런타임에는 Respan 키만 필요해요.
import { createOpenAI } from '@ai-sdk/openai';
import { generateText } from 'ai';
const provider = createOpenAI({
apiKey: proces...EY!,
baseURL: 'https://api.respan.ai/api',
});
const result = await generateText({
model: provider('gpt-5.4-nano'),
prompt: 'Tell me a joke about AI',
experimental_telemetry: { isEnabled: true },
});
동일한 게이트웨이 엔드포인트는 각각의 AI SDK 프로바이더(createAnthropic, createGoogleGenerativeAI)와 일치하는 base path(/api/anthropic, /api/google/gemini)를 사용하면 Anthropic 및 Google 모델도 허용해요.