Voltar ao blog
Guia de implementação·25 de maio de 2026·7 min de leitura

Automação com IA para call centers em coreano — processe com o Claude Haiku por um centésimo do custo

A área em que empresas coreanas de SaaS / comércio eletrônico adotam IA mais rapidamente: automação do atendimento ao cliente. Classifique com Haiku, gere respostas com Sonnet e reduza custos em 90% com cache de prompts. 10 won por caso; 280.000 won por mês para processar 1.000 casos por dia. Inclui consistência das formas honoríficas em coreano + conformidade com a Lei de Proteção de Informações Pessoais.

As empresas coreanas de SaaS e comércio eletrônico que adotam IA mais rapidamente estão automatizando o atendimento ao cliente. Quando tudo é processado por pessoas, o custo mensal chega a dezenas de milhões de won; ao automatizar a classificação e os rascunhos de resposta com Claude, é possível reduzir os custos em mais de 90%. Este artigo apresenta código e custos de uma operação realmente utilizável.

Estrutura

  1. Classificar os tickets recebidos com Claude Haiku 4.5 (o mais barato)
  2. Pesquisar casos semelhantes do passado (banco de dados vetorial)
  3. Gerar um rascunho de resposta com Claude Sonnet 4.6
  4. O atendente revisa e envia (ou tickets de baixa prioridade são enviados automaticamente)

Etapa 1: classificação — Claude Haiku 4.5

O Haiku 4.5 é muito barato para tarefas simples, como classificação. Nos preços da Kunavo, US$ 0,40/1M de entrada e US$ 2,00/1M de saída. Um ticket em coreano com 200 caracteres mais uma saída JSON de 50 tokens custa cerca de US$ 0,00004 (0,06 won) por caso.

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)

Etapa 2: pesquisa de casos semelhantes

Armazene exemplos de respostas bem-sucedidas do passado usando embeddings e pgvector; depois, pesquise os 5 mais próximos pela similaridade de cosseno entre o embedding do novo ticket e os existentes. A Kunavo não oferece embeddings, portanto apenas esta etapa chama diretamente a OpenAI e é cobrada diretamente. Consulte a página de preços da OpenAI para ver a tarifa. Use a Kunavo somente na etapa de geração.

Etapa 3: geração do rascunho de resposta — 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

As diretrizes da empresa (3.000 tokens) são sempre iguais, então use cache_control para armazená-las em cache. A partir da segunda chamada, essa parte custa apenas 10% do preço de entrada.

Estimativa de custo por caso (após aplicar o caching):

  • Classificação (Haiku 4.5): US$ 0,00006
  • Embedding da pesquisa: US$ 0,0000025
  • Geração da resposta (Sonnet 4.6, cache hit): cerca de 1K tokens de entrada + 500 tokens de saída = US$ 0,0042
  • Total: cerca de US$ 0,004 (aproximadamente 6 won)

Exemplo de custo mensal

  • 100 casos por dia: US$ 13 por mês (aproximadamente 18.000 won)
  • 1.000 casos por dia: US$ 130 por mês (aproximadamente 180.000 won)
  • 10.000 casos por dia: US$ 1.300 por mês (aproximadamente 1,8 milhão de won)

Comparação: 1 atendente = aproximadamente 2,5 milhões de won por mês, com limite de 100 casos por dia. Para processar 1.000 casos por dia, seriam necessários 10 atendentes = 25 milhões de won por mês. A automação com IA gera uma diferença de custo de pelo menos 100 vezes.

Considerações específicas para a Coreia

  • Consistência do tratamento honorífico: especifique repetidamente no prompt do sistema "estilo formal e polido (~습니다)". Para testar variações, faça uma amostragem de 100 respostas e avalie-as como em uma entrevista
  • Consumo de tokens em coreano: o coreano consome de 1,5 a 2 vezes mais tokens que o inglês. A estimativa acima considera o coreano
  • Conformidade com a lei de proteção de informações pessoais: nunca coloque PII de clientes (nome, telefone ou endereço) no prompt do sistema. Mascare os dados antes de enviá-los ao LLM
  • Formas de pagamento: você pode recarregar o saldo da Kunavo com cartões internacionais, Apple Pay, Google Pay e, quando a tela de pagamento for exibida em won, KakaoPay, Naver Pay, PAYCO, Samsung Pay e cartões nacionais (Toss não é aceito). Não emitimos certificados fiscais nem faturas — os únicos comprovantes disponíveis são os registros de pagamento do extrato do cartão ou do pagamento simplificado e os registros de recarga e uso em /app/billing.

Checklist de implementação

  • Nos primeiros 100 casos, o atendente deve revisar 100% deles → confirme precisão superior a 90% e automatize gradualmente
  • Categorias urgentes devem sempre ser revisadas por uma pessoa (o custo dos erros é alto)
  • Adicione semanalmente à diretriz os casos classificados incorretamente (aprendizado recorrente)
  • Acompanhe o uso mensal em /app/usage e defina o limite diário em /app/keys (para evitar picos acidentais)

Para começar, faça seu cadastro gratuito, recarregue a partir de US$ 10 e use no modelo pré-pago. Consulte os preços por modelo e as formas de pagamento em Preços e pagamentos da API Claude e na página de preços; para comparar com o OpenRouter, veja Comparação de alternativas ao OpenRouter. Documentação completa: /docs/quickstart; guia detalhado de prompt caching: prompt caching deep dive.