Tekoälyn prompt engineering · Oppitunti

Peräkkäiset muunnosketjut

Luonnostelu → tarkistus → viimeistely -ketjut ja muu monivaiheinen hiominen.

Oppitunti 3/413 vaihetta

Peräkkäiset muunnosketjut on ilmainen Tekoälyn prompt engineering-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Tekoälyn prompt engineering-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.

Muunnosketjut

Muunnosketju muuntaa sisältöä asteittain muodosta toiseen erikoistuneiden vaiheiden sarjassa. Kukin vaihe muuntaa edellisen vaiheen tulosteen ja jalostaa tai rikastaa sisältöä vähitellen.

Kolme hyödyllisintä muunnosketjumallia ovat:

  • Luonnos → Tarkistus → Viimeistely: Sisällön luominen ja jalostaminen
  • Ideointi → Suodatus → Laajennus: Ideoiden tuottaminen ja kehittäminen
  • Poiminta → Luokittelu → Reititys: Tietojen käsittely ja päätöksenteko

Luonnos → Tarkistus → Viimeistely

Yleisin sisällönluontiketju. Jokaisella vaiheella on oma tehtävänsä:

  • Luonnos: Tuota raakasisältöä nopeasti — nopeus ennen täydellisyyttä
  • Tarkistus: Arvioi luonnosta tiettyjen kriteerien perusteella — tarkkuus, sävy ja kattavuus
  • Viimeistely: Hyödynnä tarkistuksen havainnot lopullisen tulosteen tuottamiseksi

Kun nämä tehtävät erotetaan omiksi vaiheikseen, tulokset ovat parempia kuin pyydettäessä mallia luonnostelemaan ja viimeistelemään yhdellä kertaa.

Luonnos → Tarkistus → Viimeistely: Python-toteutus

Luonnos → Tarkistus → Viimeistely -ketjun täydellinen toteutus:

import anthropic

client = anthropic.Anthropic(api_key='YOUR_API_KEY')

def call(prompt):
    r = client.messages.create(
        model='claude-opus-4-5', max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return r.content[0].text

def draft_review_polish(topic, audience, tone):
    # Step 1: Draft
    draft = call(f'Write a 200-word article about: {topic}. Audience: {audience}.')

    # Step 2: Review — produces critique, not final text
    review = call(f'Review this article for tone ({tone}), accuracy, and clarity.\nList specific improvements needed.\n\nArticle:\n{draft}')

    # Step 3: Polish — applies review findings
    final = call(f'Rewrite this article applying all the review feedback.\n\nOriginal:\n{draft}\n\nReview feedback:\n{review}')

    return {'draft': draft, 'review': review, 'final': final}

result = draft_review_polish('prompt engineering', 'software engineers', 'technical but approachable')
print(result['final'][:300])

Ideointi → Suodatus → Laajennus

Ideoiden kehittämisketju: tuota ensin laajasti, rajaa sitten harkitusti ja kehitä lopuksi perusteellisesti.

  • Ideointi: Tuota paljon ideoita arvioimatta niitä — määrä ennen laatua
  • Suodatus: Tunnista parhaat ideat soveltamalla valintakriteerejä
  • Laajennus: Kehitä valitut ideat yksityiskohtaisiksi ehdotuksiksi

Tämä ketju ehkäisee ankkuroitumisharhaa, jossa aloitetaan muutamasta ideasta ja pitäydytään niissä.

Ideointi → Suodatus → Laajennus: Python-toteutus

Ideointi → Suodatus → Laajennus -ketjun täydellinen toteutus JSON-tietojen välityksellä:

import json

def brainstorm_filter_expand(challenge, criteria, n_final=3):
    # Step 1: Brainstorm — generate many ideas
    raw_ideas = call(
        f'Generate 10 creative ideas for this challenge: {challenge}\n'
        'Return JSON: {"ideas": ["string"]}'
    )
    ideas = json.loads(raw_ideas)['ideas']

    # Step 2: Filter — apply criteria
    ideas_formatted = '\n'.join(f'{i+1}. {idea}' for i, idea in enumerate(ideas))
    filtered_raw = call(
        f'Select the {n_final} best ideas based on these criteria: {criteria}\n'
        f'Ideas:\n{ideas_formatted}\n'
        f'Return JSON: {{"selected": ["string"]}}'
    )
    selected = json.loads(filtered_raw)['selected']

    # Step 3: Expand — develop each selected idea
    expansions = {}
    for idea in selected:
        expansions[idea] = call(f'Write a 100-word expansion of this idea, including implementation steps: {idea}')

    return expansions

result = brainstorm_filter_expand('reduce app churn', 'feasible in 30 days, measurable impact', n_final=2)
print(list(result.keys()))

Poiminta → Luokittelu → Reititys

Tietojenkäsittelyketju: poimi rakenteiset tiedot, luokittele ne ja reititä ne sitten sopivalle käsittelijälle.

  • Poiminta: Poimi rakenteiset tiedot rakenteistamattomasta tekstistä
  • Luokittelu: Määritä luokkia, tunnisteita tai prioriteetteja
  • Reititys: Suorita eri toimintoja luokituksen perusteella

Tämä malli toimii älykkäiden triage-järjestelmien, sisällön moderoinnin ja automaattisen asiakastuen reitityksen perustana.

Poiminta → Luokittelu → Reititys: Python-toteutus

Poiminta → Luokittelu → Reititys -ketjun täydellinen toteutus:

import json

def extract_classify_route(ticket_text):
    # Step 1: Extract structured data
    extracted = json.loads(call(
        f'Extract from this support ticket: {{"issue_summary": str, "product_area": str, "user_emotion": str}}\n\n{ticket_text}'
    ))

    # Step 2: Classify priority and department
    classified = json.loads(call(
        f'Classify this ticket.\nIssue: {extracted["issue_summary"]}\nEmotion: {extracted["user_emotion"]}\n'
        'Return JSON: {"priority": "urgent|high|medium|low", "department": "billing|technical|general"}'
    ))

    # Step 3: Route — generate department-specific response
    dept = classified['department']
    priority = classified['priority']

    route_prompts = {
        'billing': f'You are a billing specialist. Priority: {priority}. Respond to: {extracted["issue_summary"]}',
        'technical': f'You are a senior engineer. Priority: {priority}. Resolve: {extracted["issue_summary"]}',
        'general': f'You are customer support. Priority: {priority}. Help with: {extracted["issue_summary"]}'
    }

    response = call(route_prompts[dept])
    return {'extracted': extracted, 'classified': classified, 'response': response}

result = extract_classify_route('My payment was charged twice and I am furious!')
print(result['classified'])

Sopivan ketjumallin valitseminen

Sovita käyttötapaus sopivaan muunnosketjumalliin:

  • Luonnos → Tarkistus → Viimeistely: Kaikenlaiseen sisällön luomiseen — sähköpostit, artikkelit, dokumentaatio ja koodi
  • Ideointi → Suodatus → Laajennus: Strategiaan, ideointiin, tuotesuunnitteluun ja sisältökalentereihin
  • Poiminta → Luokittelu → Reititys: Tukipyyntöihin, sähköposteihin, sisällön moderointiin ja tietojenkäsittelyyn

Näitä malleja voi myös yhdistää — esimerkiksi Poiminta → Luokittelu → Ratkaisujen ideointi → Suodatus → Vastauksen luonnostelu.

Mallien yhdistäminen

Todellisen maailman käsittelyputkissa yhdistetään usein useita malleja pidemmiksi ketjuiksi:

def full_content_pipeline(raw_research):
    # Pattern 1: Extract → Classify key insights
    insights = json.loads(call(
        f'Extract top 5 insights. Return JSON: {{"insights": [str]}}\n\n{raw_research}'
    ))

    # Pattern 2: Brainstorm → Filter article angles
    angles_raw = json.loads(call(
        f'Brainstorm 8 article angles based on: {insights["insights"]}\nReturn JSON: {{"angles": [str]}}'
    ))
    best_angle = json.loads(call(
        f'Select the most compelling angle for a developer audience.\nReturn JSON: {{"angle": str}}\n\nAngles: {angles_raw["angles"]}'
    ))

    # Pattern 3: Draft → Review → Polish
    draft = call(f'Write a 300-word technical article on: {best_angle["angle"]}')
    review = call(f'Review for technical accuracy and developer relevance:\n{draft}')
    final = call(f'Polish the article applying this feedback:\n\nDraft:\n{draft}\n\nFeedback:\n{review}')

    return final

print('Combined pipeline defined.')

Välitulosteiden kirjaaminen lokiin

Kirjaa muunnosketjuissa jokainen välituloste lokiin. Tämä on olennaista virheenkorjauksessa — jos lopullinen tuloste on väärä, on tiedettävä, mikä vaihe tuotti virheellisen tuloksen.

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('chain')

def logged_call(step_name, prompt, **kwargs):
    logger.info(f'[{step_name}] INPUT: {prompt[:100]}...')
    result = call(prompt)
    logger.info(f'[{step_name}] OUTPUT: {result[:100]}...')
    return result

def draft_review_polish_logged(topic):
    draft = logged_call('DRAFT', f'Write 200 words about: {topic}')
    review = logged_call('REVIEW', f'Review for clarity:\n{draft}')
    final = logged_call('POLISH', f'Rewrite applying feedback.\nDraft:\n{draft}\nFeedback:\n{review}')
    return final

print('Logging integrated into chain.')

Ketjun laadun mittaaminen

Mittaa kunkin vaiheen tuottama parannus varmistaaksesi, että ketju tuottaa lisäarvoa:

def measure_chain_improvement(topic):
    # Baseline: single prompt
    baseline = call(f'Write and polish a 200-word article about {topic} in one step.')

    # Chain: Draft -> Review -> Polish
    draft = call(f'Write a 200-word draft about {topic}.')
    review = call(f'List 3 specific improvements needed:\n{draft}')
    chained = call(f'Rewrite applying these improvements:\nDraft:\n{draft}\nImprovements:\n{review}')

    # Have the model compare quality
    comparison = call(
        f'Which version is higher quality? Rate each 1-10 for clarity and depth.\n'
        f'Version A (single prompt):\n{baseline}\n\nVersion B (chain):\n{chained}\n'
        'Return JSON: {"version_a_score": int, "version_b_score": int, "winner": "A|B", "reason": str}'
    )
    return comparison

print('Quality measurement pipeline defined.')

Pikatarkistus

Mikä muunnosketjumalli sopii parhaiten saapuvien tukipyyntöjen käsittelyyn ja reitittämiseen oikealle tiimille?

Muunnosketjut — tärkeimmät opit

Peräkkäiset muunnosketjut jalostavat sisältöä asteittain erikoistuneiden vaiheiden avulla:

  • Luonnos → Tarkistus → Viimeistely: Sopii parhaiten sisällön luomiseen — tuottaa, arvioi ja jalostaa
  • Ideointi → Suodatus → Laajennus: Sopii parhaiten ideointiin — tuottaa laajasti, valitsee harkiten ja kehittää perusteellisesti
  • Poiminta → Luokittelu → Reititys: Sopii parhaiten tietojenkäsittelyyn — poimii rakenteen, määrittää tunnisteet ja reitittää käsittelijöille
  • Malleja voi yhdistää monimutkaisten käyttötapausten pidemmiksi käsittelyputkiksi
  • Kirjaa välitulosteet jokaisessa vaiheessa, jotta virheenkorjaus on tehokasta
  • Mittaa kunkin vaiheen tuottama parannus varmistaaksesi ketjun tuottaman arvon
Aloita maksutta

Opi Tekoälyn prompt engineering tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
199

Usein kysytyt kysymykset

Onko oppitunti ”Peräkkäiset muunnosketjut” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Tekoälyn prompt engineering-oppimispolun 3 oppituntia, myös oppitunnin “Peräkkäiset muunnosketjut”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Tekoälyn prompt engineering-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Peräkkäiset muunnosketjut”?

Luonnostelu → tarkistus → viimeistely -ketjut ja muu monivaiheinen hiominen. Harjoittelet Tekoälyn prompt engineering-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyn prompt engineering-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tekoälyn prompt engineering-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Peräkkäiset muunnosketjut”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tekoälyn prompt engineering-oppitunnilla?

Kyllä. Jokainen Tekoälyn prompt engineering-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mitä promptiketjut ovat
  2. Tulosteesta syötteeksi -mallit
  3. Peräkkäiset muunnosketjut
  4. Virheenkäsittely promptiketjuissa
← Takaisin: Tekoälyn prompt engineering