Requesty

Requesty

Requesty는 OpenAI, Anthropic, Google, Mistral, AWS 등 주요 프로바이더의 300개 이상의 대형 언어 모델에 접근할 수 있게 해주는 통합 LLM 게이트웨이예요. AI SDK용 Requesty 프로바이더는 이 모든 모델과 원활하게 통합되면서도 엔터프라이즈급 이점을 제공해요:

  • 유니버설 모델 접근: 여러 프로바이더의 300+ 모델을 하나의 API 키로 사용
  • 99.99% 업타임 SLA: 지능형 페일오버와 로드 밸런싱을 갖춘 엔터프라이즈급 인프라
  • 비용 최적화: 지능형 라우팅과 프롬프트 캐싱으로 최대 80% 비용 절감하는 종량제 가격
  • 고급 보안: 프롬프트 인젝션 탐지, 종단 간 암호화, GDPR 준수
  • 실시간 관측성: 내장 모니터링, 트레이싱, 분석
  • 지능형 라우팅: 자동 페일오버와 성능 기반 라우팅
  • 추론 지원: 설정 가능한 노력 수준을 갖춘 고급 추론 기능

Requesty의 기능에 대해 더 알아보려면 Requesty Documentation을 참고하세요.

출처: 문서

본문

Requesty 프로바이더는 @requesty/ai-sdk 모듈에서 사용할 수 있어요. 다음과 같이 설치할 수 있어요:

npm install @requesty/ai-sdk

API 키 설정

보안을 위해 API 키를 정확히 REQUESTY_API_KEY라는 이름의 환경 변수로 설정해야 해요:

# Linux/Mac
export REQUESTY_API_KEY=your_api_key_here

# Windows Command Prompt
set REQUESTY_API_KEY=your_api_key_here

# Windows PowerShell
$env:REQUESTY_API_KEY="your_api_key_here"

Requesty API 키는 Requesty Dashboard에서 얻을 수 있어요.

프로바이더 인스턴스

@requesty/ai-sdk에서 기본 프로바이더 인스턴스 requesty를 import 할 수 있어요:

import { requesty } from '@requesty/ai-sdk';

또는 createRequesty를 사용해 커스텀 프로바이더 인스턴스를 만들 수도 있어요:

import { createRequesty } from '@requesty/ai-sdk';

const customRequesty = createRequesty({
  apiKey: 'YOUR_...EY',
});

언어 모델

Requesty는 간단하고 통합된 인터페이스로 채팅(chat)과 완성(completion) 모델을 모두 지원해요:

// Using the default provider instance
const model = requesty('openai/gpt-4o');

// Using a custom provider instance
const customModel = customRequesty('anthropic/claude-3.5-sonnet');

사용 가능한 전체 모델 목록은 Requesty Models 문서에서 찾을 수 있어요.

예시

AI SDK와 함께 Requesty를 사용하는 예시들이에요:

generateText

import { requesty } from '@requesty/ai-sdk';
import { generateText } from 'ai';

const { text } = await generateText({
  model: requesty('openai/gpt-4o'),
  prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});

console.log(text);

streamText

import { requesty } from '@requesty/ai-sdk';
import { streamText } from 'ai';

const result = streamText({
  model: requesty('anthropic/claude-3.5-sonnet'),
  prompt: 'Write a short story about AI.',
});

for await (const chunk of result.textStream) {
  console.log(chunk);
}

구조화된 출력

import { requesty } from '@requesty/ai-sdk';
import { generateText, Output } from 'ai';
import { z } from 'zod';

const { output } = await generateText({
  model: requesty('openai/gpt-4o'),
  output: Output.object({
    schema: z.object({
      recipe: z.object({
        name: z.string(),
        ingredients: z.array(z.string()),
        steps: z.array(z.string()),
      }),
    }),
  }),
  prompt: 'Generate a recipe for chocolate chip cookies.',
});

console.log(output.recipe);

고급 기능

추론 지원

Requesty는 지원되는 모델에 대해 설정 가능한 노력 수준을 갖춘 고급 추론 기능을 제공해요:

import { createRequesty } from '@requesty/ai-sdk';
import { generateText } from 'ai';

const requesty = createRequesty({ apiKey: proces..._KEY });

// Using reasoning effort
const { text, reasoning } = await generateText({
  model: requesty('openai/o3-mini', {
    reasoningEffort: 'medium',
  }),
  prompt: 'Solve this complex problem step by step...',
});

console.log('Response:', text);
console.log('Reasoning:', reasoning);

추론 노력 값

  • 'low' - 최소 추론 노력
  • 'medium' - 중간 추론 노력
  • 'high' - 높은 추론 노력
  • 'max' - 최대 추론 노력 (Requesty 전용)
  • Budget 문자열 (예: "10000") - 추론을 위한 특정 토큰 예산

지원되는 추론 모델

  • OpenAI: openai/o3-mini, openai/o3
  • Anthropic: anthropic/claude-sonnet-4-0, 기타 Claude 추론 모델
  • Deepseek: 모든 Deepseek 추론 모델 (자동 추론)

커스텀 설정

커스텀 설정으로 Requesty를 구성해요:

import { createRequesty } from '@requesty/ai-sdk';

const requesty = createRequesty({
  apiKey: proces...KEY,
  baseURL: 'https://router.requesty.ai/v1',
  headers: {
    'Custom-Header': 'custom-value',
  },
  extraBody: {
    custom_field: 'value',
  },
});

추가 본문 파라미터 전달

Requesty에 추가 본문 파라미터를 전달하는 방법은 세 가지가 있어요:

1. 프로바이더 옵션을 통해

await streamText({
  model: requesty('anthropic/claude-3.5-sonnet'),
  messages: [{ role: 'user', content: 'Hello' }],
  providerOptions: {
    requesty: {
      custom_field: 'value',
      reasoning_effort: 'high',
    },
  },
});

2. 모델 설정을 통해

const model = requesty('anthropic/claude-3.5-sonnet', {
  extraBody: {
    custom_field: 'value',
  },
});

3. 프로바이더 팩토리를 통해

const requesty = createRequesty({
  apiKey: proces...KEY,
  extraBody: {
    custom_field: 'value',
  },
});

엔터프라이즈 기능

Requesty는 여러 엔터프라이즈급 기능을 제공해요:

  1. 99.99% 업타임 SLA: 고급 라우팅과 페일오버 메커니즘으로 다른 서비스가 실패해도 AI 애플리케이션을 온라인 상태로 유지해요.

  2. 지능형 로드 밸런싱: 실시간 성능 기반 라우팅이 최고 성능의 프로바이더를 자동으로 선택해요.

  3. 비용 최적화: 지능형 라우팅으로 응답 품질을 유지하면서 API 비용을 최대 40% 절감할 수 있어요.

  4. 고급 보안: 내장 프롬프트 인젝션 탐지, 종단 간 암호화, GDPR 준수.

  5. 실시간 관측성: 모든 요청에 대한 포괄적인 모니터링, 트레이싱, 분석.

  6. 지리적 제한: 설정 가능한 지리적 제어를 통해 지역 규정을 준수할 수 있어요.

  7. 모델 접근 제어: 접근 가능한 모델과 프로바이더를 세밀하게 제어할 수 있어요.

주요 이점

  • 제로 다운타임: 50ms 미만의 전환 시간으로 자동 페일오버
  • 멀티 프로바이더 중복: 정상 프로바이더 간의 원활한 전환
  • 지능형 큐잉: 지수 백오프를 갖춘 재시도 로직
  • 개발자 친화적: 통합 API로 간단한 설정
  • 유연성: 코드 변경 없이 모델과 프로바이더 전환
  • 엔터프라이즈 지원: 커스텀 SLA를 갖춘 고볼륨 사용자를 위한 지원

추가 자료

더 알아보기 (Learn more)