AI 모델 스펙·가격·기능 통합 오픈소스 DB 공개
전 세계 AI 모델의 스펙, 가격, 기능 정보를 한곳에 모은 오픈소스 프로젝트가 공개되었습니다. API와 TOML 형식의 파일 구조를 통해 데이터에 접근할 수 있으며, 커뮤니티 기여를 통해 최신 정보가 지속적으로 갱신됩니다. 주요 내용에는 모델의 토큰당 비용, 컨텍스트 제한, 지원 모달리티(Modality) 등의 세부 설정값과 로고 추가 방법 등이 포함되어 있습니다.
Models.dev는 AI 모델의 사양, 가격 및 기능에 대한 종합적인 오픈소스 데이터베이스입니다. 현재 사용 가능한 모든 AI 모델에 대한 정보를 담은 단일 데이터베이스가 없기 때문에, 우리는 이 문제를 해결하기 위해 커뮤니티 기여 프로젝트로 Models.dev를 시작했습니다. 우리는 내부적으로 opocode에서도 이를 사용하고 있습니다.
API API를 통해 이 데이터에 액세스할 수 있습니다. curl https://models.dev/api.json Model ID 필드를 사용하여 모든 모델을 조회할 수 있습니다. 이는 AI SDK에서 사용하는 식별자입니다.
로고 제공자(Provider) 로고는 SVG 파일로 제공됩니다. curl https://models.dev/logos/{provider}.svg {provider}를 제공자 ID(예: anthropic, openai, google)로 바꾸십시오. 해당 제공자의 로고가 없는 경우 기본 로고가 제공됩니다.
기여하기 데이터는 TOML 파일 형태로 리포지토리에 저장되며, 제공자 및 모델별로 정리됩니다. 로고는 SVG로 저장됩니다. 이 데이터는 웹페이지를 생성하고 API를 구동하는 데 사용됩니다. 데이터를 최신 상태로 유지하는 데 여러분의 도움이 필요합니다.
새 모델 추가 새 모델을 추가하려면 providers/ 디렉토리에 해당 제공자가 이미 있는지 확인하는 것으로 시작하세요. 없다면 다음을 따릅니다:
- 제공자(Provider) 생성 providers/에 제공자가 없다면: providers/에 제공자 ID로 새 폴더를 만듭니다. 예: providers/newprovider/ provider.toml에 제공자 세부 정보를 추가합니다:
name = "Provider Name" npm = "@ai-sdk/provider" # AI SDK 패키지 이름 env = ["PROVIDER_API_KEY"] # 인증에 사용되는 환경 변수 키 doc = "https://example.com/docs/models" # 제공자 문서 링크
제공자가 npm 패키지를 게시하지 않고 OpenAI 호환 엔드포인트를 노출하는 경우, npm 필드를 그에 맞게 설정하고 기본 URL을 포함합니다: npm = "@ai-sdk/openai-compatible" # OpenAI 호환 SDK 사용 api = "https://api.example.com/v1" # openai-compatible 사용 시 필수
- 로고 추가 (선택 사항) 제공자의 로고를 추가하려면: 제공자의 디렉토리에 logo.svg 파일을 추가합니다 (예: providers/newprovider/logo.svg) 고정된 크기나 색상이 없는 SVG 형식을 사용하고 채우기/선에는 currentColor를 사용합니다. SVG 구조 예시:
- 모델 정의 추가 제공자의 models/ 디렉토리에 파일 이름이 모델 ID인 새 TOML 파일을 만듭니다. 모델 ID에 /가 포함된 경우 하위 폴더를 사용하세요. 예를 들어, 모델 ID가 openai/gpt-5인 경우 openai/ 폴더를 만들고 그 안에 gpt-5.toml 파일을 배치합니다.
name = "Model Display Name" # 모델 표시 이름 attachment = true # 또는 false - 파일 첨부 지원 여부 reasoning = false # 또는 true - 추론/사고 과정(Chain-of-thought) 지원 여부 tool_call = true # 또는 false - 도구 호출 지원 여부 structured_output = true # 또는 false - 전용 구조화된 출력 기능 지원 여부 temperature = true # 또는 false - 온도 제어 지원 여부 knowledge = "2024-04" # 지식 마감일 release_date = "2025-02-19" # 최초 공개 날짜 last_updated = "2025-02-19" # 가장 최근 업데이트 날짜 open_weights = true # 또는 false - 모델의 학습된 가중치가 공개되었는지 여부
[ cost ] input = 3.00 # 백만 입력 토큰당 비용 (USD) output = 15.00 # 백만 출력 토큰당 비용 (USD) reasoning = 15.00 # 백만 추론 토큰당 비용 (USD) cache_read = 0.30 # 백만 캐시된 읽기 토큰당 비용 (USD) cache_write = 3.75 # 백만 캐시된 쓰기 토큰당 비용 (USD) input_audio = 1.00 # 백만 오디오 입력 토큰당 비용 (USD) output_audio = 10.00 # 백만 오디오 출력 토큰당 비용 (USD)
[ limit ] context = 400_000 # 최대 컨텍스트 윈도우 (토큰) input = 272_000 # 최대 입력 토큰 output = 8_192 # 최대 출력 토큰
[ modalities ] input = [ " text " , " image " ] # 지원하는 입력 모달리티 output = [ " text " ] # 지원하는 출력 모달리티
[ interleaved ] field = " reasoning_content " # 인터리브된 필드("reasoning_content" 또는 "reasoning_details")의 이름
3a. extends를 사용하여 기존 모델 재사용 다른 제공자의 모델을 미러링하는 래퍼(Wrapper) 제공자의 경우, 원본 모델 정의를 재사용하는 것을 권장합니다.