Tekoälyagentit · Oppitunti

Koodia selittävä agentti

Rakentakaa agentti, joka lukee lähdetiedostoja, pyytää LLM:ltä selityksen ja palauttaa Markdown-dokumentaation.

Oppitunti 2/416 vaihetta

Koodia selittävä agentti on ilmainen Tekoälyagentit-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tekoälyagentit-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Osaa tämän oppitunnin sisällöstä ei ole vielä käännetty, joten se näytetään englanniksi.

Projektin tavoite

Rakenna agentti, joka ottaa lähdetiedoston (Pythonia, JS:ää tai mitä tahansa) ja palauttaa Markdown-dokumentaation: tarkoituksen, tärkeimmät funktiot ja käyttöesimerkin.

Miksi tämä on hyödyllinen?

Dokumentaation tuottaminen koodista on yksi luotettavimmista LLM:n käyttötapauksista — koodi on rakenteista, tehtävä on rajattu ja ihmiset lukevat tulosteen, joten pienet virheet ovat siedettäviä.

Arkkitehtuuri

  1. Lue lähdetiedosto
  2. Jaa se tarvittaessa luokittain/funktioittain
  3. Pyydä LLM:ää selittämään kukin osa
  4. Yhdistä osat Markdown-dokumentiksi

Step 1: Read the File

import sys

with open('example.py', 'w') as f:
    f.write('print("hello")\n')

path = sys.argv[1] if len(sys.argv) > 1 else 'example.py'
with open(path) as f:
    code = f.read()
print(f'Read {len(code)} characters from {path}')

Step 2: Prompt for Documentation

from openai import OpenAI
oai = OpenAI()

prompt = f'''
You are a senior engineer writing developer-friendly docs.

Given this source file, produce a Markdown document with:
# {path}

## Purpose
(One paragraph)

## Public API
(Each function/class with one-line description)

## Usage Example
(One short, runnable snippet)

Source:
```
{code}
```
'''

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

Käsittele pitkät tiedostot

Jos tiedosto on liian pitkä, jaa se funktioittain ja selitä kukin funktio erikseen:

import ast

tree = ast.parse(code)
functions = [node for node in ast.walk(tree) if isinstance(node, ast.FunctionDef)]

for func in functions:
    snippet = ast.unparse(func)
    explain(snippet)

Vaihe 3: Yhdistä tulosteet

Kun suoritus käsittelee useita osia, yhdistä funktiokohtaiset selitykset yhdeksi dokumentiksi:

docs = []
for func_name, snippet in functions:
    explanation = explain(snippet)
    docs.append(f'### {func_name}\n\n{explanation}\n')

full_doc = '\n'.join(docs)
open('docs.md', 'w').write(full_doc)

Lisää projektitason yhteenveto

Kun funktiokohtaiset selitykset ovat valmiit, pyydä LLM:ltä yleiskuvaus:

summary_prompt = 'Summarise the purpose of this package in 3 sentences, given these function docs:\n\n' + full_doc
summary = ask(summary_prompt)

Monikielisyys

Sama prompti toimii JS:llä, Golla, Rustilla ja muilla kielillä. Saat parempia tuloksia lisäämällä kielen promptiin:

prompt = f'You are documenting {language} code. ...'

Diff-pohjainen dokumentaatio

Inkrementaalisia päivityksiä varten suorita uudelleen vain muuttuneille tiedostoille:

import subprocess
changed = subprocess.check_output(['git', 'diff', '--name-only', 'HEAD~1']).decode().splitlines()
for path in changed:
    if path.endswith('.py'):
        regenerate_doc(path)

Käytä työkalua esimerkin suorittamiseen

Varmista, että LLM:n käyttöesimerkki todella toimii — anna agentille Python REPL -työkalu:

def run_python(code):
    try:
        exec(code, {})
        return {'stdout': 'ok', 'stderr': ''}
    except Exception as e:
        return {'stdout': '', 'stderr': str(e)}

tools = [{'name': 'run_python', 'description': 'Execute a Python snippet and return stdout/stderr', 'parameters': {'code': 'str'}}]

broken_example = 'print(1/0)'
result = run_python(broken_example)
if result['stderr']:
    print('Example failed:', result['stderr'])
    fixed_example = 'print(1)'
    result = run_python(fixed_example)
    print('Self-corrected result:', result)
else:
    print('Example ran fine:', result)

Kun agentti hallusinoi

Malli keksii joskus olemattomia funktioita tai argumentteja. Lievennä ongelmaa näin:

  • Anna sille VAIN tiedoston sisältö (ei mallin muistia)
  • Lämpötila 0
  • Lisää varmennusvaihe (suorita esimerkki ja linttaa koodinpätkä)

Tuotteista se

Paketoituasi tämän CLI-työkaluksi:

# pip install -e .
# docgen src/myproject/agent.py
# Outputs docs.md

Työkalusta CI:hin

Liitä se CI:hin: generoi jokaisen PR:n yhteydessä muuttuneiden tiedostojen dokumentaatio uudelleen ja commitoi se takaisin. Nyt reposi on aina dokumentoitu.

Miksi lukea koko tiedosto?

Miksi välittää LLM:lle KOKO lähdetiedosto pelkkien funktioallekirjoitusten sijaan?

Kertaus

30-rivinen agentti, joka muuttaa koodin dokumentaatioksi. Sitä on helppo laajentaa työkaluilla ja varmennuksilla. Erinomainen toinen projekti RAG:n jälkeen.

Aloita maksutta

Opi Tekoälyagentit 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
60
Oppitunnit
239

Usein kysytyt kysymykset

Onko oppitunti ”Koodia selittävä agentti” ilmainen?

Kyllä – oppitunnin ”Koodia selittävä agentti” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tekoälyagentit-kurssin, päivitä CoddyKit PROhon. Tekoälyagentit-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Koodia selittävä agentti”?

Rakentakaa agentti, joka lukee lähdetiedostoja, pyytää LLM:ltä selityksen ja palauttaa Markdown-dokumentaation. Harjoittelet Tekoälyagentit-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tekoälyagentit-opiskelun?

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

Kuinka kauan ”Koodia selittävä agentti”-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älyagentit-oppitunnilla?

Kyllä. Jokainen Tekoälyagentit-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. Kysymys-vastausrobotti omille dokumenteille
  2. Koodia selittävä agentti
  3. Verkkoa selaava tutkimusagentti
  4. SQL-avustaja omalle tietokannalle
← Takaisin: Tekoälyagentit