0Pricing
AI Prompt Engineering · Pelajaran

Menghilangkan Ambiguitas dari Perintah

Pelajari teknik untuk menghapus berbagai kemungkinan tafsir dalam instruksi Anda.

Menghilangkan Ambiguitas dari Perintah adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Dampak Ketaksaan pada AI

Instruksi yang taksa memaksa model memilih di antara beberapa tafsir yang valid. Model memilih salah satunya—biasanya yang paling umum—lalu menjalankannya dengan yakin, tanpa memberi tahu bahwa model telah membuat pilihan.

Akibatnya, Anda mendapatkan jawaban yang tersusun dengan baik untuk pertanyaan yang keliru. Mengenali dan menghilangkan ketaksaan sebelum mengirim instruksi lebih cepat daripada menulis ulang keluaran setelahnya.

Yang Klasik: 'Jadikan Lebih Baik'

'Jadikan lebih baik' mungkin merupakan instruksi paling taksa yang ada. Lebih baik dalam hal apa?

  • Lebih singkat? Lebih panjang?
  • Lebih formal? Lebih santai?
  • Lebih banyak contoh? Lebih sedikit?
  • Nada berbeda? Struktur berbeda?
  • Perbaiki tata bahasa? Gunakan kosakata berbeda?

Model memilih satu aspek lalu mengubahnya. Jika aspek tersebut bukan yang Anda inginkan, Anda akan terjebak dalam putaran penulisan ulang.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

original_text = (
    'Our software helps companies manage their data. '
    'It has many features. Customers like it a lot.'
)

# Ambiguous improvement request
vague = f'Make this better:\n\n{original_text}'

# Unambiguous improvement request
specific = (
    f'Rewrite this product description to be exactly 50% shorter, '
    f'more confident in tone, and replace vague phrases like "many features" '
    f'and "a lot" with specific claims. Do not add new features I have not mentioned.\n\n'
    f'{original_text}'
)

for label, prompt in [('VAGUE', vague), ('SPECIFIC', specific)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.content[0].text)
    print()

Berbagai Tafsir: Contoh Praktis

Instruksi apa pun yang memiliki pronomina tanpa rujukan yang jelas, kata sifat relatif, atau subjek yang tidak disebutkan berpotensi menimbulkan ketaksaan. Contoh:

  • 'Tingkatkan kinerja'—kinerja apa? Kecepatan, akurasi, atau keterlibatan pengguna?
  • 'Tulis tentang dampaknya'—dampak positif, negatif, ekonomi, atau sosial?
  • 'Perbaiki ini'—perbaiki logika, gaya, pemformatan, atau tata bahasanya?
  • 'Jadikan profesional'—kosakata formal? Paragraf terstruktur? Hapus emoji?
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Disambiguating 'fix this code'
buggy_code = 'def divide(a, b): return a / b'

ambiguous = f'Fix this:\n{buggy_code}'

unambiguous = (
    f'Fix only the division-by-zero bug in this function. '
    f'Add a guard that raises a ValueError with message "b cannot be zero" when b=0. '
    f'Do not change anything else — keep the function signature and return type identical.\n\n'
    f'{buggy_code}'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': unambiguous}]
)
print(response.choices[0].message.content)

Teknik Menghilangkan Ketaksaan: Nyatakan Tafsirnya

Jika Anda tahu bahwa instruksi Anda dapat ditafsirkan dengan beberapa cara, nyatakan secara jelas tafsir yang Anda inginkan.

Templat: 'Ketika saya mengatakan [istilah taksa], yang saya maksud adalah [definisi spesifik].'

Contoh:

  • 'Ketika saya mengatakan sunting, yang saya maksud hanyalah memperbaiki tata bahasa dan ejaan—jangan mengubah isi.'
  • 'Ketika saya mengatakan singkat, yang saya maksud adalah maksimal 3 kalimat.'
  • 'Ketika saya mengatakan profesional, yang saya maksud adalah tanpa pronomina orang pertama dan tanpa bentuk singkat.'
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    messages=[{
        'role': 'user',
        'content': (
            'Edit the following paragraph. '
            'When I say "edit", I mean: fix grammar and punctuation only. '
            'Do NOT change vocabulary, sentence structure, or content. '
            'When done, list each change you made in a numbered list below the edited text.\n\n'
            'The team have went to the meeting early, but the manager '
            'werent there so they waited for alot of time before leaving.'
        )
    }]
)
print(response.content[0].text)

Teknik Menghilangkan Ketaksaan: Tentukan Cakupan

Ketaksaan cakupan sering terjadi saat meminta perbaikan atau perluasan. Atasi dengan menentukan secara tepat hal yang termasuk dan tidak termasuk dalam cakupan.

Termasuk dalam cakupan: hal yang boleh diubah oleh model
Di luar cakupan: hal yang harus tetap tidak berubah

Hal ini sangat penting untuk tugas penyuntingan kode, revisi dokumen, dan pemrosesan kumpulan data karena perubahan yang tidak disengaja dapat menimbulkan masalah serius.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code_block = '''
def calculate_tax(income, rate):
    return income * rate

def calculate_net(income, tax):
    return income - tax
'''

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Add Python type hints to the following code.\n'
            'IN SCOPE: adding type hints to parameters and return values only.\n'
            'OUT OF SCOPE: changing function names, logic, docstrings, or formatting.\n'
            'Do not add any comments or docstrings.\n\n'
            + code_block
        )
    }]
)
print(response.choices[0].message.content)

Teknik Menghilangkan Ketaksaan: Tentukan Bentuk Keluaran

Ketaksaan keluaran terjadi ketika Anda menginginkan format tertentu tetapi tidak menyatakannya. 'Berikan datanya kepada saya'—dalam bentuk paragraf? Daftar? Tabel? Objek JSON?

Selalu sebutkan bentuk keluaran tepat yang Anda harapkan. Model akan menyesuaikannya secara presisi jika Anda menyatakannya dengan jelas.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

candidates_text = (
    'Alice: 5 years Python, worked at Stripe, has a CS degree.\n'
    'Bob: 3 years JavaScript, worked at a startup, self-taught.\n'
    'Carol: 8 years Java, worked at Google, has an MS in CS.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Extract the candidate data below into a JSON array. '
            'Each object must have exactly these keys: name, years_experience, primary_language, '
            'previous_employer, education_level. '
            'education_level values: DEGREE, MASTERS, SELF_TAUGHT.\n\n'
            + candidates_text
        )
    }]
)
print(response.content[0].text)

Teknik Menghilangkan Ketaksaan: Minta Model Memperjelas

Saat menulis instruksi rumit yang Anda tahu bersifat taksa, Anda dapat menginstruksikan model untuk mengajukan pertanyaan klarifikasi sebelum mencoba mengerjakan tugas tersebut.

Hal ini sangat berguna saat membangun asisten AI—Anda ingin model mengumpulkan informasi alih-alih berasumsi, seperti yang dilakukan konsultan manusia yang baik.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {
            'role': 'system',
            'content': (
                'You are a professional copywriter. '
                'Before starting any writing task, ask exactly 3 clarifying questions '
                'that would most improve the output quality. '
                'Only proceed to write after the user answers those questions.'
            )
        },
        {
            'role': 'user',
            'content': 'Write a landing page headline for my business.'
        }
    ]
)
print(response.choices[0].message.content)

Istilah Relatif yang Memerlukan Penentuan

Istilah relatif tidak memiliki makna tetap—artinya berbeda bagi setiap orang:

  • 'Singkat'—1 kalimat? 3 kalimat? 1 paragraf?
  • 'Formal'—tanpa bentuk singkat? Gaya kutipan akademik? Bahasa hukum?
  • 'Sederhana'—tingkat bacaan kelas 5? Tanpa istilah teknis? Hanya kalimat pendek?
  • 'Komprehensif'—mencakup semua kasus utama? Menyertakan kasus khusus? Dengan contoh?

Ganti setiap istilah relatif dengan padanan yang konkret dan terukur.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Relative terms mapped to concrete equivalents
mapping = [
    ('Give me a brief summary',   'Summarize in exactly 2 sentences'),
    ('Write something formal',    'Write using no contractions, no first person, and Flesch-Kincaid grade 12+'),
    ('Make it simple',            'Use only words a 10-year-old would know; max 15 words per sentence'),
    ('Be comprehensive',          'Cover at least 5 distinct subtopics with one example each'),
]

for vague, concrete in mapping:
    print(f'Vague:    "{vague}"')
    print(f'Concrete: "{concrete}"')
    print()

Ketaksaan Subjek: Siapa yang Melakukan Tindakan?

Ketaksaan subjek terjadi ketika tidak jelas siapa atau apa yang dikenai instruksi.

'Tulis ulang pendahuluan'—pendahuluan dari apa? Dokumen yang Anda tempelkan? Dokumen yang kita bahas 5 giliran percakapan lalu? Dokumen baru?

'Terjemahkan ini'—bagian yang mana? Seluruh respons? Hanya bagian ringkasan? Komentar kode?

Selalu sebutkan objek atau bagian tertentu yang Anda maksud, terutama dalam percakapan dengan banyak giliran.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Clear subject reference prevents wrong-section edits
contract_text = (
    '## Section 1: Payment Terms\nPayment is due within 30 days.\n\n'
    '## Section 2: Termination\nEither party may terminate with 30 days notice.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'In the contract below, rewrite ONLY Section 2 (Termination). '
            'Change the notice period from 30 days to 90 days. '
            'Do not change Section 1 or any other text.\n\n'
            + contract_text
        )
    }]
)
print(response.choices[0].message.content)

Ketaksaan Temporal: Kapan?

Rujukan waktu dalam instruksi dapat menimbulkan ketaksaan: 'terkini', 'saat ini', 'terbaru', 'sekarang'.

Pelatihan model memiliki tanggal batas—model tidak mengetahui arti 'sekarang' kecuali Anda memberitahunya. Selalu berikan tanggal yang jelas untuk tugas yang sensitif terhadap waktu.

  • 'Penelitian terkini' → 'Penelitian yang diterbitkan pada 2024 atau 2025'
  • 'Praktik terbaik saat ini' → 'Praktik terbaik per Januari 2025'
  • 'Versi terbaru' → 'Versi 3.12 (dirilis Oktober 2024)'
import anthropic
from datetime import date

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

today = date.today().isoformat()

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    system=f'Today is {today}. Use this as the reference for any time-related words.',
    messages=[{
        'role': 'user',
        'content': (
            'Describe the best practices for Python async programming '
            'as of January 2025. If your knowledge does not cover this timeframe, '
            'say so explicitly and share what you know up to your cutoff.'
        )
    }]
)
print(response.content[0].text)

Membangun Radar Ketaksaan

Sebelum mengirim instruksi apa pun, periksa sinyal ketaksaan berikut:

  • Pronomina tanpa rujukan yang jelas: itu, ini, tersebut, mereka
  • Kata sifat relatif: lebih baik, lebih singkat, formal, sederhana, komprehensif, terkini
  • Verba samar: perbaiki, tingkatkan, perbarui, jadikan, lakukan sesuatu terhadap
  • Cakupan yang tidak disebutkan: tidak ada keterangan tentang hal yang termasuk atau di luar cakupan
  • Format yang tidak disebutkan: format keluaran tidak ditentukan
  • Konteks yang tidak disebutkan: siapa audiensnya dan untuk apa keluaran tersebut
def scan_prompt_for_ambiguity(prompt):
    '''Simple heuristic scanner for common ambiguity patterns.'''
    warnings = []
    vague_verbs = ['fix', 'improve', 'make it', 'update', 'change it', 'redo']
    relative_adj = ['better', 'shorter', 'longer', 'formal', 'simple', 'recent', 'comprehensive']
    missing_format = ['json', 'table', 'list', 'bullet', 'paragraph', 'word', 'sentence']

    lower = prompt.lower()
    for v in vague_verbs:
        if v in lower:
            warnings.append(f'Vague verb detected: "{v}" — specify what change exactly')
    for a in relative_adj:
        if a in lower:
            warnings.append(f'Relative adjective: "{a}" — anchor with a measurable definition')
    if not any(f in lower for f in missing_format):
        warnings.append('No output format specified — add format, length, or structure')
    return warnings

test = 'Make the report better and more formal.'
print('Prompt:', test)
for w in scan_prompt_for_ambiguity(test):
    print(' WARNING:', w)

Uji Pengetahuan

Seorang pengembang mengirim instruksi ini: 'Sederhanakan kode tersebut.' AI mempersingkat kode, tetapi pengembang itu ingin model menggunakan nama variabel yang lebih mudah dibaca, bukan membuat kode lebih pendek. Apa masalah utamanya?

Menghilangkan Ketaksaan—Ringkasan

Ketaksaan memaksa model menebak—dan tebakannya adalah tafsir yang paling umum, bukan tafsir Anda. Teknik utama untuk menghilangkan ketaksaan:

  • Nyatakan tafsirnya: 'Ketika saya mengatakan X, yang saya maksud adalah Y'
  • Tentukan cakupan: sebutkan hal yang termasuk dan di luar cakupan
  • Sebutkan bentuk keluaran: JSON / tabel / paragraf / jumlah kalimat
  • Tentukan istilah relatif: 'singkat' → '2 kalimat', 'formal' → 'tanpa bentuk singkat'
  • Sebutkan subjeknya: 'Bagian 2', bukan 'bagian ini'
  • Minta klarifikasi: instruksikan model untuk mengajukan pertanyaan sebelum melanjutkan

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menghilangkan Ambiguitas dari Perintah” gratis?

Ya — teks lengkap “Menghilangkan Ambiguitas dari Perintah” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menghilangkan Ambiguitas dari Perintah”?

Pelajari teknik untuk menghapus berbagai kemungkinan tafsir dalam instruksi Anda. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?

Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Menghilangkan Ambiguitas dari Perintah” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?

Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengapa Kekhususan Itu Penting
  2. Menghilangkan Ambiguitas dari Perintah
  3. Menambahkan Detail Konkret
  4. Perbandingan Perintah Samar dan Spesifik
← Kembali ke AI Prompt Engineering