apple-on-device-openai: Apple의 On-Device 모델을 OpenAI 호환 API로 운영할 수 있도록 하는 프로젝트

apple-on-device-openai 프로젝트 소개

Apple의 on‑device Foundation Model을 OpenAI API 스타일로 로컬에서 운영할 수 있는 흥미로운 Swift 기반 GUI 프로젝트입니다. OpenAI 호환 클라이언트 및 파이썬 SDK에서 기존 방식처럼 사용할 수 있어 개발자에게 큰 매력이며, macOS 26 베타와 Apple Intelligence에 관심 있는 신기술 테스트 사용자에게 추천합니다.

apple‑on‑device‑openai 프로젝트는 macOS 26 베타 환경에서 Apple Intelligence의 Foundation Model을 GUI 기반의 로컬 서버로 감싸, /v1/chat/completions과 같은 형태의 OpenAI 호환 API 엔드포인트를 제공합니다 . 주요 아이디어는 OpenAI와 호환되는 API를 사용해, 서버 없이도 macOS에서 on‑device 모델을 쉽게 호출할 수 있다는 점입니다. 이를 통해 SwiftUI로 제작된 GUI 앱을 사용하여 커맨드라인 툴의 요청 제한(리미트)을 우회할 수 있습니다.

비슷한 기능을 제공하는 로컬 LLM 래퍼(wrapper)들과 비교해보면, Docker, Ollama 같은 도구는 외부 모델을 활용하지만, 이 프로젝트는 완전히 on‑device 모델만 사용한다는 점이 가장 큰 차이점입니다. 또한, CLI 기반 도구들은 Apple의 백그라운드 리미트에 걸릴 수 있지만, 이 프로젝트는 GUI 기반으로 구현되어 rate limit 문제가 적습니다. 특히, 자체적으로 OpenAI API와의 호환성을 우선시해, 손쉬운 통합성에서 돋보입니다.

apple-on-device-openai 프로젝트의 주요 특징

  • OpenAI API 호환: /v1/chat/completions 엔드포인트 완벽 호환과 스트리밍 지원 .
  • 로컬 처리: Apple의 Foundation Model을 사용하여 네트워크 없이도 AI 호출 가능 .
  • 모델 가용성 확인 기능: 앱 실행 시 on‑device AI 사용 가능 여부 자동 점검 .
  • 툴 호출 (WIP): 파이썬 test_server.py 예제 스크립트로 다양한 기능 검증 가능 .
  • SwiftUI GUI: API 서버 설정과 실행이 직관적이며 범용 클라이언트 연동에 유리 .

apple-on-device-openai 프로젝트 사용 방법

apple-on-device-openai 프로젝트를 빌드하기 위해서는 Xcode가 필요합니다. 다음과 같이 GitHub 저장소를 복제한 뒤, Xcode로 열어 빌드합니다:

git clone https://github.com/gety-ai/apple-on-device-openai
cd apple-on-device-openai
open AppleOnDeviceOpenAI.xcodeproj

Xcode에서 빌드 후 실행하면, 127.0.0.1:11535 기본 주소의 GUI 서버가 시작되며, 다음과 같은 형태로 호출해서 사용할 수 있습니다:

curl -X POST http://127.0.0.1:11535/v1/chat/completions \
 -H "Content-Type: application/json" \
 -d '{
    "model": "apple-on-device",
    "messages":[{"role":"user","content":"안녕, 오늘 날씨 어때?"}],
    "temperature":0.7,
    "stream": false
}'

또는 OpenAI Python SDK를 사용하여 호출할 수도 있습니다.

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:11535/v1", api_key="not-needed")
response = client.chat.completions.create(
    model="apple-on-device",
    messages=[{"role":"user","content":"Hello"}],
    stream=True
)
for chunk in response: print(chunk.choices[0].delta.content, end="")

함께 포함된 test_server.py 스크립트로 기본 헬스체크와 멀티턴 대화, 스트리밍, 다국어 대응 등을 확인할 수 있습니다 .

:github: apple-on-device-openai 프로젝트 GitHub 저장소

:books: Apple의 Foundation Models 공식 문서




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: