0Pricing
AI Agents · บทเรียน

เอเจนต์อธิบายโค้ด

สร้างเอเจนต์ที่อ่านไฟล์ต้นฉบับ ขอคำอธิบายจาก LLM และส่งคืนเอกสาร Markdown

เอเจนต์อธิบายโค้ด เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

เป้าหมายโครงการ

สร้างเอเจนต์ที่รับไฟล์ต้นฉบับ (Python, JS หรืออะไรก็ได้) แล้วส่งคืนเอกสาร Markdown ซึ่งประกอบด้วยวัตถุประสงค์ ฟังก์ชันสำคัญ และตัวอย่างการใช้งาน

เหตุใดจึงมีประโยชน์

การสร้างเอกสารจากโค้ดเป็นกรณีใช้งาน LLM ที่น่าเชื่อถือที่สุดกรณีหนึ่ง — โค้ดมีโครงสร้าง งานมีขอบเขตชัดเจน และมนุษย์เป็นผู้อ่านผลลัพธ์ ดังนั้นข้อผิดพลาดเล็กน้อยจึงยอมรับได้

สถาปัตยกรรม

  1. อ่านไฟล์ต้นฉบับ
  2. แบ่งตามคลาสหรือฟังก์ชันได้หากต้องการ
  3. ส่งพรอมต์ให้ LLM อธิบายแต่ละส่วน
  4. รวมเป็นเอกสาร Markdown

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)

จัดการไฟล์ขนาดยาว

หากไฟล์ยาวเกินไป ให้แบ่งตามฟังก์ชันแล้วอธิบายแต่ละฟังก์ชันแยกกัน:

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)

ขั้นตอนที่ 3: รวมผลลัพธ์

สำหรับการรันที่มีหลายส่วน ให้ต่อคำอธิบายของแต่ละฟังก์ชันเข้าด้วยกันเป็นเอกสารเดียว:

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)

เพิ่มสรุประดับโครงการ

หลังจากอธิบายแต่ละฟังก์ชันแล้ว ให้ขอ LLM สร้างภาพรวมระดับสูง:

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

หลายภาษา

พรอมต์เดียวกันใช้ได้กับ JS, Go, Rust และภาษาอื่น ๆ หากต้องการผลลัพธ์ที่ดีขึ้น ให้ระบุภาษาไว้ในพรอมต์:

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

เอกสารตามความแตกต่างของโค้ด

สำหรับการอัปเดตแบบเพิ่มทีละน้อย ให้รันใหม่เฉพาะไฟล์ที่มีการเปลี่ยนแปลง:

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)

ใช้เครื่องมือเพื่อรันตัวอย่าง

ตรวจสอบว่าตัวอย่างการใช้งานของ LLM ทำงานได้จริง — มอบเครื่องมือ REPL ของ Python ให้เอเจนต์:

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)

เมื่อเอเจนต์สร้างข้อมูลหลอน

บางครั้งโมเดลสร้างฟังก์ชันหรืออาร์กิวเมนต์ที่ไม่มีอยู่จริง วิธีลดปัญหา:

  • ให้เฉพาะเนื้อหาไฟล์เท่านั้น (ไม่ให้ความจำของโมเดล)
  • ตั้งอุณหภูมิเป็น 0
  • มีขั้นตอนตรวจสอบ (รันตัวอย่าง ตรวจไวยากรณ์ส่วนย่อยของโค้ด)

ทำให้เป็นผลิตภัณฑ์

ห่อหุ้มเป็น CLI:

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

จากเครื่องมือสู่ CI

เชื่อมต่อเข้ากับ CI: ในทุก PR ให้สร้างเอกสารใหม่สำหรับไฟล์ที่เปลี่ยนแปลงแล้วบันทึกกลับเข้าไป ตอนนี้คลังโค้ดของคุณจะมีเอกสารประกอบอยู่เสมอ

เหตุใดจึงต้องอ่านทั้งไฟล์

เหตุใดจึงส่งไฟล์ต้นฉบับ FULL ให้ LLM แทนที่จะส่งเฉพาะลายเซ็นของฟังก์ชัน

สรุป

เอเจนต์ 30 บรรทัดที่เปลี่ยนโค้ดให้เป็นเอกสาร ขยายความสามารถได้ง่ายด้วยเครื่องมือและการตรวจสอบ เป็นโครงการที่สองที่ยอดเยี่ยมหลังจาก RAG

คำถามที่พบบ่อย

บทเรียน “เอเจนต์อธิบายโค้ด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เอเจนต์อธิบายโค้ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เอเจนต์อธิบายโค้ด”

สร้างเอเจนต์ที่อ่านไฟล์ต้นฉบับ ขอคำอธิบายจาก LLM และส่งคืนเอกสาร Markdown คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “เอเจนต์อธิบายโค้ด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม

ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บอตถามตอบบนเอกสารของคุณ
  2. เอเจนต์อธิบายโค้ด
  3. เอเจนต์วิจัยผ่านเว็บ
  4. ผู้ช่วย SQL สำหรับ DB ของคุณ
← กลับไปที่ AI Agents