برنامه نویسی

قابلیت مشاهده به عنوان کد برای برنامه های هوش مصنوعی با New Relic و Pulumi

Summarize this content to 400 words in Persian Lang برای مطالعه کامل این مقاله اینجا را کلیک کنید.

برنامه های کاربردی هوش مصنوعی پیچیده و توزیع شده اند و نظارت موثر را به چالش می کشند. ترکیب پلت‌فرم مشاهده‌پذیری هوشمند New Relic با راه‌حل‌های مدیریت مخفی زیرساخت‌ها و کدهای Pulumi، امکان یک رویکرد «مشاهده‌پذیری به‌عنوان کد» را می‌دهد. این روش به تیم ها امکان می دهد:

ابزار نظارت بر هوش مصنوعی (AI) و مدل زبان بزرگ (LLM) را به همراه منابع ابری به صورت برنامه‌نویسی تعریف کنید.
کلیدهای API و اعتبارنامه حساب ابری را ایمن مدیریت کنید.
به طور خودکار ابزار دقیق New Relic را در کنار برنامه‌ها و زیرساخت‌های هوش مصنوعی مستقر کنید.

مزایا عبارتند از:

نظارت مداوم در سراسر محیط ها
پیکربندی قابلیت مشاهده با کنترل نسخه
تشخیص آسانتر مسائل مربوط به عملکرد
بینش عمیق تر در مورد رفتار مدل هوش مصنوعی و استفاده از منابع

رویکرد مشاهده‌پذیری به‌عنوان کد به توسعه‌دهندگان کمک می‌کند تا برنامه‌های هوش مصنوعی خود را در حین مقیاس‌بندی و تکامل، مشاهده کنند.

پولومی چیست؟

Pulumi طیف وسیعی از محصولات و خدمات را برای مهندسان و توسعه دهندگان پلت فرم ارائه می دهد، از جمله:

زیرساخت پولومی به عنوان کد (IaC): یک ابزار منبع باز برای تعریف زیرساخت ابری. از چندین زبان برنامه نویسی پشتیبانی می کند. برای مثال، می‌توانید از پایتون برای اعلام خدمات AWS Fargate، ایندکس‌های Pinecone و داشبوردهای سفارشی New Relic استفاده کنید.

ابر پولومی: یک سرویس میزبانی شده که ویژگی های اضافی را در بالای ابزار منبع باز فراهم می کند، مانند مدیریت امور اسرار و امور خارجه، همکاری تیمی، اجرای خط مشی، و دستیار چت مبتنی بر هوش مصنوعی، Pulumi Copilot.

محیط‌ها، اسرار و پیکربندی Pulumi (ESC): این امر مدیریت امن اطلاعات حساس لازم برای مشاهده را تضمین می کند. برای مثال، می‌توانید کلیدهای New Relic، OpenAI و Pinecone API را مدیریت کنید و OpenID Connect (OIDC) را در AWS پیکربندی کنید. این سرویس نیز بخشی از Pulumi Cloud است.

Pulumi به تیم ها اجازه می دهد تا پیکربندی های مشاهده پذیری و تعاریف زیرساخت خود را نسخه کنترل کنند. این امر سازگاری بین محیط‌ها را تضمین می‌کند و همبستگی تغییرات برنامه را با نظارت بر به‌روزرسانی‌ها و اصلاحات زیرساختی ساده‌تر می‌کند.

نحوه دستیابی به قابلیت مشاهده به عنوان کد با New Relic و Pulumi

در این راهنما، با پیکربندی عامل نظارت بر عملکرد برنامه New Relic (APM) و با تعریف داشبوردهای New Relic در پایتون با استفاده از Pulumi، قابلیت‌های نظارت AI و LLM را به یک برنامه چت موجود اضافه می‌کنید.

نسخه نهایی برنامه و زیرساختی که در راهنما به آن اشاره شده است در مخزن عمومی GitHub برنامه چت هوش مصنوعی قرار دارد.

قبل از شروع

اطمینان حاصل کنید که موارد زیر را دارید:

یک حساب New Relic و یک کلید مجوز New Relic معتبر

یک حساب Pulumi Cloud

Pulumi CLI به صورت محلی نصب شده است

تمام خدمات مورد استفاده در این راهنما تحت ردیف های رایگان مربوطه واجد شرایط هستند.

اپلیکیشن دمو OpenAI را کاوش کنید

برنامه آزمایشی OpenAI مورد استفاده در این راهنما با Node.js برای باطن و پایتون برای قسمت جلو نوشته شده است. با OpenAI تعامل دارد تا گیم پلی های مختلفی را از طریق تعاملات محاوره ای مولد هوش مصنوعی ایجاد کند. از پلت فرم عمومی OpenAI برای فراخوانی API خود برای دسترسی به LLM های مختلف مانند GPT-3.5 Turbo، GPT-4 Turbo و GPT-4o استفاده می کند.

در زیر یک اسکرین شات از یک گیم پلی “بالا یا پایین تر” آمده است:

نسخه ی نمایشی یک جریان نسل افزوده بازیابی (RAG) را شبیه سازی می کند، که معمولاً اطلاعاتی را جستجو می کند که هوش مصنوعی یا نمی داند یا ممکن است توهم داشته باشد. این برنامه تعداد انگشت شماری از نام‌ها و دستورالعمل‌های رایج بازی را در پایگاه داده برداری Pinecone ذخیره می‌کند و سپس هنگام فراخوانی OpenAI از آن به عنوان جاسازی استفاده می‌کند.

این برنامه به گونه ای پیکربندی شده است که عملکرد آن مانند ردیابی ها، متریک ها و گزارش ها را مشاهده کند. از آخرین نوآوری New Relic در نظارت بر تعاملات هوش مصنوعی مانند درخواست ها و پاسخ ها استفاده می کند. این قابلیت انطباق را تضمین می کند، کیفیت را ارتقا می دهد و هزینه های هوش مصنوعی شما را رعایت می کند.

برنامه را به صورت محلی با Docker Compose اجرا کنید

ساده ترین راه برای اجرای چت در دستگاه محلی شما از طریق Docker Compose است. را بازرسی کنید docker-compose.yml فایل در ./app پوشه و موارد مورد نیاز را ایجاد کنید .env مطابق تصویر فایل کنید سپس در ترمینال خود، اجرا کنید:

cd app
docker compose up \-d –build

به طور پیش فرض، وب سرویس در http://localhost:8888/ اجرا می شود.

نقاط پایانی API را امتحان کنید

باطن API نقاط پایانی مختلفی را ارائه می دهد که تمام عملکردهای هوش مصنوعی آن را نشان می دهد. فرانت‌اند از این نقاط پایانی برای شبیه‌سازی یک جریان فعالیت برای کاربران نهایی استفاده می‌کند تا یک بازی را انتخاب کنند و یک تعامل بازی را آغاز کنند، یعنی بازی را با OpenAI انجام دهند.

برای شبیه سازی گیم پلی بالاتر یا پایین تر، مراحل زیر را دنبال کنید:

وب سرویس http://localhost:8888/ را باز کنید.
را کلیک کنید بازی ها را دریافت کنید دکمه لیستی از بازی ها نمایش داده می شود.
در ورودی فیلد، کپی بالاتر یا پایین تر.
برای بازیابی یک درخواست بازی برای مرحله بعدی، کلیک کنید دریافت درخواست بازی.
برای ارسال درخواست OpenAI برای تعامل با بازی، کلیک کنید ارسال درخواست.
اولین حدس خود را وارد کنید تعامل بازی خود را درج کنید جعبه متن در مقایسه با عددی که هوش مصنوعی انتخاب کرده است، پیامی درباره درست بودن حدس شما دریافت خواهید کرد. این مرحله را تا زمانی که عدد صحیح را حدس زده اید تکرار کنید.

عوامل New Relic را با هوش مصنوعی پیکربندی کنید

برنامه چت برای ضبط تله متری با استفاده از عامل New Relic APM برای API و خدمات وب پیکربندی شده است. این عامل همچنین از آخرین نوآوری New Relic در نظارت بر تعاملات هوش مصنوعی مانند درخواست ها و پاسخ ها استفاده می کند. این قابلیت انطباق را تضمین می کند، کیفیت را ارتقا می دهد و هزینه های هوش مصنوعی را رعایت می کند.

قابلیت‌های نظارت بر هوش مصنوعی New Relic را از طریق پیکربندی عامل New Relic APM یا از طریق متغیرهای محیطی فعال کنید:

NEW_RELIC_AI_MONITORING_ENABLED = TRUE
NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED = 10000
NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED = 100000

قبل از کاوش در داده های پخش شده توسط عوامل New Relic، از Pulumi برای استقرار برنامه در AWS و ایجاد داشبوردهای سفارشی استفاده خواهید کرد. این به شما امکان می‌دهد تا تعامل ترافیک جهانی با برنامه را شبیه‌سازی کنید، بنابراین معیارهای شاخص هوش مصنوعی را برای پیش‌بینی عملکرد و هزینه تولید کنید.

اسرار خود را با Pulumi ESC مدیریت کنید

در حالی که اجرای همه چیز به صورت محلی همیشه اولین گام خوب در چرخه عمر توسعه نرم افزار است، حرکت به یک محیط آزمایش ابری و فراتر از آن مستلزم حصول اطمینان از اینکه فایل های .env به صورت ایمن در دسترس هستند و تمام وابستگی های زیرساخت برنامه کاربردی مستقر و پیکربندی شده اند. جنبه “Ops” DevOps به چشم می خورد، اما نیازی نیست که کار دلهره آور باشد. شما از Pulumi ESC برای مدیریت اسرار برنامه چت استفاده خواهید کرد.

یک محیط Pulumi ESC ایجاد کنید

شما یک محیط Pulumi ESC ایجاد خواهید کرد تا تمام اسرار env. خود را در Pulumi Cloud ذخیره کنید. این به تیم ها امکان می دهد اطلاعات حساس را با حساب های مجاز به اشتراک بگذارند. مطمئن شوید که کلید مجوز New Relic، توکن OpenAI و کلیدهای Pinecone API مفید هستند.

در ترمینال خود، اجرا کنید:

pulumi login
E=my-cool-chat-app-env
pulumi env init $E –non-interactive
pulumi env set $E environmentVariables.NEW_RELIC_LICENSE_KEY 123ABC –secret
pulumi env set $E environmentVariables.OPENAI_API_KEY 123ABC –secret
pulumi env set $E environmentVariables.PINECONE_API_KEY 123ABC –secret

فایل env خود را با Pulumi CLI بارگیری کنید

اکنون که محیط ESC خود را تعریف کرده اید، می توانید آن را به روش های مختلفی مصرف کنید. برای مثال، می‌توانید با باز کردن محیط با استفاده از قالب‌بندی dotenv، فایل‌های .env ما را پر کنید:

cd ./app
pulumi env open $E –format dotenv > ./.env
docker compose up -d –build

دستورات Pulumi ممکن است برای اجرا در داخل یک نمونه آمازون EC2 یا AWS Fargate تنظیم شوند. در مرحله بعد، منابع AWS را با استفاده از Pulumi IaC و Python تعریف خواهید کرد تا بتوانید برنامه را در AWS اجرا کنید. برای کسب اطلاعات بیشتر، به مستندات Pulumi ESC مراجعه کنید.

کد زیرساخت را با Pulumi Copilot ایجاد کنید

امروزه، هنگام استفاده از زیرساخت به عنوان کد، نیازی به شروع از صفر ندارید. در عوض، از قدرت هوش مصنوعی مولد برای نوشتن کد پایتون استفاده می‌کنید تا تمام منابع ابری مورد نیاز برای برنامه چت ما را اعلام کنید. این مستلزم اعلام منابع New Relic، AWS و Pinecone است.

Pulumi Copilot یک رابط چت مکالمه است که در Pulumi Cloud یکپارچه شده است. این می تواند به نوشتن و استقرار Pulumi IaC کمک کند. بیایید یک مکالمه هوشمندانه با Pulumi Copilot داشته باشیم تا به ما کمک کند تا شروع به نوشتن یک برنامه Pulumi مبتنی بر پایتون کنیم که به محیط ESC قبلا ایجاد شده نیز دسترسی خواهد داشت.

درخواست Pulumi Copilot با:

Can you help me create a new and empty Python Pulumi project called “my-cool-chat-app” with a new stack called dev? Add “my-cool-chat-app-provider-creds” to the imports in the dev stack

داشبوردهای نظارتی New Relic AI LLM را اعلام کنید

یک روش استاندارد برای اشتراک گذاری داشبوردها از طریق ویژگی کپی و واردات JSON است. با این حال، وارد کردن این موارد از طریق کنسول می تواند در طول زمان منجر به مشکلات تکرارپذیری شود. به عنوان مثال، وقتی تعریف JSON داشبورد به شکلی نامطلوب تغییر کند چه اتفاقی می‌افتد؟ این به یک چالش تبدیل می شود زیرا هیچ جزئیات نسخه سازی به راحتی در دسترس نیست.

در عوض، استفاده از یک رویکرد اعلامی برای “وارد کردن” فایل JSON چندین مزیت را باز می کند. این اجازه می دهد تا چرخه عمر داشبورد (ایجاد، حذف، به روز رسانی) را از طریق کد مدیریت کنید و در نتیجه تغییرات را در طول زمان ردیابی کنید. همچنین، ادغام در خطوط لوله استقرار و به اشتراک گذاری آنها در بین تیم ها را آسان می کند.

شما یک فایل JSON داشبورد مانیتورینگ AI/LLM دارید و می خواهید از آن برای ایجاد یک داشبورد جدید تحت حساب New Relic ما استفاده کنید. بیایید گپ خود را با Pulumi Copilot ادامه دهیم و از آن بخواهیم راه حل فعلی را به روز کند:

Okay great! Can you update the Python code to deploy a New Relic dashboard based on an existing JSON file I will provide as input?

یک شاخص Pinecone را اعلام کنید

برای آزمایش برنامه چت به صورت محلی، از قبل به یک فهرست Pinecone نیاز بود. بیایید قبل از استقرار برنامه چت در فضای ابری از وجود آن اطمینان حاصل کنیم.

بیایید از Pulumi Copilot بخواهیم که این منبع را از طرف ما تعریف کند:

Thank you! I also need a serverless Pinecone index named “games” in the “default” namespace on AWS us-east-1 with 1536 dimensions. Can you generate the Python code to define this resource?

یک نمونه آمازون EC2 را اعلام کنید

برای آزمایش برنامه چت در یک محیط ابری، از یک نمونه EC2 استفاده خواهید کرد. بیایید از Pulumi Copilot بخواهیم تمام منابع AWS را تعریف کند:

Perfect! I also want to deploy my chat application to an Amazon EC2 Linux instance.
Create a VPC, security group, public subnet, and route table for the EC2 instance.
Ensure the security group allows inbound SSH traffic on port 22 from anywhere.
Ensure the EC2 instance is publicly accessible and runs a Docker Compose command to start the application.
Associate the EC2 instance with a public IP
Update the EC2 instance with a depends_on resource option for the route table association.

برنامه را با Pulumi مستقر کنید

شما از Copilot درخواست کرده‌اید که در مورد کد زیرساخت پایتون کمک کند، بنابراین وقت آن است که برنامه ما را اجرا کنیم. در پنجره چت، را گسترش دهید کد خوان کشویی را کلیک کنید با پولومی مستقر شوید دکمه ایجاد یک پروژه جدید.

هنگامی که پروژه را دانلود کردید، اعتبارنامه ها را اضافه می کنید، کد را کمی تغییر می دهید و برنامه ما را در AWS مستقر می کنید.

را کلیک کنید با پولومی مستقر شوید دکمه ایجاد یک پروژه جدید. سپس،
را انتخاب کنید استقرار CLI روش استقرار و کلیک کنید ایجاد پروژه.
مرحله 3 را از مراحل “شروع به کار” در پنجره بعدی دنبال کنید تا پروژه را در محیط توسعه خود بارگیری کنید.

با توجه به اینکه قبلاً یک برنامه نسبتاً کوچک در مخزن GitHub دارید، یک پوشه خالی جدید در سطح ریشه به نام اضافه خواهید کرد. زیر، جایی که محتویات پروژه Pulumi را از حالت فشرده خارج می کنید. راه حل خود را با نسخه نهایی میزبانی شده در GitHub مقایسه کنید و هر گونه جزئیات جزئی که Copilot ممکن است نادیده گرفته باشد را برطرف کنید.

همچنین، تغییرات زیر را از نسخه نهایی به اشتراک گذاشته شده اضافه کنید:

اسکریپت user_data سفارشی را به روز کنید.

dashboard.json را به‌روزرسانی کنید تا شناسه حساب New Relic خود را نیز درج کند.
به صورت اختیاری، کد ساخت Docker را برای ساخت اضافه کنید و تصاویر را به Dockerhub فشار دهید.

برای کسب اطلاعات بیشتر، به مستندات Pulumi Copilot مراجعه کنید.

برای اینکه Pulumi بتواند تمام منابع اعلام شده را مستقر کند، نیاز به دسترسی به حساب های ابری شما دارد. این اعتبارنامه ها در یک محیط ESC Pulumi به نام “my-cool-chat-app-provider-creds” قرار می گیرند. برای پیکربندی محیط و راه اندازی محیط مجازی پایتون قبل از استقرار همه چیز از طریق زیر به README مراجعه کنید:

pulumi up –stack dev –yes

تقریباً یک دقیقه طول می کشد تا همه منابع ایجاد شوند. پس از ایجاد، به URL عمومی نمایش داده شده دسترسی پیدا کنید و تست های بارگذاری را اجرا کنید.

نمونه خروجی جزئی از دستور بالا:

Type Name Status
+ pulumi:pulumi:Stack my-cool-chat-app-dev-dev created (57s)
+ ├─ newrelic:index:OneDashboardJson my_cool_dashboard created (2s)
+ ├─ pinecone:index:PineconeIndex my_cool_index created (7s)
+ ├─ docker-build:index:Image ai-chat-demo-api created (2s)
+ ├─ docker-build:index:Image ai-chat-demo-web created (3s)
+ ├─ aws:ec2:Vpc my_cool_vpc created (13s)
+ ├─ aws:ec2:Subnet my_cool_subnet created (11s)
+ ├─ aws:ec2:SecurityGroup my_cool_security_group created (4s)
+ ├─ aws:ec2:InternetGateway my_cool_igw created (1s)
+ ├─ aws:ec2:RouteTable my_cool_route_table created (2s)
+ ├─ aws:ec2:RouteTableAssociation my-route-table-association created (0.89s)
+ └─ aws:ec2:Instance my_cool_instance created (24s)

Outputs:
url: “52.41.60.240”

Resources:
+ 12 created

Duration: 1m0s

داشبوردهای New Relic AI LLM خود را کاوش کنید

به طور خلاصه، برنامه چت به گونه ای پیکربندی شده است که عملکرد آن مانند ردیابی ها، معیارها و گزارش ها را با استفاده از عامل New Relic APM و عامل زیرساخت مشاهده کند. اکنون که ترافیک را شبیه سازی کردیم، بیایید داده های تله متری جمع آوری شده در New Relic را بررسی کنیم.

معیارهای پاسخگویی هوش مصنوعی

این پاسخ های هوش مصنوعی بخش معیارهای کلیدی را هنگام مشاهده برنامه های AI/LLM شما برجسته می کند. شامل داده هایی مانند کل پاسخ ها، زمان پاسخگویی، استفاده از رمز در هر پاسخ، و خطاها در تعاملات هوش مصنوعی شما نمودارهای سری زمانی همان اطلاعات را با بافت تاریخی بیشتری به شما نشان می دهند.

قسمت پایین آن صفحه اطلاعات بیشتری در مورد درخواست‌ها و پاسخ‌هایی که مشتریان نهایی شما برای تعامل با برنامه چت استفاده می‌کردند ارائه می‌کند.

مقایسه مدل هوش مصنوعی

یکی دیگر از جنبه های بسیار مهم نظارت بر هوش مصنوعی New Relic این است موجودی مدل بخش

این نمای یک نمای کلی بصری از همه مدل‌های AI/LLM شما که در برنامه چت ما به کار گرفته می‌شوند، ارائه می‌کند. همانطور که می بینید، ما همان برنامه را با مدل های OpenAI اجرا کردیم GPT-3.5 توربو، GPT-4 توربو، و GPT-4o. مدل AI مورد استفاده در متغیر chatModel برای باطن API AI منعکس شده است. این نما تمام جنبه های حیاتی عملکرد، کیفیت پاسخ ها، خطاها و هزینه را در یک نگاه به شما نشان می دهد.

هنگام ترکیب داده‌های خام از جدول‌های نظارت هوش مصنوعی و جستجوی سفارشی، New Relic همچنین به شما امکان می‌دهد داشبوردهای سفارشی بسازید (برای مرجع وارد کردن داشبوردهای سفارشی، به استقرار برنامه با Pulumi مراجعه کنید). این داشبوردهای سفارشی می توانند داده های اضافی مانند هزینه واقعی (به دلار) برای پلتفرم OpenAI من به ارمغان بیاورند و از نشانه های ورودی و خروجی از نظارت ما برای محاسبه کل هزینه هوش مصنوعی برای اجرای برنامه چت استفاده کنند.

داشبوردهای سفارشی OpenAI

مراحل بعدی

در این راهنما، یک برنامه آزمایشی هوش مصنوعی که توسط OpenAI و Pinecone طراحی شده است را بررسی کردید. این برنامه از داشبوردهای هوش مصنوعی New Relic برای نظارت بر هزینه ها و سایر معیارهای عملکرد استفاده می کند. شما از Pulimi Copilot برای تولید تمام مؤلفه‌های ابری مورد نیاز برای اجرای موفقیت‌آمیز برنامه چت در AWS و در عین حال ذخیره تمام اطلاعات حساس در Pulumi ESC استفاده کردید.

در کارگاه مجازی Observability as Code for AI Apps with New Relic و Pulumi به ما بپیوندید، جایی که برنامه چت، Pulumi و New Relic را در عمل مشاهده خواهید کرد.

برای مطالعه کامل این مقاله اینجا را کلیک کنید.

برنامه های کاربردی هوش مصنوعی پیچیده و توزیع شده اند و نظارت موثر را به چالش می کشند. ترکیب پلت‌فرم مشاهده‌پذیری هوشمند New Relic با راه‌حل‌های مدیریت مخفی زیرساخت‌ها و کدهای Pulumi، امکان یک رویکرد «مشاهده‌پذیری به‌عنوان کد» را می‌دهد. این روش به تیم ها امکان می دهد:

  • ابزار نظارت بر هوش مصنوعی (AI) و مدل زبان بزرگ (LLM) را به همراه منابع ابری به صورت برنامه‌نویسی تعریف کنید.
  • کلیدهای API و اعتبارنامه حساب ابری را ایمن مدیریت کنید.
  • به طور خودکار ابزار دقیق New Relic را در کنار برنامه‌ها و زیرساخت‌های هوش مصنوعی مستقر کنید.

مزایا عبارتند از:

  • نظارت مداوم در سراسر محیط ها
  • پیکربندی قابلیت مشاهده با کنترل نسخه
  • تشخیص آسانتر مسائل مربوط به عملکرد
  • بینش عمیق تر در مورد رفتار مدل هوش مصنوعی و استفاده از منابع

رویکرد مشاهده‌پذیری به‌عنوان کد به توسعه‌دهندگان کمک می‌کند تا برنامه‌های هوش مصنوعی خود را در حین مقیاس‌بندی و تکامل، مشاهده کنند.

پولومی چیست؟

Pulumi طیف وسیعی از محصولات و خدمات را برای مهندسان و توسعه دهندگان پلت فرم ارائه می دهد، از جمله:

  • زیرساخت پولومی به عنوان کد (IaC): یک ابزار منبع باز برای تعریف زیرساخت ابری. از چندین زبان برنامه نویسی پشتیبانی می کند. برای مثال، می‌توانید از پایتون برای اعلام خدمات AWS Fargate، ایندکس‌های Pinecone و داشبوردهای سفارشی New Relic استفاده کنید.
  • ابر پولومی: یک سرویس میزبانی شده که ویژگی های اضافی را در بالای ابزار منبع باز فراهم می کند، مانند مدیریت امور اسرار و امور خارجه، همکاری تیمی، اجرای خط مشی، و دستیار چت مبتنی بر هوش مصنوعی، Pulumi Copilot.
  • محیط‌ها، اسرار و پیکربندی Pulumi (ESC): این امر مدیریت امن اطلاعات حساس لازم برای مشاهده را تضمین می کند. برای مثال، می‌توانید کلیدهای New Relic، OpenAI و Pinecone API را مدیریت کنید و OpenID Connect (OIDC) را در AWS پیکربندی کنید. این سرویس نیز بخشی از Pulumi Cloud است.

Pulumi به تیم ها اجازه می دهد تا پیکربندی های مشاهده پذیری و تعاریف زیرساخت خود را نسخه کنترل کنند. این امر سازگاری بین محیط‌ها را تضمین می‌کند و همبستگی تغییرات برنامه را با نظارت بر به‌روزرسانی‌ها و اصلاحات زیرساختی ساده‌تر می‌کند.

نحوه دستیابی به قابلیت مشاهده به عنوان کد با New Relic و Pulumi

در این راهنما، با پیکربندی عامل نظارت بر عملکرد برنامه New Relic (APM) و با تعریف داشبوردهای New Relic در پایتون با استفاده از Pulumi، قابلیت‌های نظارت AI و LLM را به یک برنامه چت موجود اضافه می‌کنید.

نسخه نهایی برنامه و زیرساختی که در راهنما به آن اشاره شده است در مخزن عمومی GitHub برنامه چت هوش مصنوعی قرار دارد.

قبل از شروع

اطمینان حاصل کنید که موارد زیر را دارید:

  • یک حساب New Relic و یک کلید مجوز New Relic معتبر
  • یک حساب Pulumi Cloud
  • Pulumi CLI به صورت محلی نصب شده است

تمام خدمات مورد استفاده در این راهنما تحت ردیف های رایگان مربوطه واجد شرایط هستند.

اپلیکیشن دمو OpenAI را کاوش کنید

برنامه آزمایشی OpenAI مورد استفاده در این راهنما با Node.js برای باطن و پایتون برای قسمت جلو نوشته شده است. با OpenAI تعامل دارد تا گیم پلی های مختلفی را از طریق تعاملات محاوره ای مولد هوش مصنوعی ایجاد کند. از پلت فرم عمومی OpenAI برای فراخوانی API خود برای دسترسی به LLM های مختلف مانند GPT-3.5 Turbo، GPT-4 Turbo و GPT-4o استفاده می کند.

در زیر یک اسکرین شات از یک گیم پلی “بالا یا پایین تر” آمده است:

توضیحات تصویر

نسخه ی نمایشی یک جریان نسل افزوده بازیابی (RAG) را شبیه سازی می کند، که معمولاً اطلاعاتی را جستجو می کند که هوش مصنوعی یا نمی داند یا ممکن است توهم داشته باشد. این برنامه تعداد انگشت شماری از نام‌ها و دستورالعمل‌های رایج بازی را در پایگاه داده برداری Pinecone ذخیره می‌کند و سپس هنگام فراخوانی OpenAI از آن به عنوان جاسازی استفاده می‌کند.

این برنامه به گونه ای پیکربندی شده است که عملکرد آن مانند ردیابی ها، متریک ها و گزارش ها را مشاهده کند. از آخرین نوآوری New Relic در نظارت بر تعاملات هوش مصنوعی مانند درخواست ها و پاسخ ها استفاده می کند. این قابلیت انطباق را تضمین می کند، کیفیت را ارتقا می دهد و هزینه های هوش مصنوعی شما را رعایت می کند.

برنامه را به صورت محلی با Docker Compose اجرا کنید

ساده ترین راه برای اجرای چت در دستگاه محلی شما از طریق Docker Compose است. را بازرسی کنید docker-compose.yml فایل در ./app پوشه و موارد مورد نیاز را ایجاد کنید .env مطابق تصویر فایل کنید سپس در ترمینال خود، اجرا کنید:

cd app 
docker compose up \-d –build

به طور پیش فرض، وب سرویس در http://localhost:8888/ اجرا می شود.

نقاط پایانی API را امتحان کنید

باطن API نقاط پایانی مختلفی را ارائه می دهد که تمام عملکردهای هوش مصنوعی آن را نشان می دهد. فرانت‌اند از این نقاط پایانی برای شبیه‌سازی یک جریان فعالیت برای کاربران نهایی استفاده می‌کند تا یک بازی را انتخاب کنند و یک تعامل بازی را آغاز کنند، یعنی بازی را با OpenAI انجام دهند.

برای شبیه سازی گیم پلی بالاتر یا پایین تر، مراحل زیر را دنبال کنید:

  1. وب سرویس http://localhost:8888/ را باز کنید.
  2. را کلیک کنید بازی ها را دریافت کنید دکمه لیستی از بازی ها نمایش داده می شود.
  3. در ورودی فیلد، کپی بالاتر یا پایین تر.
  4. برای بازیابی یک درخواست بازی برای مرحله بعدی، کلیک کنید دریافت درخواست بازی.
  5. برای ارسال درخواست OpenAI برای تعامل با بازی، کلیک کنید ارسال درخواست.
  6. اولین حدس خود را وارد کنید تعامل بازی خود را درج کنید جعبه متن در مقایسه با عددی که هوش مصنوعی انتخاب کرده است، پیامی درباره درست بودن حدس شما دریافت خواهید کرد. این مرحله را تا زمانی که عدد صحیح را حدس زده اید تکرار کنید.

عوامل New Relic را با هوش مصنوعی پیکربندی کنید

برنامه چت برای ضبط تله متری با استفاده از عامل New Relic APM برای API و خدمات وب پیکربندی شده است. این عامل همچنین از آخرین نوآوری New Relic در نظارت بر تعاملات هوش مصنوعی مانند درخواست ها و پاسخ ها استفاده می کند. این قابلیت انطباق را تضمین می کند، کیفیت را ارتقا می دهد و هزینه های هوش مصنوعی را رعایت می کند.

قابلیت‌های نظارت بر هوش مصنوعی New Relic را از طریق پیکربندی عامل New Relic APM یا از طریق متغیرهای محیطی فعال کنید:

NEW_RELIC_AI_MONITORING_ENABLED = TRUE
NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED = 10000
NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED = 100000

قبل از کاوش در داده های پخش شده توسط عوامل New Relic، از Pulumi برای استقرار برنامه در AWS و ایجاد داشبوردهای سفارشی استفاده خواهید کرد. این به شما امکان می‌دهد تا تعامل ترافیک جهانی با برنامه را شبیه‌سازی کنید، بنابراین معیارهای شاخص هوش مصنوعی را برای پیش‌بینی عملکرد و هزینه تولید کنید.

اسرار خود را با Pulumi ESC مدیریت کنید

در حالی که اجرای همه چیز به صورت محلی همیشه اولین گام خوب در چرخه عمر توسعه نرم افزار است، حرکت به یک محیط آزمایش ابری و فراتر از آن مستلزم حصول اطمینان از اینکه فایل های .env به صورت ایمن در دسترس هستند و تمام وابستگی های زیرساخت برنامه کاربردی مستقر و پیکربندی شده اند. جنبه “Ops” DevOps به چشم می خورد، اما نیازی نیست که کار دلهره آور باشد. شما از Pulumi ESC برای مدیریت اسرار برنامه چت استفاده خواهید کرد.

یک محیط Pulumi ESC ایجاد کنید

شما یک محیط Pulumi ESC ایجاد خواهید کرد تا تمام اسرار env. خود را در Pulumi Cloud ذخیره کنید. این به تیم ها امکان می دهد اطلاعات حساس را با حساب های مجاز به اشتراک بگذارند. مطمئن شوید که کلید مجوز New Relic، توکن OpenAI و کلیدهای Pinecone API مفید هستند.

در ترمینال خود، اجرا کنید:

pulumi login
E=my-cool-chat-app-env
pulumi env init $E --non-interactive
pulumi env set  $E environmentVariables.NEW_RELIC_LICENSE_KEY 123ABC --secret
pulumi env set  $E environmentVariables.OPENAI_API_KEY 123ABC --secret
pulumi env set  $E environmentVariables.PINECONE_API_KEY 123ABC --secret

فایل env خود را با Pulumi CLI بارگیری کنید

اکنون که محیط ESC خود را تعریف کرده اید، می توانید آن را به روش های مختلفی مصرف کنید. برای مثال، می‌توانید با باز کردن محیط با استفاده از قالب‌بندی dotenv، فایل‌های .env ما را پر کنید:

cd ./app
pulumi env open $E --format dotenv > ./.env
docker compose up -d –build

دستورات Pulumi ممکن است برای اجرا در داخل یک نمونه آمازون EC2 یا AWS Fargate تنظیم شوند. در مرحله بعد، منابع AWS را با استفاده از Pulumi IaC و Python تعریف خواهید کرد تا بتوانید برنامه را در AWS اجرا کنید. برای کسب اطلاعات بیشتر، به مستندات Pulumi ESC مراجعه کنید.

کد زیرساخت را با Pulumi Copilot ایجاد کنید

امروزه، هنگام استفاده از زیرساخت به عنوان کد، نیازی به شروع از صفر ندارید. در عوض، از قدرت هوش مصنوعی مولد برای نوشتن کد پایتون استفاده می‌کنید تا تمام منابع ابری مورد نیاز برای برنامه چت ما را اعلام کنید. این مستلزم اعلام منابع New Relic، AWS و Pinecone است.

Pulumi Copilot یک رابط چت مکالمه است که در Pulumi Cloud یکپارچه شده است. این می تواند به نوشتن و استقرار Pulumi IaC کمک کند. بیایید یک مکالمه هوشمندانه با Pulumi Copilot داشته باشیم تا به ما کمک کند تا شروع به نوشتن یک برنامه Pulumi مبتنی بر پایتون کنیم که به محیط ESC قبلا ایجاد شده نیز دسترسی خواهد داشت.

درخواست Pulumi Copilot با:

Can you help me create a new and empty Python Pulumi project called "my-cool-chat-app" with a new stack called dev? Add "my-cool-chat-app-provider-creds" to the imports in the dev stack

داشبوردهای نظارتی New Relic AI LLM را اعلام کنید

یک روش استاندارد برای اشتراک گذاری داشبوردها از طریق ویژگی کپی و واردات JSON است. با این حال، وارد کردن این موارد از طریق کنسول می تواند در طول زمان منجر به مشکلات تکرارپذیری شود. به عنوان مثال، وقتی تعریف JSON داشبورد به شکلی نامطلوب تغییر کند چه اتفاقی می‌افتد؟ این به یک چالش تبدیل می شود زیرا هیچ جزئیات نسخه سازی به راحتی در دسترس نیست.

در عوض، استفاده از یک رویکرد اعلامی برای “وارد کردن” فایل JSON چندین مزیت را باز می کند. این اجازه می دهد تا چرخه عمر داشبورد (ایجاد، حذف، به روز رسانی) را از طریق کد مدیریت کنید و در نتیجه تغییرات را در طول زمان ردیابی کنید. همچنین، ادغام در خطوط لوله استقرار و به اشتراک گذاری آنها در بین تیم ها را آسان می کند.

شما یک فایل JSON داشبورد مانیتورینگ AI/LLM دارید و می خواهید از آن برای ایجاد یک داشبورد جدید تحت حساب New Relic ما استفاده کنید. بیایید گپ خود را با Pulumi Copilot ادامه دهیم و از آن بخواهیم راه حل فعلی را به روز کند:

Okay great! Can you update the Python code to deploy a New Relic dashboard based on an existing JSON file I will provide as input?

یک شاخص Pinecone را اعلام کنید

برای آزمایش برنامه چت به صورت محلی، از قبل به یک فهرست Pinecone نیاز بود. بیایید قبل از استقرار برنامه چت در فضای ابری از وجود آن اطمینان حاصل کنیم.

بیایید از Pulumi Copilot بخواهیم که این منبع را از طرف ما تعریف کند:

Thank you! I also need a serverless Pinecone index named "games" in the "default" namespace on AWS us-east-1 with 1536 dimensions. Can you generate the Python code to define this resource?

یک نمونه آمازون EC2 را اعلام کنید

برای آزمایش برنامه چت در یک محیط ابری، از یک نمونه EC2 استفاده خواهید کرد. بیایید از Pulumi Copilot بخواهیم تمام منابع AWS را تعریف کند:

Perfect! I also want to deploy my chat application to an Amazon EC2 Linux instance. 
Create a VPC, security group, public subnet, and route table for the EC2 instance.
Ensure the security group allows inbound SSH traffic on port 22 from anywhere.
Ensure the EC2 instance is publicly accessible and runs a Docker Compose command to start the application.
Associate the EC2 instance with a public IP
Update the EC2 instance with a depends_on resource option for the route table association.

برنامه را با Pulumi مستقر کنید

شما از Copilot درخواست کرده‌اید که در مورد کد زیرساخت پایتون کمک کند، بنابراین وقت آن است که برنامه ما را اجرا کنیم. در پنجره چت، را گسترش دهید کد خوان کشویی را کلیک کنید با پولومی مستقر شوید دکمه ایجاد یک پروژه جدید.

توضیحات تصویر

هنگامی که پروژه را دانلود کردید، اعتبارنامه ها را اضافه می کنید، کد را کمی تغییر می دهید و برنامه ما را در AWS مستقر می کنید.

  • را کلیک کنید با پولومی مستقر شوید دکمه ایجاد یک پروژه جدید. سپس،
  • را انتخاب کنید استقرار CLI روش استقرار و کلیک کنید ایجاد پروژه.
  • مرحله 3 را از مراحل “شروع به کار” در پنجره بعدی دنبال کنید تا پروژه را در محیط توسعه خود بارگیری کنید.

با توجه به اینکه قبلاً یک برنامه نسبتاً کوچک در مخزن GitHub دارید، یک پوشه خالی جدید در سطح ریشه به نام اضافه خواهید کرد. زیر، جایی که محتویات پروژه Pulumi را از حالت فشرده خارج می کنید. راه حل خود را با نسخه نهایی میزبانی شده در GitHub مقایسه کنید و هر گونه جزئیات جزئی که Copilot ممکن است نادیده گرفته باشد را برطرف کنید.

همچنین، تغییرات زیر را از نسخه نهایی به اشتراک گذاشته شده اضافه کنید:

  • اسکریپت user_data سفارشی را به روز کنید.
  • dashboard.json را به‌روزرسانی کنید تا شناسه حساب New Relic خود را نیز درج کند.

  • به صورت اختیاری، کد ساخت Docker را برای ساخت اضافه کنید و تصاویر را به Dockerhub فشار دهید.

برای کسب اطلاعات بیشتر، به مستندات Pulumi Copilot مراجعه کنید.

برای اینکه Pulumi بتواند تمام منابع اعلام شده را مستقر کند، نیاز به دسترسی به حساب های ابری شما دارد. این اعتبارنامه ها در یک محیط ESC Pulumi به نام “my-cool-chat-app-provider-creds” قرار می گیرند. برای پیکربندی محیط و راه اندازی محیط مجازی پایتون قبل از استقرار همه چیز از طریق زیر به README مراجعه کنید:

pulumi up --stack dev  --yes

تقریباً یک دقیقه طول می کشد تا همه منابع ایجاد شوند. پس از ایجاد، به URL عمومی نمایش داده شده دسترسی پیدا کنید و تست های بارگذاری را اجرا کنید.

نمونه خروجی جزئی از دستور بالا:

     Type                                Name                        Status              
 +   pulumi:pulumi:Stack                 my-cool-chat-app-dev-dev    created (57s)       
 +   ├─ newrelic:index:OneDashboardJson  my_cool_dashboard           created (2s)        
 +   ├─ pinecone:index:PineconeIndex     my_cool_index               created (7s)        
 +   ├─ docker-build:index:Image         ai-chat-demo-api            created (2s)        
 +   ├─ docker-build:index:Image         ai-chat-demo-web            created (3s)        
 +   ├─ aws:ec2:Vpc                      my_cool_vpc                 created (13s)       
 +   ├─ aws:ec2:Subnet                   my_cool_subnet              created (11s)       
 +   ├─ aws:ec2:SecurityGroup            my_cool_security_group      created (4s)        
 +   ├─ aws:ec2:InternetGateway          my_cool_igw                 created (1s)        
 +   ├─ aws:ec2:RouteTable               my_cool_route_table         created (2s)        
 +   ├─ aws:ec2:RouteTableAssociation    my-route-table-association  created (0.89s)     
 +   └─ aws:ec2:Instance                 my_cool_instance            created (24s)       

Outputs:
    url: "52.41.60.240"

Resources:
    + 12 created

Duration: 1m0s

داشبوردهای New Relic AI LLM خود را کاوش کنید

به طور خلاصه، برنامه چت به گونه ای پیکربندی شده است که عملکرد آن مانند ردیابی ها، معیارها و گزارش ها را با استفاده از عامل New Relic APM و عامل زیرساخت مشاهده کند. اکنون که ترافیک را شبیه سازی کردیم، بیایید داده های تله متری جمع آوری شده در New Relic را بررسی کنیم.

معیارهای پاسخگویی هوش مصنوعی

توضیحات تصویر

این پاسخ های هوش مصنوعی بخش معیارهای کلیدی را هنگام مشاهده برنامه های AI/LLM شما برجسته می کند. شامل داده هایی مانند کل پاسخ ها، زمان پاسخگویی، استفاده از رمز در هر پاسخ، و خطاها در تعاملات هوش مصنوعی شما نمودارهای سری زمانی همان اطلاعات را با بافت تاریخی بیشتری به شما نشان می دهند.

قسمت پایین آن صفحه اطلاعات بیشتری در مورد درخواست‌ها و پاسخ‌هایی که مشتریان نهایی شما برای تعامل با برنامه چت استفاده می‌کردند ارائه می‌کند.

توضیحات تصویر

مقایسه مدل هوش مصنوعی

یکی دیگر از جنبه های بسیار مهم نظارت بر هوش مصنوعی New Relic این است موجودی مدل بخش

توضیحات تصویر

این نمای یک نمای کلی بصری از همه مدل‌های AI/LLM شما که در برنامه چت ما به کار گرفته می‌شوند، ارائه می‌کند. همانطور که می بینید، ما همان برنامه را با مدل های OpenAI اجرا کردیم GPT-3.5 توربو، GPT-4 توربو، و GPT-4o. مدل AI مورد استفاده در متغیر chatModel برای باطن API AI منعکس شده است. این نما تمام جنبه های حیاتی عملکرد، کیفیت پاسخ ها، خطاها و هزینه را در یک نگاه به شما نشان می دهد.

توضیحات تصویر

هنگام ترکیب داده‌های خام از جدول‌های نظارت هوش مصنوعی و جستجوی سفارشی، New Relic همچنین به شما امکان می‌دهد داشبوردهای سفارشی بسازید (برای مرجع وارد کردن داشبوردهای سفارشی، به استقرار برنامه با Pulumi مراجعه کنید). این داشبوردهای سفارشی می توانند داده های اضافی مانند هزینه واقعی (به دلار) برای پلتفرم OpenAI من به ارمغان بیاورند و از نشانه های ورودی و خروجی از نظارت ما برای محاسبه کل هزینه هوش مصنوعی برای اجرای برنامه چت استفاده کنند.

داشبوردهای سفارشی OpenAI

توضیحات تصویر

مراحل بعدی

در این راهنما، یک برنامه آزمایشی هوش مصنوعی که توسط OpenAI و Pinecone طراحی شده است را بررسی کردید. این برنامه از داشبوردهای هوش مصنوعی New Relic برای نظارت بر هزینه ها و سایر معیارهای عملکرد استفاده می کند. شما از Pulimi Copilot برای تولید تمام مؤلفه‌های ابری مورد نیاز برای اجرای موفقیت‌آمیز برنامه چت در AWS و در عین حال ذخیره تمام اطلاعات حساس در Pulumi ESC استفاده کردید.

در کارگاه مجازی Observability as Code for AI Apps with New Relic و Pulumi به ما بپیوندید، جایی که برنامه چت، Pulumi و New Relic را در عمل مشاهده خواهید کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا