Loading...
    • Panduan Pengembang
    • Referensi API
    • MCP
    • Sumber daya
    • Catatan Rilis
    Search...
    ⌘K
    Sumber daya
    IkhtisarGlosariumPrompt Sistem
    IkhtisarPerutean tiketAgen dukungan pelangganModerasi kontenRingkasan hukum
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Kasus penggunaan

    Perutean tiket

    Panduan ini menjelaskan cara memanfaatkan kemampuan pemahaman bahasa alami tingkat lanjut Claude untuk mengklasifikasikan tiket dukungan pelanggan dalam skala besar berdasarkan niat pelanggan, urgensi, prioritas, profil pelanggan, dan banyak lagi.
    • Tentukan apakah akan menggunakan Claude untuk perutean tiket
    • Bangun dan terapkan alur kerja dukungan LLM Anda
    • Pahami pendekatan dukungan Anda saat ini
    • Tentukan kategori niat pengguna
    • Tetapkan kriteria kesuksesan
    • Pilih model Claude yang tepat
    • Bangun prompt yang kuat
    • Terapkan prompt Anda
    • Evaluasi prompt Anda
    • Bangun fungsi evaluasi
    • Jalankan evaluasi Anda
    • Tingkatkan kinerja
    • Gunakan hierarki taksonomi untuk kasus dengan 20+ kategori niat
    • Gunakan database vektor dan pencarian kesamaan retrieval untuk menangani tiket yang sangat variabel
    • Akun khusus untuk kasus tepi yang diharapkan
    • Integrasikan Claude ke dalam alur kerja dukungan yang lebih besar

    Tentukan apakah akan menggunakan Claude untuk perutean tiket

    Berikut adalah beberapa indikator utama bahwa Anda harus menggunakan LLM seperti Claude alih-alih pendekatan ML tradisional untuk tugas klasifikasi Anda:


    Bangun dan terapkan alur kerja dukungan LLM Anda

    Pahami pendekatan dukungan Anda saat ini

    Sebelum terjun ke otomasi, penting untuk memahami sistem tiket yang ada. Mulai dengan menyelidiki bagaimana tim dukungan Anda saat ini menangani perutean tiket.

    Pertimbangkan pertanyaan seperti:

    • Kriteria apa yang digunakan untuk menentukan SLA/penawaran layanan apa yang diterapkan?
    • Apakah perutean tiket digunakan untuk menentukan tingkat dukungan atau spesialis produk mana yang akan menerima tiket?
    • Apakah ada aturan atau alur kerja otomatis yang sudah ada? Dalam kasus apa mereka gagal?
    • Bagaimana kasus tepi atau tiket ambigu ditangani?
    • Bagaimana tim memprioritaskan tiket?

    Semakin banyak Anda tahu tentang bagaimana manusia menangani kasus tertentu, semakin baik Anda akan dapat bekerja dengan Claude untuk melakukan tugas tersebut.

    Tentukan kategori niat pengguna

    Daftar kategori niat pengguna yang terdefinisi dengan baik sangat penting untuk klasifikasi tiket dukungan yang akurat dengan Claude. Kemampuan Claude untuk merutkan tiket secara efektif dalam sistem Anda berbanding lurus dengan seberapa baik kategori sistem Anda didefinisikan.

    Berikut adalah beberapa contoh kategori dan subkategori niat pengguna.

    Selain niat, perutean tiket dan prioritas juga dapat dipengaruhi oleh faktor lain seperti urgensi, jenis pelanggan, SLA, atau bahasa. Pastikan untuk mempertimbangkan kriteria perutean lainnya saat membangun sistem perutean otomatis Anda.

    Tetapkan kriteria kesuksesan

    Bekerja dengan tim dukungan Anda untuk mendefinisikan kriteria kesuksesan yang jelas dengan tolok ukur, ambang batas, dan tujuan yang terukur.

    Berikut adalah beberapa kriteria dan tolok ukur standar saat menggunakan LLM untuk perutean tiket dukungan:

    Berikut adalah beberapa kriteria kesuksesan umum yang mungkin berguna terlepas dari apakah LLM digunakan:

    Pilih model Claude yang tepat

    Pilihan model tergantung pada trade-off antara biaya, akurasi, dan waktu respons.

    Banyak pelanggan telah menemukan claude-haiku-4-5-20251001 model ideal untuk perutean tiket, karena merupakan model tercepat dan paling hemat biaya dalam keluarga Claude 4 sambil tetap memberikan hasil yang sangat baik. Jika masalah klasifikasi Anda memerlukan keahlian subjek yang mendalam atau volume besar kategori niat penalaran kompleks, Anda dapat memilih model Sonnet yang lebih besar.

    Bangun prompt yang kuat

    Perutean tiket adalah jenis tugas klasifikasi. Claude menganalisis konten tiket dukungan dan mengklasifikasikannya ke dalam kategori yang telah ditentukan sebelumnya berdasarkan jenis masalah, urgensi, keahlian yang diperlukan, atau faktor relevan lainnya.

    Mari kita tulis prompt klasifikasi tiket. Prompt awal kami harus berisi konten permintaan pengguna dan mengembalikan baik penalaran maupun niat.

    Coba pembuat prompt di Konsol Claude untuk membuat draf pertama untuk Anda.

    Berikut adalah contoh prompt klasifikasi perutean tiket:

    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system. Your task is to analyze customer support requests and output the appropriate classification intent for each request, along with your reasoning. 
    
            Here is the customer support request you need to classify:
    
            <request>{ticket_contents}</request>
    
            Please carefully analyze the above request to determine the customer's core intent and needs. Consider what the customer is asking for has concerns about.
    
            First, write out your reasoning and analysis of how to classify this request inside <reasoning> tags.
    
            Then, output the appropriate classification label for the request inside a <intent> tag. The valid intents are:
            <intents>
            <intent>Support, Feedback, Complaint</intent>
            <intent>Order Tracking</intent>
            <intent>Refund/Exchange</intent>
            </intents>
    
            A request may have ONLY ONE applicable intent. Only include the intent that is most applicable to the request.
    
            As an example, consider the following request:
            <request>Hello! I had high-speed fiber internet installed on Saturday and my installer, Kevin, was absolutely fantastic! Where can I send my positive review? Thanks for your help!</request>
    
            Here is an example of how your output should be formatted (for the above example request):
            <reasoning>The user seeks information in order to leave positive feedback.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
    
            Here are a few more examples:
            <examples>
            <example 2>
            Example 2 Input:
            <request>I wanted to write and personally thank you for the compassion you showed towards my family during my father's funeral this past weekend. Your staff was so considerate and helpful throughout this whole process; it really took a load off our shoulders. The visitation brochures were beautiful. We'll never forget the kindness you showed us and we are so appreciative of how smoothly the proceedings went. Thank you, again, Amarantha Hill on behalf of the Hill Family.</request>
    
            Example 2 Output:
            <reasoning>User leaves a positive review of their experience.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 2>
            <example 3>
    
            ...
    
            </example 8>
            <example 9>
            Example 9 Input:
            <request>Your website keeps sending ad-popups that block the entire screen. It took me twenty minutes just to finally find the phone number to call and complain. How can I possibly access my account information with all of these popups? Can you access my account for me, since your website is broken? I need to know what the address is on file.</request>
    
            Example 9 Output:
            <reasoning>The user requests help accessing their web account information.</reasoning>
            <intent>Support, Feedback, Complaint</intent>
            </example 9>
    
            Remember to always include your classification reasoning before your actual intent output. The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """

    Mari kita uraikan komponen kunci dari prompt ini:

    • Kami menggunakan f-string Python untuk membuat template prompt, memungkinkan ticket_contents untuk dimasukkan ke dalam tag <request>.
    • Kami memberikan Claude peran yang jelas didefinisikan sebagai sistem klasifikasi yang dengan hati-hati menganalisis konten tiket untuk menentukan niat dan kebutuhan inti pelanggan.
    • Kami menginstruksikan Claude tentang format output yang tepat, dalam hal ini untuk memberikan penalaran dan analisisnya di dalam tag <reasoning>, diikuti oleh label klasifikasi yang sesuai di dalam tag <intent>.
    • Kami menentukan kategori niat yang valid: "Support, Feedback, Complaint", "Order Tracking", dan "Refund/Exchange".
    • Kami menyertakan beberapa contoh (alias few-shot prompting) untuk mengilustrasikan bagaimana output harus diformat, yang meningkatkan akurasi dan konsistensi.

    Alasan kami ingin Claude membagi responsnya ke dalam berbagai bagian tag XML adalah sehingga kami dapat menggunakan ekspresi reguler untuk secara terpisah mengekstrak penalaran dan niat dari output. Ini memungkinkan kami untuk membuat langkah berikutnya yang ditargetkan dalam alur kerja perutean tiket, seperti menggunakan hanya niat untuk memutuskan orang mana yang akan merutkan tiket.

    Terapkan prompt Anda

    Sulit untuk mengetahui seberapa baik prompt Anda bekerja tanpa menerapkannya dalam pengaturan produksi tes dan menjalankan evaluasi.

    Mari kita bangun struktur penyebaran. Mulai dengan mendefinisikan tanda tangan metode untuk membungkus panggilan kami ke Claude. Kami akan mengambil metode yang sudah kami mulai tulis, yang memiliki ticket_contents sebagai input, dan sekarang mengembalikan tuple reasoning dan intent sebagai output. Jika Anda memiliki otomasi yang ada menggunakan ML tradisional, Anda akan ingin mengikuti tanda tangan metode itu.

    import anthropic
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL="claude-haiku-4-5-20251001"
    
    def classify_support_request(ticket_contents):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system. 
            ...
            ... The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
        # Send the prompt to the API to classify the support request.
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
            stream=False,
        )
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
        return reasoning, intent

    Kode ini:

    • Mengimpor perpustakaan Anthropic dan membuat instance klien menggunakan kunci API Anda.
    • Mendefinisikan fungsi classify_support_request yang mengambil string ticket_contents.
    • Mengirimkan ticket_contents ke Claude untuk klasifikasi menggunakan classification_prompt
    • Mengembalikan reasoning dan intent model yang diekstrak dari respons.

    Karena kami perlu menunggu seluruh teks penalaran dan niat dihasilkan sebelum menguraikan, kami menetapkan stream=False (default).


    Evaluasi prompt Anda

    Prompting sering memerlukan pengujian dan optimisasi agar siap produksi. Untuk menentukan kesiapan solusi Anda, evaluasi kinerja berdasarkan kriteria kesuksesan dan ambang batas yang Anda tetapkan sebelumnya.

    Untuk menjalankan evaluasi Anda, Anda akan memerlukan kasus uji untuk menjalankannya. Sisa panduan ini mengasumsikan Anda telah mengembangkan kasus uji Anda.

    Bangun fungsi evaluasi

    Evaluasi contoh kami untuk panduan ini mengukur kinerja Claude di sepanjang tiga metrik utama:

    • Akurasi
    • Biaya per klasifikasi

    Anda mungkin perlu menilai Claude pada sumbu lain tergantung pada faktor apa yang penting bagi Anda.

    Untuk menilai ini, pertama-tama kami harus memodifikasi skrip yang kami tulis dan menambahkan fungsi untuk membandingkan niat yang diprediksi dengan niat aktual dan menghitung persentase prediksi yang benar. Kami juga harus menambahkan fungsionalitas perhitungan biaya dan pengukuran waktu.

    import anthropic
    import re
    
    # Create an instance of the Claude API client
    client = anthropic.Anthropic()
    
    # Set the default model
    DEFAULT_MODEL="claude-haiku-4-5-20251001"
    
    def classify_support_request(request, actual_intent):
        # Define the prompt for the classification task
        classification_prompt = f"""You will be acting as a customer support ticket classification system. 
            ...
            ...The reasoning should be enclosed in <reasoning> tags and the intent in <intent> tags. Return only the reasoning and the intent.
            """
    
        message = client.messages.create(
            model=DEFAULT_MODEL,
            max_tokens=500,
            temperature=0,
            messages=[{"role": "user", "content": classification_prompt}],
        )
        usage = message.usage  # Get the usage statistics for the API call for how many input and output tokens were used.
        reasoning_and_intent = message.content[0].text
    
        # Use Python's regular expressions library to extract `reasoning`.
        reasoning_match = re.search(
            r"<reasoning>(.*?)</reasoning>", reasoning_and_intent, re.DOTALL
        )
        reasoning = reasoning_match.group(1).strip() if reasoning_match else ""
    
        # Similarly, also extract the `intent`.
        intent_match = re.search(r"<intent>(.*?)</intent>", reasoning_and_intent, re.DOTALL)
        intent = intent_match.group(1).strip() if intent_match else ""
    
          # Check if the model's prediction is correct.
        correct = actual_intent.strip() == intent.strip()
    
        # Return the reasoning, intent, correct, and usage.
        return reasoning, intent, correct, usage

    Mari kita uraikan edit yang kami buat:

    • Kami menambahkan actual_intent dari kasus uji kami ke dalam metode classify_support_request dan menyiapkan perbandingan untuk menilai apakah klasifikasi niat Claude cocok dengan klasifikasi niat emas kami.
    • Kami mengekstrak statistik penggunaan untuk panggilan API untuk menghitung biaya berdasarkan token input dan output yang digunakan

    Jalankan evaluasi Anda

    Evaluasi yang tepat memerlukan ambang batas dan tolok ukur yang jelas untuk menentukan apa hasil yang baik. Skrip di atas akan memberi kami nilai runtime untuk akurasi, waktu respons, dan biaya per klasifikasi, tetapi kami masih perlu menetapkan ambang batas yang jelas. Sebagai contoh:

    • Akurasi: 95% (dari 100 tes)
    • Biaya per klasifikasi: Pengurangan 50% rata-rata (di seluruh 100 tes) dari metode perutean saat ini

    Memiliki ambang batas ini memungkinkan Anda dengan cepat dan mudah mengatakan dalam skala, dan dengan empirisme yang tidak memihak, metode mana yang terbaik untuk Anda dan perubahan apa yang mungkin perlu dilakukan untuk lebih sesuai dengan persyaratan Anda.


    Tingkatkan kinerja

    Dalam skenario kompleks, mungkin berguna untuk mempertimbangkan strategi tambahan untuk meningkatkan kinerja di luar teknik rekayasa prompt standar & strategi implementasi guardrail. Berikut adalah beberapa skenario umum:

    Gunakan hierarki taksonomi untuk kasus dengan 20+ kategori niat

    Seiring jumlah kelas tumbuh, jumlah contoh yang diperlukan juga berkembang, berpotensi membuat prompt menjadi tidak praktis. Sebagai alternatif, Anda dapat mempertimbangkan untuk menerapkan sistem klasifikasi hierarki menggunakan campuran pengklasifikasi.

    1. Atur niat Anda dalam struktur pohon taksonomi.
    2. Buat serangkaian pengklasifikasi di setiap tingkat pohon, memungkinkan pendekatan perutean bertingkat.

    Sebagai contoh, Anda mungkin memiliki pengklasifikasi tingkat atas yang secara luas mengkategorikan tiket menjadi "Masalah Teknis," "Pertanyaan Penagihan," dan "Pertanyaan Umum." Masing-masing kategori ini kemudian dapat memiliki sub-pengklasifikasi sendiri untuk lebih menyempurnakan klasifikasi.

    • Pros - nuansa dan akurasi yang lebih besar: Anda dapat membuat prompt berbeda untuk setiap jalur induk, memungkinkan klasifikasi yang lebih ditargetkan dan spesifik konteks. Ini dapat menghasilkan akurasi yang ditingkatkan dan penanganan permintaan pelanggan yang lebih bernuansa.

    • Cons - latensi yang meningkat: Perlu diketahui bahwa beberapa pengklasifikasi dapat menyebabkan latensi yang meningkat, dan kami merekomendasikan menerapkan pendekatan ini dengan model tercepat kami, Haiku.

    Gunakan database vektor dan pencarian kesamaan retrieval untuk menangani tiket yang sangat variabel

    Meskipun memberikan contoh adalah cara paling efektif untuk meningkatkan kinerja, jika permintaan dukungan sangat variabel, sulit untuk menyertakan cukup contoh dalam satu prompt.

    Dalam skenario ini, Anda dapat menggunakan database vektor untuk melakukan pencarian kesamaan dari dataset contoh dan mengambil contoh paling relevan untuk kueri tertentu.

    Pendekatan ini, yang dijelaskan secara detail dalam resep klasifikasi kami, telah terbukti meningkatkan kinerja dari akurasi 71% menjadi akurasi 93%.

    Akun khusus untuk kasus tepi yang diharapkan

    Berikut adalah beberapa skenario di mana Claude mungkin salah mengklasifikasikan tiket (mungkin ada yang lain yang unik untuk situasi Anda). Dalam skenario ini, pertimbangkan untuk memberikan instruksi eksplisit atau contoh dalam prompt tentang bagaimana Claude harus menangani kasus tepi:


    Integrasikan Claude ke dalam alur kerja dukungan yang lebih besar

    Integrasi yang tepat memerlukan bahwa Anda membuat beberapa keputusan mengenai bagaimana skrip perutean berbasis Claude Anda cocok dengan arsitektur sistem perutean tiket yang lebih besar. Ada dua cara Anda bisa melakukan ini:

    • Berbasis push: Sistem tiket dukungan yang Anda gunakan (misalnya Zendesk) memicu kode Anda dengan mengirimkan acara webhook ke layanan perutean Anda, yang kemudian mengklasifikasikan niat dan meruteannya.
      • Pendekatan ini lebih dapat diskalakan web, tetapi memerlukan Anda untuk mengekspos titik akhir publik.
    • Berbasis pull: Kode Anda menarik tiket terbaru berdasarkan jadwal tertentu dan meruteannya pada waktu pull.
      • Pendekatan ini lebih mudah untuk diimplementasikan tetapi mungkin membuat panggilan yang tidak perlu ke sistem tiket dukungan ketika frekuensi pull terlalu tinggi atau mungkin terlalu lambat ketika frekuensi pull terlalu rendah.

    Untuk salah satu pendekatan ini, Anda akan perlu membungkus skrip Anda dalam layanan. Pilihan pendekatan tergantung pada API apa yang disediakan sistem tiket dukungan Anda.


    Buku resep klasifikasi

    Kunjungi buku resep klasifikasi kami untuk contoh kode lebih lanjut dan panduan eval terperinci.

    Konsol Claude

    Mulai membangun dan mengevaluasi alur kerja Anda di Konsol Claude.