اشتراک
هوش مصنوعی برنامه‌نویسی فناوری

llm-fragment-symbex - وبلاگ سایمون ویلیسون

در یک نگاه چکیدهٔ خودکار موتور هوش مصنوعی افق آبی

سایمون ویلیسون در وبلاگ خود به ارائه یک پلاگین جدید به نام "llm-fragment-symbex" پرداخته که بر پایه پروژه Symbex ساخته شده است. Symbex یک ابزار خط فرمان است که با استفاده از ماژول AST پایتون قابلیت استخراج توابع، کلاس‌ها و متدها از کد پایتون را دارد. این پلاگین جدید به مدل‌های زبانی بزرگی (LLM) مانند GPT اجازه می‌دهد تا به سادگی کدها را تحلیل کنند و توابع، کلاس‌ها و مستندات مربوط به آن‌ها را استخراج کنند. سایمون توضیح داده که چطور با استفاده از این پلاگین کارهایی چون توضیح یا پیش‌بینی عملکرد کد امکان‌پذیر است. وی تأکید می‌کند که پلاگین با استفاده از کمتر از یک سنت هزینه دارد و از بازدهی بالایی برخوردار است. همچنین ضمن توسعه این پلاگین، یک نقص جزئی در پروژه Symbex شناسایی و با نسخه جدید (Symbex 2.0) برطرف شده است. سایمون همچنین از ارتباط پلاگین "llm-fragments-symbex" با پروژه‌های خود مانند "llm-hacker-news" و "symbex" نام‌ برده و تأکید کرده که این پلاگین به توسعه‌دهندگان کمک می‌کند تا با استفاده از مستندات و حاشیه‌نویسی‌های نوع پایتون، به ساده‌سازی فرآیند مستندسازی و مدیریت پروژه‌های مرتبط با مدل‌های زبانی بزرگ بپردازند.

llm-fragment-symbex . من یک پلاگین بارگذارنده قطعه LLM جدید منتشر کردم که بر پایه پروژه Symbex من ساخته شده است.

Symbex یک ابزار خط فرمان (CLI) است که من نوشتم که می‌تواند بر روی یک پوشه پر از کد پایتون اجرا شود و توابع، کلاس‌ها، متدها یا فقط مستندات و امضاهای آن‌ها را با استفاده از ماژول AST پایتون برای تجزیه کد، خروجی دهد.

llm-fragments-symbex این قابلیت را مستقیماً به LLM می‌آورد. این به شما امکان می‌دهد کارهایی مانند این را انجام دهید:

llm install llm-fragments-symbex
llm -f symbex:path/to/project -s 'این کد را توضیح بده'

من این را روی پروژه LLM خودم به این صورت اجرا کردم:

cd llm
llm -f symbex:. -s 'حدس بزن این کد چه کار می‌کند'

خروجی کامل اینجاست که به این صورت شروع می‌شود:

به نظر می‌رسد این فهرست کد، یک فهرست یا تخلیه از توابع، کلاس‌ها و متدهای پایتون باشد که عمدتاً متعلق به یک پایگاه کد مرتبط با مدل‌های زبانی بزرگ (LLMها) است. این فهرست، مجموعه گسترده‌ای از قابلیت‌ها را پوشش می‌دهد که مربوط به مدیریت LLMها، جاسازی‌ها (embeddings)، الگوها، پلاگین‌ها، گزارش‌گیری و ابزارهای رابط خط فرمان (CLI) برای تعامل با مدل‌های زبانی است. [...]

همچنین در آن صفحه ورودی تولید شده توسط قطعه نیز نشان داده شده است - در اینجا یک نمونه آورده شده است:

# from llm.cli import resolve_attachment
def resolve_attachment(value):
    ""Resolve an attachment from a string value which could be:
    - "-" for stdin
    - A URL
    - A file path

    Returns an Attachment object.
    Raises AttachmentError if the attachment cannot be resolved."""

# from llm.cli import AttachmentType
class AttachmentType:

    def convert(self, value, param, ctx):

# from llm.cli import resolve_attachment_with_type
def resolve_attachment_with_type(value: str, mimetype: str) -> Attachment:

اگر کد پایتون شما مستندات (docstrings) و حاشیه‌نویسی‌های نوع (type annotations) خوبی داشته باشد، امیدوارم این یک میانبر برای ارائه مستندات API کامل به یک مدل بدون نیاز به تخلیه کل پایگاه کد باشد.

در مثال بالا از 13471 توکن ورودی و 781 توکن خروجی با استفاده از openai/gpt-4.1-mini استفاده شد. این مدل بسیار ارزان است، بنابراین کل هزینه 0.6638 سنت بود - کمتر از یک سنت.

خود پلاگین بیشتر توسط o4-mini با استفاده از پلاگین llm-fragments-github برای بارگیری مخازن simonw/symbex و simonw/llm-hacker-news به عنوان کد نمونه نوشته شده است:

llm \
  -f github:simonw/symbex \
  -f github:simonw/llm-hacker-news \
  -s "یک پلاگین جدید به عنوان یک فایل llm_fragments_symbex.py بنویس که
  یک بارگذارنده سفارشی ارائه می‌دهد که می‌تواند به این صورت استفاده شود:
  llm -f symbex:path/to/folder - سپس تمام امضاهای تابع پایتون را با docstringهای آن‌ها از آن پوشه با استفاده از
  همان ترفندی که symbex استفاده می‌کند، به طور موثر مانند اجرای
  symbex . '*' '*.*' --docs --imports -n" \
   -m openai/o4-mini -o reasoning_effort high"

پاسخ اینجاست. 27819 ورودی، 2918 خروجی = 4.344 سنت.

در حین کار بر روی این پروژه، من یک نقص جزئی ظاهری در خود Symbex شناسایی و برطرف کردم. از نظر فنی، این یک تغییر مخرب است (خروجی را تغییر می‌دهد)، بنابراین من آن را به عنوان Symbex 2.0 منتشر کردم.

اشتراک:
این گزارش ترجمه و بازنویسی خبری با موتور هوش مصنوعی افق آبی است و برای خوانندهٔ فارسی‌زبان بازتنظیم شده. منبع اصلی: وبلاگ سایمون ویلیسون