하나의 통합 API로 15개의 AI 제공업체를 지원하는 JS 라이브러리를 만들었습니다 — novixo-ai
요약
novixo-ai는 15개의 다양한 AI 제공업체를 하나의 통합된 인터페이스로 연결해주는 TypeScript/JavaScript 라이브러리입니다. API마다 다른 형식을 통일하고 자동 폴백, 속도 제한 감지, 응답 캐싱 기능을 제공하여 개발 효율성을 높여줍니다.
핵심 포인트
- 15개 AI 제공업체를 지원하는 단일 통합 API 인터페이스 제공
- 속도 제한 및 오류 발생 시 자동으로 다음 제공업체로 전환하는 폴백 기능
- 중복 호출을 방지하여 비용과 토큰을 절약하는 인메모리 응답 캐싱 지원
- OpenRouter를 통한 100개 이상의 모델 접근성 확보
AI 기반 앱을 만들어 본 적이 있다면, 그 고충을 잘 알 것입니다.
모든 제공업체(Provider)는 서로 다른 API 형식을 가지고 있습니다. 서로 다른 에러 코드(Error codes). 서로 다른 속도 제한(Rate limit) 동작 방식. Groq를 위한 로직을 작성하고, Gemini를 위해 다시 작성하고, OpenAI를 추가할 때 또 다시 다시 작성해야 합니다. 모델을 전환한다는 것은 코드의 모든 부분을 수정해야 함을 의미합니다.
저는 이에 지쳤습니다. 그래서 novixo-ai를 만들었습니다.
novixo-ai란 무엇인가요?
novixo-ai는 **15개의 AI 제공업체(AI providers)를 위한 하나의 통합 인터페이스(Unified interface)**를 제공하는 오픈 소스 TypeScript/JavaScript 패키지입니다. 자동 폴백(Automatic fallback), 속도 제한 감지(Rate-limit detection), 그리고 응답 캐싱(Response caching) 기능이 내장되어 있습니다.
npm install novixo-ai
지원되는 제공업체 (Supported Providers)
| 제공업체 (Provider) | 키 (Key) |
|---|---|
| Groq | groq |
| ... |
빠른 시작 (Quick Start)
import { NovixoAI } from "novixo-ai"
const ai = new NovixoAI({
...
이것으로 끝입니다. 제공업체별 설정이 필요 없습니다. API마다 별도의 커스텀 에러 핸들링(Custom error handling)을 할 필요도 없습니다.
자동 폴백(Auto-Fallback) 작동 방식
이것은 제가 가장 자랑스럽게 생각하는 기능입니다.
우선순위 순서를 정의하면, novixo-ai는 왼쪽에서 오른쪽으로 각 제공업체를 시도합니다:
- 제공업체가 **속도 제한(Rate limited)**에 걸리면 → 자동으로 건너뛰고, 쿨다운(Cooldown) 후에 재시도합니다.
- 제공업체가 **실패(Fails)**하면 → 즉시 다음 제공업체를 시도합니다.
- 모두 실패하면 → 각 제공업체가 반환한 내용을 보여주는 상세한 에러를 발생시킵니다.
const ai = new NovixoAI({
keys: {
groq: process.env.GROQ_API_KEY,
...
사용자 측에서 추가할 코드는 없습니다. 그냥 작동합니다.
응답 캐싱 (Response Caching)
중복된 프롬프트(Prompts)는 API를 두 번 호출하지 않습니다. 캐시는 구성 가능한 TTL(Time To Live)을 가진 인메모리(In-memory) 방식입니다.
const ai = new NovixoAI({
keys: { groq: process.env.GROQ_API_KEY },
cache: true, // 기본적으로 활성화됨
...
토큰을 절약합니다. 비용을 절약합니다. 특히 개발 중에 매우 유용합니다.
무료 티어 키(Free Tier Keys)와 함께 작동
시작하기 위해 유료 플랜이 필요하지 않습니다. Groq와 Gemini 모두 관대한 무료 티어를 제공합니다.
const ai = new NovixoAI({
keys: {
groq: process.env.GROQ_API_KEY, // 무료
...
규모를 확장함에 따라 더 많은 제공업체를 추가하세요. 폴백 순서는 완전히 사용자의 제어 하에 있습니다.
OpenRouter 트릭
API 키가 하나뿐이라면 OpenRouter를 사용하세요. 하나의 OpenRouter 키로 모든 제공업체의 100개 이상의 모델에 접근할 수 있으며, novixo-ai는 이를 기본적으로 (natively) 지원합니다.
const ai = new NovixoAI({
keys: {
openrouter: process.env.OPENROUTER_API_KEY
...
시스템 프롬프트 (System Prompts) 사용
const res = await ai.chat(
[{ role: "user", content: "Summarise this for me: ..." }],
{ systemPrompt: "You are a concise academic writing assistant." }
...
호출당 특정 제공업체 강제 지정
const res = await ai.chat(messages, {
providers: ["openai"] // 이 호출에 대해서만 OpenAI를 사용함
})
완전한 TypeScript 지원
제공업체 (providers), 메시지 (messages), 설정 (config), 응답 (responses) 등 모든 것이 타입이 지정되어 있습니다.
import type { NovixoAIConfig, AIResponse, Provider } from "novixo-ai"
const res: AIResponse = await ai.chat(messages)
...
NovixoTech 생태계의 일부
novixo-ai는 NovixoTech 산하의 세 가지 오픈 소스 패키지 중 하나입니다:
- novixo-engine — AES-256-GCM 암호화된 큐잉 (queuing), 서비스 워커 (service workers), 엔드포인트 페일오버 (endpoint failover)를 갖춘 오프라인 우선 (offline-first) 네트워크 SDK
- novixo-agent-logger — AI 에이전트 작업에 대한 감사 추적 (audit trail)
- novixo-ai — 멀티 제공업체 AI 클라이언트 ← 현재 위치
모두 무료입니다. 모두 오픈 소스입니다.
링크
이 도구가 시간을 절약해 주었다면, GitHub star는 큰 힘이 됩니다. 문제에 부딪히거나 새로운 제공업체 추가를 원하신다면 이슈 (issue)를 열어주세요. 기여 (contributions)는 언제나 환영합니다.
Built by @NovixoTech
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기