Bloga dön
Uygulama rehberi·25 Mayıs 2026·7 dk okuma

Korece çağrı merkezi yapay zekâ otomasyonu — Claude Haiku ile 100'de 1 maliyetle işleme

Kore SaaS / e-ticaret şirketlerinin yapay zekâyı en hızlı benimsediği alan: müşteri iletişimi otomasyonu. Sınıflandırma için Haiku, yanıt üretimi için Sonnet ve maliyeti %90 azaltmak için prompt caching. İşlem başına 10 won, günde 1.000 işlem için aylık 280.000 won maliyet. Korece hitap biçimlerinde tutarlılık + Kişisel Bilgilerin Korunması Yasası'na uyum dahil.

Kore SaaS / e-ticaret şirketlerinin yapay zekâyı en hızlı benimsediği alan, müşteri desteği otomasyonudur. Her şeyi insanlar yaptığında aylık maliyet on milyonlarca wondur; ancak Claude ile sınıflandırma ve yanıt taslağı oluşturmayı otomatikleştirerek maliyetleri %90 veya daha fazla azaltabilirsiniz. Bu yazı, gerçek operasyonda kullanılabilecek kodu ve maliyetleri açıklar.

Yapı

  1. Gelen biletleri Claude Haiku 4.5 ile sınıflandırın (en ucuz)
  2. Benzer geçmiş örnekleri arayın (vektör DB)
  3. Claude Sonnet 4.6 ile yanıt taslağı oluşturun
  4. Danışman inceleyip gönderir (veya düşük öncelikli olanlar otomatik gönderilir)

1. adım: Sınıflandırma — Claude Haiku 4.5

Haiku 4.5, sınıflandırma gibi basit görevlerde çok ucuzdur. Kunavo fiyatıyla girdi 0,40 $/1M, çıktı 2,00 $/1M. Korece 200 karakterlik bilet + 50 tokenlık JSON çıktısı = bilet başına yaklaşık 0,00004 $ (0,06 won).

classify.py
import json
from openai import OpenAI

client = OpenAI(
    api_key="sk-kn-...",
    base_url="https://api.kunavo.com/v1",
)

# Claude는 json_schema로 지정한 response_format만 지킵니다 (json_object는 보장 안 됨).
TICKET = {
    "type": "object",
    "properties": {
        "category": {"type": "string", "enum": ["결제", "배송", "반품", "기술", "기타"]},
        "priority": {"type": "string", "enum": ["긴급", "보통", "낮음"]},
        "summary": {"type": "string"},
    },
    "required": ["category", "priority", "summary"],
    "additionalProperties": False,
}

def classify_ticket(text: str) -> dict:
    """들어온 고객 문의를 카테고리 + 우선순위로 분류."""
    resp = client.chat.completions.create(
        model="claude-haiku-4-5",  # 가장 저렴, 분류엔 충분
        messages=[
            {
                "role": "system",
                "content": (
                    "당신은 한국어 고객 문의 분류기입니다. "
                    "다음 JSON 형식으로만 응답하세요: "
                    '{"category": "결제|배송|반품|기술|기타", '
                    '"priority": "긴급|보통|낮음", '
                    '"summary": "한 문장 요약"}'
                ),
            },
            {"role": "user", "content": text},
        ],
        response_format={"type": "json_schema",
                         "json_schema": {"name": "ticket", "schema": TICKET}},
        max_tokens=200,
    )
    return json.loads(resp.choices[0].message.content)

2. adım: Benzer örnekleri arama

İyi işlenmiş geçmiş yanıt örneklerini embedding + pgvector ile kaydedip yeni biletin embedding'iyle kosinüs benzerliğine göre en üstteki 5 örneği arayın. Embedding Kunavo tarafından sağlanmadığı için yalnızca bu adımda OpenAI'ye doğrudan çağrı yapılır ve doğrudan ücretlendirilirsiniz — birim fiyatı OpenAI fiyatlandırma sayfasından kontrol edin. Kunavo'yu yalnızca oluşturma adımında kullanın.

3. adım: Yanıt taslağı oluşturma — Claude Sonnet 4.6 + prompt caching

reply.py
def generate_reply(ticket: dict, context: list[str]) -> str:
    """과거 유사 사례 5건을 참조해 응답 초안 생성."""
    references = "\n\n".join(context)
    resp = client.chat.completions.create(
        model="claude-sonnet-4-6",  # 응답 품질은 Sonnet
        messages=[
            {
                "role": "system",
                "content": [
                    {
                        "type": "text",
                        "text": COMPANY_GUIDELINES,  # 회사 톤 & 정책
                        "cache_control": {"type": "ephemeral"},
                    },
                ],
            },
            {
                "role": "user",
                "content": (
                    f"## 고객 문의\n{ticket['original_text']}\n\n"
                    f"## 분류\n{ticket['category']} / {ticket['priority']}\n\n"
                    f"## 참고할 과거 응답 (5건)\n{references}\n\n"
                    "## 작성 지침\n"
                    "1. 정중한 격식체 (~습니다)\n"
                    "2. 3문단 이내\n"
                    "3. 다음 단계가 무엇인지 명확히 안내\n"
                ),
            },
        ],
        max_tokens=600,
    )
    return resp.choices[0].message.content

Şirket yönergeleri (3.000 token) her seferinde aynı olduğundan cache_control ile önbelleğe alın. İkinci çağrıdan itibaren bu bölüm için girdi ücretinin yalnızca %10'u alınır.

İstek başına tahmini maliyet (önbellekleme uygulandıktan sonra):

  • Sınıflandırma (Haiku 4.5): 0,00006 $
  • Arama embedding'i: 0,0000025 $
  • Yanıt oluşturma (Sonnet 4.6, önbellek isabeti): yaklaşık 1K girdi tokenı + 500 çıktı tokenı = 0,0042 $
  • Toplam: yaklaşık 0,004 $ (yaklaşık 6 won)

Aylık maliyet örneği

  • Günde 100 istek: aylık 13 $ (yaklaşık 18.000 won)
  • Günde 1.000 istek: aylık 130 $ (yaklaşık 180.000 won)
  • Günde 10.000 istek: aylık 1.300 $ (yaklaşık 1.800.000 won)

Karşılaştırma: 1 müşteri hizmetleri temsilcisi = aylık yaklaşık 2.500.000 won, günde 100 istek işleme sınırı. Günde 1.000 isteği işlemek için 10 kişi = aylık 25.000.000 won. Yapay zekâ otomasyonuyla maliyet farkı 100 kat veya daha fazladır.

Kore ortamına özgü hususlar

  • Saygı dili tutarlılığı: Sistem isteminde "kibar resmî üslup (~습니다)" ifadesini tekrar tekrar belirtin. Varyasyonları, mülakatçı değerlendirmesi gibi, 100 yanıt örnekleyerek test edin.
  • Korece token tüketimi: Korecede token tüketimi, İngilizcedeki tüketimin 1,5-2 katıdır. Yukarıdaki maliyet tahmini Koreceye dayalıdır.
  • Kişisel Verileri Koruma Yasasına uyum: Müşteri PII'sini (ad, telefon numarası, adres) sistem istemine asla koymayın. Maskeleyip LLM'e iletin.
  • Ödeme yöntemleri: Kunavo bakiyesini uluslararası kart, Apple Pay, Google Pay ve ödeme ekranı Kore wonu cinsinden gösteriliyorsa KakaoPay, Naver Pay, PAYCO, Samsung Pay ve yerel kartlarla yükleyebilirsiniz (Toss desteklenmez). Vergi faturası veya fatura düzenlenmez — kanıt olarak kullanılabilecekler yalnızca kart ve hızlı ödeme hizmeti ekstrelerindeki ödeme kayıtları ile /app/billing bölümündeki yükleme ve kullanım kayıtlarıdır.

Devreye alma kontrol listesi

  • İlk 100 isteği danışman %100 incelesin → %90+ doğruluk doğrulandıktan sonra otomasyonu kademeli olarak artırın.
  • Acil kategoriler her zaman insan tarafından incelensin (hata maliyeti yüksektir).
  • Yanlış sınıflandırılan vakaları her hafta yönergelere ekleyin (yinelenen öğrenme).
  • Aylık kullanımı /app/usage bölümünden izleyin, günlük sınırı /app/keys bölümünden ayarlayın (yanlışlıkla aşırı kullanımı önlemek için).

Başlamak için ücretsiz kaydolun, ardından 10 $'dan başlayan yüklemeyle kullandıkça öde şeklinde kullanın. Model bazındaki fiyatları ve ödeme yöntemlerini Claude API fiyatları ve ödeme özeti ile fiyatlandırma sayfasından kontrol edin; OpenRouter karşılaştırması için OpenRouter alternatifleri karşılaştırmasına bakın. Tüm belgeler: /docs/quickstart; prompt caching kılavuzu: prompt caching deep dive.