مشاهدهپذیری برای اشکالزدایی و بهینهسازی برنامههای کاربردی مبتنی بر مدلهای زبانی بزرگ (LLM) حیاتی است – اما تا کنون، دستیابی به دید کاملی از سیستم شما به معنای مدیریت ابزارها و فرمتهای متعدد بود. اکنون، LangSmith پشتیبانی کامل و سرتاسری OpenTelemetry (اپنتلمتری) را برای برنامههای ساخته شده بر روی LangChain و/یا LangGraph ارائه میدهد.
با ادغام اپنتلمتری (OTel) ما، میتوانید ردیابی (tracing) را در سراسر پشته (stack) خود استاندارد کنید و ردیابیها (traces) را به LangSmith – پلتفرم تست و مشاهدهپذیری ما برای چرخه حیات ایجنت – یا سایر پلتفرمهای مشاهدهپذیری ارسال کنید.
پیش از این، LangSmith تنها به عنوان یک فرمت دریافت ردیابی بکاند (backend) از OpenTelemetry پشتیبانی میکرد. با این بهروزرسانی، ما با افزودن پشتیبانی بومی OpenTelemetry مستقیماً به کیت توسعه نرمافزار (SDK) LangSmith، این تصویر را کامل میکنیم.
چرا OpenTelemetry برای برنامههای LLM؟
OpenTelemetry (OTel) یک چارچوب مشاهدهپذیری متنباز است که نحوه جمعآوری، صدور و تحلیل دادههای تلهمتری را استاندارد میکند. با پیچیدهتر و توزیعشدهتر شدن برنامهها، OpenTelemetry روشی سازگار برای ردیابی عملکرد، درک رفتار سیستم و عیبیابی مشکلات فراهم میکند.
برای برنامههای LLM، مشاهدهپذیری چالشهای منحصربهفردی را ایجاد میکند. نظارت بر برنامههای سنتی بر خطاها و انطباق با رفتارهای مورد انتظار تمرکز دارد – با این حال، مشاهدهپذیری LLM نیازمند درک جریانهای کاری چند مرحلهای و نظارت بر خروجیهای پویا و تصادفی (stochastic) با معیارهای ارزیابی پیچیده است که فراتر از نرخ خطاهای ساده میرود.
OpenTelemetry با ارائه یک استاندارد یکپارچه و مستقل از فروشنده (vendor-neutral) برای ابزار دقیقسازی (instrumentation) که در زبانها، چارچوبها و بکاندهای مختلف کار میکند، به این چالشها پاسخ میدهد.
خط لوله (پایپلاین) OpenTelemetry ما چگونه کار میکند
با این بهروزرسانی، LangSmith اکنون یک خط لوله کامل OpenTelemetry برای برنامههای LLM ارائه میدهد:
- ابزار دقیقسازی LangChain: تولید خودکار ردیابیهای دقیق از برنامههای LangChain یا LangGraph شما.
- LangSmith SDK: تبدیل و انتقال این ردیابیها از طریق SDK ما با استفاده از فرمت استاندارد شده OpenTelemetry.
- پلتفرم LangSmith: دریافت و تجسم ردیابیها در یک داشبورد مشاهدهپذیری قدرتمند و ویژه LLM.
این ادغام سرتاسری چندین مزیت کلیدی را به ارمغان میآورد:
- مشاهدهپذیری یکپارچه: مشاهده کل پشته برنامه خود - از اجزای LangChain گرفته تا زیرساختهای زیربنایی - در یک نمای واحد و منسجم.
- ردیابی توزیعشده: دنبال کردن درخواستها هنگام حرکت در معماری میکروسرویسهای شما، با انتشار زمینه (context propagation) که تضمین میکند اسپنهای (spans) مرتبط به همان تریس (trace) پیوند داده میشوند.
- قابلیت همکاری: اتصال LangSmith به ابزارها و زیرساختهای مشاهدهپذیری موجود شما از طریق استاندارد OpenTelemetry، شامل پلتفرمهایی مانند Datadog، Grafana و Jaeger.
با این ادغام، میتوانید مسیر اجرای کامل برنامههای LLM خود را، از پرامپت اولیه تا پاسخ نهایی، با دید دقیق به هر مرحله در طول مسیر ردیابی کنید.
شروع کار با OpenTelemetry در LangSmith
۱. نصب
بسته LangSmith را با پشتیبانی OpenTelemetry نصب کنید:
pip install "langsmith[otel]"
pip install langchain۲. فعال کردن ادغام OpenTelemetry
میتوانید با تنظیم متغیر محیطی LANGSMITH_OTEL_ENABLED، ادغام OpenTelemetry را فعال کنید:
LANGSMITH_OTEL_ENABLED=true
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGSMITH_API_KEY=<your_langsmith_api_key>۳. ایجاد یک برنامه LangChain با ردیابی
در اینجا یک مثال ساده نشان میدهد که چگونه از ادغام OpenTelemetry با LangChain استفاده کنید:
import os
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
# LangChain will automatically use OpenTelemetry to send traces to LangSmith
# because the LANGSMITH_OTEL_ENABLED environment variable is set
# Create a chain
prompt = ChatPromptTemplate.from_template("Tell me a joke about {topic}")
model = ChatOpenAI()
chain = prompt | model
# Run the chain
result = chain.invoke({"topic": "programming"})
print(result.content)۴. مشاهده ردیابیها در LangSmith
پس از اجرای برنامه، ردیابیها را در داشبورد LangSmith خود مانند این نمونه مشاهده خواهید کرد.
ملاحظات عملکرد
در حالی که پشتیبانی سرتاسری OpenTelemetry ما حداکثر انعطافپذیری و قابلیت همکاری را فراهم میکند، در مقایسه با فرمت ردیابی بومی LangSmith، با سربار (overhead) کمی بالاتری همراه است.
برای کاربرانی که منحصراً از LangSmith به عنوان پلتفرم مشاهدهپذیری خود استفاده میکنند، ما همچنان فرمت ردیابی بومی خود را برای عملکرد بهینه توصیه میکنیم. این فرمت ردیابی بیدرنگ (realtime) با اجراهای در حال انتظار (pending runs)، سرعت دریافت سریعتر و سربار حافظه کاهش یافته از SDK را ارائه میدهد.
فرمت ردیابی بومی LangSmith به طور خاص برای برنامههای LLM طراحی شده است و چندین مزیت کلیدی را ارائه میدهد. این فرمت دارای سربار به طور قابل توجهی کاهش یافته با ردپای محاسباتی و حافظه کمتر در مقایسه با فرمت عمومیتر OpenTelemetry است. فرمت بومی ما همچنین برای الگوهای داده و حجمهای منحصربهفرد موجود در برنامههای LLM سفارشیسازی شده است.
همین امروز امتحان کنید
آمادهاید تا ردیابی برنامههای LangChain و LangGraph خود را با OpenTelemetry شروع کنید؟ مستندات کامل ما را برای جزئیات و مثالهای بیشتر بررسی کنید - و اگر هنوز این کار را نکردهاید، LangSmith را به صورت رایگان امتحان کنید.