Koodia selittävä agentti
Rakentakaa agentti, joka lukee lähdetiedostoja, pyytää LLM:ltä selityksen ja palauttaa Markdown-dokumentaation.
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
- Lue lähdetiedosto
- Jaa se tarvittaessa luokittain/funktioittain
- Pyydä LLM:ää selittämään kukin osa
- 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.mdTyö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.
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
- Kysymys-vastausrobotti omille dokumenteille
- Koodia selittävä agentti
- Verkkoa selaava tutkimusagentti
- SQL-avustaja omalle tietokannalle