소개
Apex은 Callstack의 모델로, React Native 및 React 앱 개발에 활용할 수 있습니다. 지원하는 입력은 텍스트 / 이미지이며 입력 예산은 262,144토큰, max_tokens 상한은 131,072입니다. 스트리밍과 함수 호출도 지원합니다.
| 항목 | 값 |
|---|---|
| 입력 | 텍스트 |
| 출력 | 텍스트 |
| 입력 예산 | 262,144 tokens |
| max_tokens 상한 | 131,072 |
핵심 기능 및 하이라이트
실제 React Native 코드가 쓰이는 방식으로 학습
Callstack은 React Native 문서, 소스 코드, 공개 API 심볼, 라이브러리, 실제 저장소에 근거한 토론을 바탕으로 Apex를 만들었습니다. 이는 개발자들이 맡기는 작업에서 드러납니다. 내비게이션 설정, 리스트 성능, 애니메이션, 네이티브 모듈 래퍼, 라이브러리 업그레이드처럼 일반 모델이 엉뚱한 버전의 패턴을 가져오기 쉬운 작업이 그렇습니다.
코딩 워크플로에 맞는 도구 호출
함수 정의를 최대 128개까지 보내면 Apex는 산문 대신 도구 호출로 응답할 수 있습니다. 파일을 읽고, 테스트를 실행하고, 패치를 적용하는 식입니다. 애플리케이션이 도구를 실행하고 일치하는 tool_call_id가 달린 tool 메시지로 결과를 돌려줍니다. 모델은 제안하고, 무엇을 실행할지는 여러분의 코드가 결정합니다.
한 번의 요청으로 기능 전체를
262,144 토큰이면 화면, 그 훅, 내비게이터 설정, 관련 테스트, 오류 로그를 함께 보낼 수 있습니다. 모델은 프로젝트 구조에 대한 추측이 아니라 전달받은 파일을 바탕으로 답합니다.
버그가 어려울 때만 추론 수준을 높이세요
reasoning_effort를 사용하면 간단한 수정과 설명은 none이나 low로 유지하고, 여러 파일에 걸친 버그에는 medium이나 xhigh로 올릴 수 있습니다. 추론 토큰은 max_tokens 안에 포함되므로, 생각하는 데 드는 비용이 청구되는 사용량에 그대로 드러납니다.
요청 파라미터
| 파라미터 | 필수 | 설명 |
|---|---|---|
messages | 예 | Apex를 활용한 React Native 개발에 필요한 대화와 근거를 텍스트로 순서대로 전달하고 각 도구 결과에 원래 tool_call_id를 연결합니다. 1개 이상 · 256개 이하 |
max_tokens | 아니요 | Apex의 max_tokens는 표시되는 답변과 과금 대상 추론을 합한 한도이며 기본값은 4096, 최댓값은 131072이고 한도를 높여도 토큰 단가는 바뀌지 않습니다. |
reasoning_effort | 아니요 | Apex는 none, low, medium, xhigh를 제공하며 기본값은 medium입니다. Apex를 활용한 React Native 개발에서 수준을 비교하면 깊은 추론에 따른 출력 토큰과 대기 시간 증가를 확인할 수 있습니다. |
stop | 아니요 | Apex의 생성을 멈출 문자열을 하나 또는 최대 4개 지정하며 일치한 문자열 자체는 답변에 포함하지 않습니다. 1자 이상 · 1개 이상 · 4개 이하 |
temperature | 아니요 | Apex의 temperature 범위는 0~2이며 Apex를 활용한 React Native 개발의 표현을 비교할 때 다른 샘플링 설정을 고정합니다. |
top_p | 아니요 | Apex의 top_p는 누클리어스 샘플링을 조절하며 Apex를 활용한 React Native 개발에서 효과를 확인할 때 temperature와 따로 변경합니다. |
tools | 아니요 | Apex를 활용한 React Native 개발에 필요한 함수를 OpenAI 형식으로 Apex에 전달하며 모델이 인수를 제안하고 앱에서 검증·실행합니다. 128개 이하 |
parallel_tool_calls | 아니요 | Apex를 활용한 React Native 개발에 외부 결과가 여러 개 필요할 때 Apex가 독립적인 함수 호출을 함께 제안하도록 허용합니다. 기본값: |
tool_choice | 아니요 | Apex에서 auto, none, required 또는 특정 함수를 선택하고 Apex를 활용한 React Native 개발을 이어 갈 때 반환된 호출 ID를 유지합니다. |
요금
입력 $0.50 / 출력 $3 100만 토큰당
활용 사례
느린 리스트 화면 고치기
renderItem이 있는 FlatList 화면, 데이터 훅, 프로파일러 메모를 붙여 넣고 어디서 리렌더링이 일어나는지 물어보세요. Apex는 이런 React Native 질문에 맞게 설계되어 있으며, 메모이제이션, 안정적인 키, 아이템 레이아웃 변경을 포함한 집중된 패치를 제안할 수 있습니다. 다른 풀 리퀘스트와 같은 방식으로 검토하면 됩니다.
풀 리퀘스트 검토하기
diff와 함께 변경된 파일을 보내고, 특정 줄을 가리킬 수 있는 문제를 요청하세요. 오래된 클로저, 누락된 이펙트 정리, iOS에서만 동작하는 플랫폼별 코드 등이 해당됩니다. 순위가 매겨진 목록을 요청하면 첫 번째 항목이 병합을 막을 만큼 중요한 문제가 됩니다.
라이브러리나 SDK 업그레이드하기
변경 로그 발췌와 이전 API를 쓰는 파일을 주고, 변경 사항을 반영해야 할 순서대로 달라고 요청하세요. Callstack에 따르면 이 모델은 잘못된 가정을 의심하고 변경 순서를 정할 수 있어, 여러 단계로 이루어진 업그레이드에 적합합니다.
테스트와 Next.js 코드 생성하기
붙여 넣은 코드로 컴포넌트 테스트, 훅 테스트, Next.js 라우트 핸들러를 요청하세요. Callstack은 Next.js 결과도 공개하고 있어, 웹용 React 작업도 부차적인 것이 아니라 지원되는 용도입니다.
프롬프트 가이드 및 실전 팁
설명 대신 파일을 보내세요
관련 소스 코드를 각 블록 위에 파일 경로와 함께 메시지에 넣고, 마지막에 작업 내용과 플랫폼 버전을 적어 주세요. 한 React Native 버전에서는 동작하고 다른 버전에서는 깨지는 화면도, 패키지 버전이 프롬프트에 있으면 훨씬 쉽게 고칠 수 있습니다.
작업에 맞는 추론 수준을 고르세요
대부분의 작업에서는 reasoning_effort를 medium으로 두세요. 이름 변경, 작은 수정, 설명에는 none이나 low를 쓰고, 원인이 여러 파일에 걸친 버그에는 xhigh를 쓰세요. 수준을 올릴 때는 max_tokens도 함께 올리세요. 추론이 보이는 답변과 같은 예산을 나눠 쓰기 때문입니다.
도구를 연결하고 루프를 이어 가세요
도구를 정의하고, 모델이 도구 호출을 반환하게 한 뒤, 여러분의 코드에서 실행하고, 같은 tool_call_id가 달린 tool 메시지로 결과를 돌려주세요. 호출을 만든 assistant 메시지는 기록에 남겨 두어야 다음 턴에서 무슨 일이 있었는지 알 수 있습니다.
긴 응답은 스트리밍하고 종료 사유를 확인하세요
여러 파일에 걸친 응답은 진행 상황을 보여 줄 수 있도록 스트리밍을 켜고, 출력을 완료된 것으로 보기 전에 종료 사유를 확인하세요.
max_tokens때문에 잘린 응답은 같은 요청을 다시 보내기보다 더 높은 한도가 필요합니다.
Apex로 React Native를 수정합니다
Apex는 React Native에 중점을 둔 Callstack의 코드 모델입니다. 컴포넌트, 대상 플랫폼, 패키지 버전, 관찰한 동작을 텍스트로 전달합니다. 텍스트 전용 엔드포인트이므로 스크린샷만으로는 내용을 읽지 못합니다.
모바일 문제의 맥락을 제공합니다
iOS와 Android의 차이, 관련 탐색·상태 관리 코드, 기대 결과를 포함합니다. 입력 한도는 262,144토큰이고 max_tokens는 최대 131,072입니다. 이 엔드포인트가 공개한 추론 수준을 사용하고 분석과 수정안에 필요한 여유를 둡니다.
수정안을 확인합니다
Apex가 함수를 요청해도 파일과 테스트 명령에 대한 접근은 앱에서 관리합니다. 결과를 반환할 때 tool_call_id를 유지한 뒤 변경 내용을 검토하고 대상 플랫폼에서 검증합니다. 긴 설명은 스트리밍으로 완료 전에 읽기 시작할 수 있습니다.
Apex를 활용한 React Native 개발에는 Apex 자체의 콘텐츠 판단이 적용되며 NSFW 응답은 요청이나 모델 버전에 따라 달라지므로 무제한 출력을 약속하지 않습니다.
API 빠른 시작
curl --fail-with-body -sN https://api.spicyapi.ai/v1/chat/completions \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "callstack/apex/chat",
"messages": [
{
"role": "user",
"content": "Summarise the following release notes into three bullet points."
}
],
"stream": true
}' \
| jq --unbuffered -Rrj 'select(startswith("data: ")) | .[6:] | select(. != "[DONE]") | fromjson | if .error then "\n[error] \(.error.message)\n" else (.choices[0].delta.content? // empty) end'
인증, 전체 스키마, 폴링과 오류 처리는 API 레퍼런스에서 확인하세요.
