터키 전자상거래 사이트를 위한 Claude 기반 상품 추천 어시스턴트입니다. 고객의 "여름에 날씨가 맑으면 해변에 갈 건데, 1000 TL을 넘지 않으면서 무엇을 살 수 있나요"와 같은 자연어 질의를 이해하고 카탈로그에서 실제 상품을 추천합니다. 전체 코드 + 월간 비용 계산 + 부가가치세 + TL 환율 변동 전략을 제공합니다.
왜 Claude Haiku 4.5인가?
상품 추천과 같은 "이해 + 형식 지정" 작업에서 Claude Haiku 4.5는 Sonnet 4.6의 약 85% 수준의 품질을 3분의 1 비용으로 제공합니다. Kunavo 가격 기준:
- Haiku 4.5: 입력 $0.40/1M, 출력 $2.00/1M
- Sonnet 4.6: 입력 $1.20/1M, 출력 $6.00/1M
상품 200개 카탈로그 + 고객 질의 = 입력 약 3K 토큰, JSON 응답 = 출력 약 200토큰. 호출당 비용: 약 $0.0016(약 ₺0.06).
작동하는 코드
import json
from openai import OpenAI
client = OpenAI(
api_key="sk-kn-...",
base_url="https://api.kunavo.com/v1",
)
# Claude, json_schema tipindeki response_format'a uyar; json_object garanti edilmez.
ONERI = {
"type": "object",
"properties": {
"oneriler": {"type": "array", "items": {
"type": "object",
"properties": {"urun_id": {"type": "string"}, "neden": {"type": "string"}},
"required": ["urun_id", "neden"],
"additionalProperties": False,
}},
"toplam_oneri": {"type": "integer"},
},
"required": ["oneriler", "toplam_oneri"],
"additionalProperties": False,
}
def urun_oneri(kullanici_sorgusu: str, urun_katalogu: list[dict]) -> dict:
"""Müşterinin doğal dil sorgusuna göre 3-5 ürün önerir."""
katalog_metni = "\n".join(
f"- {u['id']}: {u['baslik']} | {u['kategori']} | {u['fiyat']} TL"
for u in urun_katalogu[:200]
)
resp = client.chat.completions.create(
model="claude-haiku-4-5", # Hızlı + ucuz, ürün önerisi için yeterli
messages=[
{
"role": "system",
"content": [
{
"type": "text",
"text": (
"Sen bir Türk e-ticaret asistanısın. "
"Türkçe doğal konuş, samimi ama saygılı. "
"Cevap formatı JSON: "
'{"oneriler": [{"urun_id": "...", "neden": "..."}, ...], '
'"toplam_oneri": int}'
),
"cache_control": {"type": "ephemeral"},
},
],
},
{
"role": "user",
"content": (
f"## Müşteri sorgusu\n{kullanici_sorgusu}\n\n"
f"## Mevcut katalog\n{katalog_metni}"
),
},
],
response_format={"type": "json_schema",
"json_schema": {"name": "oneri", "schema": ONERI}},
max_tokens=400,
)
return json.loads(resp.choices[0].message.content)System prompt를 cache_control로 표시했습니다. 동일한 프롬프트로 연속 호출이 들어오면 Anthropic 프롬프트 캐싱이 적용되어 입력 비용의 90%를 절감합니다.
월간 비용 예상
| 일일 추천 수 | 월간 USD | 대략적인 TL |
|---|---|---|
| 1.000 | ~$48 | ~₺1.700 |
| 10.000 | ~$480 | ~₺17.000 |
| 100.000 | ~$4.800 | ~₺170.000 |
비교: 전자상거래 어시스턴트를 상시 인력으로 운영하려면 하루 1,000건 이상의 추천에 최소 2~3교대 지원팀이 필요합니다(약 ₺120,000/월). AI를 사용하면 비용을 95% 절감할 수 있습니다.
TL 환율 변동 대응 전략
Kunavo는 USD 가격제를 사용하므로 TL 가치가 하락할수록 비용이 증가합니다. 이를 완화하려면:
- 대량 충전: $1,000 이상 충전 시 추가 20% 보너스 크레딧이 제공됩니다($1,000를 입금하면 $1,200 크레딧을 받음). USD 기준 약 17% 절약, TL 기준 간접적인 환율 완충 효과
- 프롬프트 캐싱은 항상 활성화 — 70% 절감을 적용합니다.
- Haiku → Sonnet 티어링: 간단한 질의는 Haiku로, 복잡한 질의는 Sonnet으로 처리하세요. 자동 의사 결정기가 필요하다면 cost optimization guide를 확인하세요.
- 출력 제한: max_tokens=300으로 출력 비용을 절반으로 줄이세요.
카드 문제 해결
대부분의 터키 은행은 해외 온라인 거래를 기본적으로 비활성화합니다. Stripe 결제가 거부되면:
- 은행에 "해외 온라인 카드 사용" 권한을 활성화해 달라고 요청하세요.
- Visa, Mastercard, American Express, JCB를 모두 지원합니다.
- Apple Pay가 더 원활하게 승인될 수 있습니다. Chrome / Android에 설정되어 있다면 Google Pay도 선택할 수 있지만, 연결된 카드에서 해외 거래가 허용되어 있어야 합니다.
KVKK 준수
고객의 개인정보(이름, 전화번호, 주소)가 있다면 LLM에 보내기 전에 마스킹하세요. Stripe 결제 데이터는 이미 PCI-DSS 적용을 받으며 귀사와 분리되어 처리됩니다. Kunavo는 데이터 처리 계약(DPA)을 제공하지 않습니다. 요청은 미국에서 처리되고 업스트림 모델 제공업체로 전달됩니다. DPA가 필요하다면 모델 제공업체(Anthropic, OpenAI 또는 Google의 기업 약관)와 직접 계약하세요.
프로덕션 체크리스트
- 처음 100건의 추천을 수동으로 검토하고, 품질이 ≥%80이 되면 자동화하세요.
- 일일 지출 한도는 /app/keys에서 설정하세요(실수로 인한 폭주를 방지합니다).
- 오류 페이로드에 대해 사용자에게 "죄송합니다. 지금은 추천을 제공할 수 없습니다"라고 안내하는 폴백 동작을 추가하세요.
- 월간 비용을 /app/usage에서 추적하고 예상치 못한 증가가 발생하면 알림을 설정하세요.
시작하려면 무료로 가입하고, $10부터 충전한 뒤 사용한 만큼 지불하세요. 전체 문서는 /docs/quickstart에 있습니다.