هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

با Amazon Bedrock، Amazon DynamoDB، Amazon Kendra، Amazon Lex و LangChain عوامل هوش مصنوعی مولد بسازید | خدمات وب آمازون

تاریخ:

عوامل هوش مصنوعی مولد قادر به تولید پاسخ‌های انسان‌مانند و درگیر شدن در مکالمات زبان طبیعی با سازماندهی زنجیره‌ای از تماس‌ها با مدل‌های پایه (FM) و سایر ابزارهای تقویت‌کننده بر اساس ورودی کاربر هستند. به جای اینکه تنها اهداف از پیش تعریف شده را از طریق درخت تصمیم ایستا انجام دهند، عامل ها در چارچوب مجموعه ابزارهای موجود خود مستقل هستند. بستر آمازون یک سرویس کاملاً مدیریت شده است که FM های پیشرو از شرکت های هوش مصنوعی را از طریق یک API همراه با ابزار توسعه دهنده برای کمک به ساخت و مقیاس برنامه های کاربردی هوش مصنوعی در دسترس قرار می دهد.

در این پست، نحوه ساخت یک عامل خدمات مالی مولد هوش مصنوعی با پشتیبانی از Amazon Bedrock را نشان می دهیم. این نماینده می تواند به کاربران در یافتن اطلاعات حساب خود، تکمیل درخواست وام یا پاسخ دادن به سؤالات زبان طبیعی کمک کند و در عین حال منابعی را برای پاسخ های ارائه شده ذکر کند. این راه حل در نظر گرفته شده است که به عنوان یک سکوی راه اندازی برای توسعه دهندگان عمل کند تا عوامل مکالمه شخصی خود را برای برنامه های مختلف مانند کارگران مجازی و سیستم های پشتیبانی مشتری ایجاد کنند. کد راه‌حل و دارایی‌های استقرار را می‌توانید در قسمت پیدا کنید مخزن GitHub.

آمازون لکس رابط درک زبان طبیعی (NLU) و پردازش زبان طبیعی (NLP) را برای منبع باز فراهم می کند. نماینده مکالمه LangChain تعبیه شده در یک AWS تقویت کنید سایت اینترنتی. این نماینده مجهز به ابزارهایی است که شامل Anthropic Claude 2.1 FM میزبانی شده در Amazon Bedrock و داده های مصنوعی مشتری ذخیره شده در آمازون DynamoDB و آمازون کندرا برای ارائه قابلیت های زیر:

  • پاسخ های شخصی را ارائه دهید - از DynamoDB برای اطلاعات حساب مشتری، مانند جزئیات خلاصه وام مسکن، مانده سررسید و تاریخ پرداخت بعدی سؤال کنید.
  • دسترسی به دانش عمومی - منطق استدلال نماینده را در کنار حجم وسیعی از داده‌های مورد استفاده برای پیش‌آموزش FM‌های مختلف ارائه‌شده از طریق Amazon Bedrock به کار بگیرید تا برای هر درخواست مشتری پاسخ دهید.
  • پاسخ های نظری را انتخاب کنید - پاسخ های نماینده را با استفاده از نمایه آمازون کندرا که با منابع داده معتبر پیکربندی شده است: اسناد مشتری ذخیره شده در سرویس ذخیره سازی ساده آمازون (Amazon S3) و خزنده وب آمازون کندرا برای وب سایت مشتری پیکربندی شده است

بررسی اجمالی راه حل

ضبط نسخه ی نمایشی

ضبط دمو زیر عملکرد عامل و جزئیات پیاده سازی فنی را برجسته می کند.

معماری راه حل

نمودار زیر معماری راه حل را نشان می دهد.

بررسی اجمالی معماری راه حل

نمودار 1: نمای کلی معماری راه حل

گردش کار پاسخ عامل شامل مراحل زیر است:

  1. کاربران از طریق انتخاب کانال های وب، پیامک یا صوتی خود، گفتگوی زبان طبیعی را با نماینده انجام می دهند. کانال وب شامل یک وب سایت میزبانی Amplify با یک ربات چت تعبیه شده آمازون Lex برای یک مشتری ساختگی است. پیامک و کانال های صوتی را می توان به صورت اختیاری با استفاده از پیکربندی کرد آمازون اتصال و ادغام های پیام رسانی برای آمازون لکس هر درخواست کاربر توسط آمازون لکس برای تعیین هدف کاربر از طریق فرآیندی به نام شناسایی قصد پردازش می شود که شامل تجزیه و تحلیل و تفسیر ورودی کاربر (متن یا گفتار) برای درک عملکرد یا هدف مورد نظر کاربر است.
  2. آمازون لکس سپس یک را فراخوانی می کند AWS لامبدا کنترل کننده برای تحقق هدف کاربر. تابع لامبدا مرتبط با چت ربات آمازون لکس حاوی منطق و قوانین تجاری مورد نیاز برای پردازش هدف کاربر است. Lambda اقدامات خاصی را انجام می دهد یا اطلاعات را بر اساس ورودی کاربر بازیابی می کند، تصمیم می گیرد و پاسخ های مناسب را ایجاد می کند.
  3. Lambda منطق عامل خدمات مالی را به عنوان یک عامل مکالمه LangChain که می‌تواند به داده‌های مشتری ذخیره شده در DynamoDB دسترسی داشته باشد، پاسخ‌های نظری را با استفاده از اسناد و صفحات وب نمایه‌شده توسط Amazon Kendra تنظیم کند و پاسخ‌های دانش عمومی را از طریق FM در Amazon Bedrock ارائه دهد. پاسخ‌های تولید شده توسط آمازون کندرا شامل ذکر منبع است، که نشان می‌دهد چگونه می‌توانید اطلاعات متنی اضافی را از طریق ارائه به عامل ارائه دهید. بازیابی نسل افزوده (RAG). RAG به شما امکان می دهد توانایی نماینده خود را برای ایجاد پاسخ های دقیق تر و مرتبط تر با استفاده از داده های خود افزایش دهید.

معماری عامل

نمودار زیر معماری عامل را نشان می دهد.

معماری عامل مکالمه LangChain

نمودار 2: معماری عامل مکالمه LangChain

گردش کار استدلال عامل شامل مراحل زیر است:

  1. عامل مکالمه LangChain حافظه مکالمه را در خود جای داده است تا بتواند به چندین پرس و جو با تولید متنی پاسخ دهد. این حافظه به عامل اجازه می دهد تا پاسخ هایی را ارائه دهد که زمینه گفتگوی جاری را در نظر می گیرد. این امر از طریق تولید متنی به دست می‌آید، جایی که عامل بر اساس اطلاعاتی که از مکالمه به خاطر آورده است، پاسخ‌هایی را تولید می‌کند که مرتبط و از نظر زمینه مناسب هستند. به عبارت ساده تر، نماینده آنچه را که قبلاً گفته شد به خاطر می آورد و از آن اطلاعات برای پاسخ به سؤالات متعدد به گونه ای استفاده می کند که در بحث جاری منطقی باشد. نماینده ما استفاده می کند کلاس تاریخچه پیام چت DynamoDB LangChain به عنوان یک بافر حافظه مکالمه، بنابراین می تواند تعاملات گذشته را به خاطر بیاورد و تجربه کاربر را با پاسخ های معنادارتر و آگاه به زمینه بهبود بخشد.
  2. عامل از Anthropic Claude 2.1 در Amazon Bedrock استفاده می کند تا کار مورد نظر را از طریق یک سری از ورودی های متنی که با دقت خود تولید می شود به نام خود انجام دهد. پرسیدن. هدف اولیه مهندسی سریع استخراج پاسخ های خاص و دقیق از FM است. تکنیک های مختلف مهندسی سریع عبارتند از:
    • ضربه صفر - یک سوال بدون هیچ سرنخ اضافی به مدل ارائه می شود. انتظار می رود که این مدل تنها بر اساس سوال داده شده پاسخی ایجاد کند.
    • چند شات - مجموعه ای از نمونه سوالات و پاسخ های مربوط به آنها قبل از سوال واقعی گنجانده شده است. با قرار دادن مدل در معرض این مثال ها، یاد می گیرد که به شیوه ای مشابه پاسخ دهد.
    • زنجیره ای از فکر - یک سبک خاص از درخواست چند شات که در آن درخواست به گونه‌ای طراحی شده است که شامل یک سری مراحل استدلال میانی باشد، مدل را از طریق یک فرآیند فکر منطقی هدایت می‌کند و در نهایت به پاسخ دلخواه منتهی می‌شود.

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

فکر: آیا باید از ابزاری استفاده کنم؟ آره
اقدام: اقدامی که باید انجام شود
Action Input: ورودی عمل
مشاهده: نتیجه عمل

فکر: آیا باید از ابزاری استفاده کنم؟ خیر
عامل FSI: [پاسخ و اسناد منبع]

  1. به عنوان بخشی از مسیرهای استدلال مختلف و انتخاب های خودارزیابی نماینده برای تصمیم گیری در مورد اقدام بعدی، توانایی دسترسی به منابع داده های مصنوعی مشتری را از طریق یک ابزار آمازون Kendra Index Retriever. با استفاده از آمازون کندرا، عامل جستجوی متنی را در طیف وسیعی از انواع محتوا، از جمله اسناد، پرسش‌های متداول، پایگاه‌های دانش، راهنماها و وب‌سایت‌ها انجام می‌دهد. برای جزئیات بیشتر در مورد منابع داده پشتیبانی شده، مراجعه کنید منابع داده. نماینده این قدرت را دارد که از این ابزار برای ارائه پاسخ‌های نظری به درخواست‌های کاربر استفاده کند که باید با استفاده از یک کتابخانه دانش معتبر و ارائه‌شده توسط مشتری، به جای مجموعه دانش عمومی‌تر مورد استفاده برای پیش‌آموزش Amazon Bedrock FM پاسخ داده شود.

راهنمای استقرار

در بخش‌های بعدی، مراحل کلیدی برای استقرار راه‌حل، از جمله پیش استقرار و پس از استقرار را مورد بحث قرار می‌دهیم.

پیش از استقرار

قبل از استقرار راه حل، باید نسخه فورک شده خود را از مخزن راه حل با یک وب هوک ایمن شده با رمز ایجاد کنید تا استقرار مداوم وب سایت Amplify خود را خودکار کنید. پیکربندی Amplify به یک مخزن منبع GitHub اشاره می کند که قسمت جلویی وب سایت ما از آن ساخته شده است.

چنگال و کلون Generative-ai-amazon-bedrock-langchain-agent-example مخزن

  1. برای کنترل کد منبعی که وب سایت Amplify شما را می سازد، دستورالعمل های موجود را دنبال کنید یک مخزن چنگال کنید برای انشعاب مخزن مولد-ai-amazon-bedrock-langchain-agent-example. این یک کپی از مخزن ایجاد می کند که از پایه کد اصلی جدا شده است، بنابراین می توانید تغییرات مناسب را انجام دهید.
  2. لطفاً به URL مخزن فوک شده خود توجه داشته باشید تا از آن برای کلون کردن مخزن در مرحله بعدی و پیکربندی متغیر محیطی GITHUB_PAT استفاده شده در اسکریپت اتوماسیون استقرار راه حل استفاده کنید.
  3. با استفاده از دستور git clone مخزن فورک شده خود را کلون کنید:
    git clone <YOUR-FORKED-REPOSITORY-URL>

یک نشانه دسترسی شخصی GitHub ایجاد کنید

وب سایت میزبان Amplify از a رمز دسترسی شخصی GitHub (PAT) به عنوان نشانه OAuth برای کنترل منبع شخص ثالث. توکن OAuth برای ایجاد یک هوک و یک کلید استقرار فقط خواندنی با استفاده از شبیه سازی SSH استفاده می شود.

  1. برای ایجاد PAT خود، دستورالعمل های موجود را دنبال کنید ایجاد یک نشانه دسترسی شخصی (کلاسیک). ممکن است ترجیح دهید از a استفاده کنید برنامه GitHub برای دسترسی به منابع از طرف یک سازمان یا برای ادغام های طولانی مدت.
  2. قبل از بستن مرورگر خود به PAT خود توجه داشته باشید—از آن برای پیکربندی متغیر محیطی GITHUB_PAT استفاده شده در اسکریپت اتوماسیون توسعه راه حل استفاده خواهید کرد. اسکریپت PAT شما را در آن منتشر می کند مدیر اسرار AWS با استفاده از رابط خط فرمان AWS دستورات (AWS CLI) و نام مخفی به عنوان GitHubTokenSecretName استفاده خواهد شد. AWS CloudFormation پارامتر.

گسترش

اسکریپت اتوماسیون استقرار راه حل از الگوی CloudFormation پارامتری استفاده می کند. GenAI-FSI-Agent.yml، برای تهیه خودکار منابع راه حل زیر:

  • یک وب سایت Amplify برای شبیه سازی محیط front-end شما.
  • یک ربات Amazon Lex که از طریق بسته استقرار واردات ربات پیکربندی شده است.
  • چهار جدول DynamoDB:
    • UserPendingAccountsTable - تراکنش های معلق را ثبت می کند (به عنوان مثال، درخواست های وام).
    • UserExistingAccountsTable - حاوی اطلاعات حساب کاربری (به عنوان مثال، خلاصه حساب وام مسکن).
    • ConversationIndexTable - وضعیت مکالمه را ردیابی می کند.
    • میز گفتگو - تاریخچه مکالمه را ذخیره می کند.
  • یک سطل S3 که شامل کنترل کننده عامل لامبدا، بارگذار داده لامبدا، و بسته‌های استقرار آمازون لکس، به همراه سوالات متداول مشتری و اسناد نمونه درخواست وام مسکن است.
  • دو تابع لامبدا:
    • کنترل کننده عامل - حاوی منطق عامل مکالمه LangChain است که می تواند به طور هوشمند از ابزارهای مختلفی بر اساس ورودی کاربر استفاده کند.
    • بارگذار اطلاعات – نمونه داده های حساب مشتری را در UserExistingAccountsTable بارگیری می کند و به عنوان یک منبع CloudFormation سفارشی در طول ایجاد پشته فراخوانی می شود.
  • یک لایه Lambda برای کتابخانه های Amazon Bedrock Boto3، LangChain و pdfrw. این لایه کتابخانه FM LangChain را با مدل Amazon Bedrock به عنوان FM زیربنایی تامین می کند و pdfrw را به عنوان یک کتابخانه PDF منبع باز برای ایجاد و اصلاح فایل های PDF ارائه می دهد.
  • فهرست آمازون کندرا که فهرستی قابل جستجو از اطلاعات معتبر مشتری، از جمله اسناد، پرسش‌های متداول، پایگاه‌های دانش، راهنماها، وب‌سایت‌ها و موارد دیگر را ارائه می‌کند.
  • دو منبع داده آمازون کندرا:
    • آمازون S3 - میزبان یک نمونه سند پرسش و پاسخ مشتری.
    • خزنده وب آمازون کندرا – پیکربندی شده با دامنه ریشه ای که وب سایت خاص مشتری را شبیه سازی می کند (به عنوان مثال، .com).
  • هویت AWS و مدیریت دسترسی مجوزهای (IAM) برای منابع قبلی.

AWS CloudFormation پارامترهای پشته را با مقادیر پیش‌فرض ارائه شده در الگو از قبل پر می‌کند. برای ارائه مقادیر ورودی جایگزین، می‌توانید پارامترهایی را به‌عنوان متغیرهای محیطی که در جفت‌های «ParameterKey=,ParameterValue=» در دستور «aws cloudformation create-stack» در اسکریپت پوسته زیر ارجاع می‌شوند، مشخص کنید.

  1. قبل از اجرای اسکریپت پوسته، به عنوان دایرکتوری کاری خود به نسخه فورکی مخزن ژنراتیو-ai-amazon-bedrock-langchain-agent-example بروید و مجوزهای اسکریپت پوسته را به حالت اجرایی تغییر دهید:
    # If not already forked, fork the remote repository (https://github.com/aws-samples/generative-ai-amazon-bedrock-langchain-agent-example) and change working directory to shell folder:
    cd generative-ai-amazon-bedrock-langchain-agent-example/shell/
    chmod u+x create-stack.sh

  2. مخزن Amplify و متغیرهای محیط GitHub PAT ایجاد شده در مراحل پیش از استقرار را تنظیم کنید:
    export AMPLIFY_REPOSITORY=<YOUR-FORKED-REPOSITORY-URL> # Forked repository URL from Pre-Deployment (Exclude '.git' from repository URL)
    export GITHUB_PAT=<YOUR-GITHUB-PAT> # GitHub PAT copied from Pre-Deployment
    export STACK_NAME=<YOUR-STACK-NAME> # Stack name must be lower case for S3 bucket naming convention
    export KENDRA_WEBCRAWLER_URL=<YOUR-WEBSITE-ROOT-DOMAIN> # Public or internal HTTPS website for Kendra to index via Web Crawler (e.g., https://www.<your-company>.com) - Please see https://docs.aws.amazon.com/kendra/latest/dg/data-source-web-crawler.html

  3. در نهایت، اسکریپت اتوماسیون استقرار راه حل را برای استقرار منابع راه حل، از جمله، اجرا کنید GenAI-FSI-Agent.yml پشته CloudFormation:

source ./create-stack.sh

اسکریپت اتوماسیون راه حل

قبلی source ./create-stack.sh shell دستور دستورات AWS CLI زیر را برای استقرار پشته راه حل اجرا می کند:

export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
export S3_ARTIFACT_BUCKET_NAME=$STACK_NAME-$ACCOUNT_ID
export DATA_LOADER_S3_KEY="agent/lambda/data-loader/loader_deployment_package.zip"
export LAMBDA_HANDLER_S3_KEY="agent/lambda/agent-handler/agent_deployment_package.zip"
export LEX_BOT_S3_KEY="agent/bot/lex.zip" aws s3 mb s3://${S3_ARTIFACT_BUCKET_NAME} --region us-east-1
aws s3 cp ../agent/ s3://${S3_ARTIFACT_BUCKET_NAME}/agent/ --recursive --exclude ".DS_Store" export BEDROCK_LANGCHAIN_LAYER_ARN=$(aws lambda publish-layer-version --layer-name bedrock-langchain-pdfrw --description "Bedrock LangChain pdfrw layer" --license-info "MIT" --content S3Bucket=${S3_ARTIFACT_BUCKET_NAME},S3Key=agent/lambda-layers/bedrock-langchain-pdfrw.zip --compatible-runtimes python3.11 --query LayerVersionArn --output text) export GITHUB_TOKEN_SECRET_NAME=$(aws secretsmanager create-secret --name $STACK_NAME-git-pat --secret-string $GITHUB_PAT --query Name --output text) aws cloudformation create-stack --stack-name ${STACK_NAME} --template-body file://../cfn/GenAI-FSI-Agent.yml --parameters ParameterKey=S3ArtifactBucket,ParameterValue=${S3_ARTIFACT_BUCKET_NAME} ParameterKey=DataLoaderS3Key,ParameterValue=${DATA_LOADER_S3_KEY} ParameterKey=LambdaHandlerS3Key,ParameterValue=${LAMBDA_HANDLER_S3_KEY} ParameterKey=LexBotS3Key,ParameterValue=${LEX_BOT_S3_KEY} ParameterKey=GitHubTokenSecretName,ParameterValue=${GITHUB_TOKEN_SECRET_NAME} ParameterKey=KendraWebCrawlerUrl,ParameterValue=${KENDRA_WEBCRAWLER_URL} ParameterKey=BedrockLangChainPyPDFLayerArn,ParameterValue=${BEDROCK_LANGCHAIN_LAYER_ARN} ParameterKey=AmplifyRepository,ParameterValue=${AMPLIFY_REPOSITORY} --capabilities CAPABILITY_NAMED_IAM aws cloudformation describe-stacks --stack-name $STACK_NAME --query "Stacks[0].StackStatus"
aws cloudformation wait stack-create-complete --stack-name $STACK_NAME export LEX_BOT_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`LexBotID`].OutputValue' --output text) export LAMBDA_ARN=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`LambdaARN`].OutputValue' --output text) aws lexv2-models update-bot-alias --bot-alias-id 'TSTALIASID' --bot-alias-name 'TestBotAlias' --bot-id $LEX_BOT_ID --bot-version 'DRAFT' --bot-alias-locale-settings "{"en_US":{"enabled":true,"codeHookSpecification":{"lambdaCodeHook":{"codeHookInterfaceVersion":"1.0","lambdaARN":"${LAMBDA_ARN}"}}}}" aws lexv2-models build-bot-locale --bot-id $LEX_BOT_ID --bot-version "DRAFT" --locale-id "en_US" export KENDRA_INDEX_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraIndexID`].OutputValue' --output text) export KENDRA_S3_DATA_SOURCE_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraS3DataSourceID`].OutputValue' --output text) export KENDRA_WEBCRAWLER_DATA_SOURCE_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`KendraWebCrawlerDataSourceID`].OutputValue' --output text) aws kendra start-data-source-sync-job --id $KENDRA_S3_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID aws kendra start-data-source-sync-job --id $KENDRA_WEBCRAWLER_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID export AMPLIFY_APP_ID=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyAppID`].OutputValue' --output text) export AMPLIFY_BRANCH=$(aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyBranch`].OutputValue' --output text) aws amplify start-job --app-id $AMPLIFY_APP_ID --branch-name $AMPLIFY_BRANCH --job-type 'RELEASE'

پس از استقرار

در این بخش، ما مراحل پس از استقرار را برای راه‌اندازی یک برنامه frontend که برای تقلید از برنامه تولید مشتری در نظر گرفته شده است، مورد بحث قرار می‌دهیم. عامل خدمات مالی به عنوان یک دستیار جاسازی شده در رابط کاربری وب مثال عمل خواهد کرد.

یک رابط کاربری وب برای ربات چت خود راه اندازی کنید

La رابط کاربری وب آمازون لکس، که به عنوان رابط کاربری chatbot نیز شناخته می شود، به شما امکان می دهد تا به سرعت یک کلاینت وب جامع برای چت ربات های آمازون Lex تهیه کنید. رابط کاربری با آمازون Lex ادغام می شود تا یک افزونه جاوا اسکریپت تولید کند که ویجت چت مبتنی بر آمازون Lex را در برنامه وب موجود شما ترکیب می کند. در این مورد، ما از رابط کاربری وب برای شبیه‌سازی یک برنامه وب مشتری موجود با یک ربات گفتگوی آمازون Lex استفاده می‌کنیم. مراحل زیر را کامل کنید:

  1. دستورالعمل ها را دنبال کنید پشته آمازون Lex web UI CloudFormation را مستقر کنید.
  2. در کنسول AWS CloudFormation، به پشته بروید خروجی را برگه و مقدار آن را پیدا کنید SnippetUrl.
CloudFormation خروجی URL قطعه رابط کاربری وب Lex

شکل 1: آمازون CloudFormation خروجی URL قطعه UI Lex Web

  1. قطعه Web UI Iframe را کپی کنید، که شبیه فرمت زیر است افزودن رابط کاربری ChatBot به وب سایت خود به عنوان یک Iframe.
قطعه Iframe UI Lex Web

شکل 2: Lex Web UI Iframe Snippet

  1. با افزودن پلاگین جاوا اسکریپت رابط کاربری وب خود به بخش دارای برچسب، نسخه فورک شده مخزن منبع Amplify GitHub خود را ویرایش کنید. <-- Paste your Lex Web UI JavaScript plugin here --> برای هر یک از فایل های HTML در زیر دایرکتوری جلویی: index.html, contact.htmlو about.html.
پیشانی قطعه UI Lex Web

شکل 3: Lex Web UI Snippet Frontend

Amplify یک خط لوله ساخت و انتشار خودکار ارائه می دهد که بر اساس تعهدات جدید به مخزن فورک شده شما راه اندازی می شود و نسخه جدید وب سایت شما را در دامنه Amplify شما منتشر می کند. می توانید وضعیت استقرار را در کنسول Amplify مشاهده کنید.

AWS وضعیت خط لوله را تقویت می کند

شکل 4: وضعیت خط لوله تقویت کننده AWS

به وب سایت Amplify دسترسی پیدا کنید

با نصب افزونه جاوا اسکریپت رابط کاربری وب Amazon Lex، اکنون آماده راه اندازی وب سایت آزمایشی Amplify خود هستید.

  1. برای دسترسی به دامنه وب سایت خود، به پشته CloudFormation بروید خروجی را برگه و آدرس اینترنتی دامنه Amplify را پیدا کنید. یا از دستور زیر استفاده کنید:
    aws cloudformation describe-stacks --stack-name $STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmplifyDemoWebsite`].OutputValue' --output text

  2. پس از دسترسی به URL دامنه Amplify خود، می توانید آزمایش و اعتبار سنجی را ادامه دهید.
AWS Amplify Frontend

شکل 5: AWS Ampliify Frontend

تست و اعتبار سنجی

هدف از روش آزمایش زیر تأیید این است که آیا نماینده به درستی اهداف کاربر را برای دسترسی به داده‌های مشتری (مانند اطلاعات حساب)، انجام گردش‌های کاری از طریق اهداف از پیش تعریف‌شده (مانند تکمیل درخواست وام) و پاسخ به سؤالات عمومی، مانند نمونه دستورات زیر:

  1. چرا باید از استفاده کنم؟
  2. نرخ های آنها چقدر رقابتی است؟
  3. از کدام نوع وام مسکن استفاده کنم؟
  4. روند فعلی وام مسکن چیست؟
  5. برای پیش پرداخت چقدر باید پس انداز کنم؟
  6. چه هزینه های دیگری را در هنگام بسته شدن پرداخت خواهم کرد؟

دقت پاسخ با ارزیابی ارتباط، هماهنگی و ماهیت انسان گونه پاسخ های تولید شده توسط Amazon Bedrock ارائه شده توسط Anthropic Claude 2.1 FM تعیین می شود. پیوندهای منبع ارائه شده با هر پاسخ (به عنوان مثال، .com بر اساس پیکربندی خزنده وب آمازون Kendra) نیز باید معتبر باشند.

پاسخ های شخصی را ارائه دهید

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

پاسخ شخصی

شکل 6: پاسخ شخصی

توجه داشته باشید که استفاده از احراز هویت پین در نمایندگی فقط برای اهداف نمایشی است و نباید در هیچ‌یک از اجرای تولیدی استفاده شود.

پاسخ های نظری را انتخاب کنید

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

پاسخ نظر

شکل 7: پاسخ نظری RAG

تولید متنی را ارائه دهید

توانایی نماینده را برای ارائه پاسخ های مرتبط با زمینه براساس سابقه چت قبلی تعیین کنید.

پاسخ نسل متنی

شکل 8: پاسخ تولید متنی

دسترسی به دانش عمومی

دسترسی نماینده به اطلاعات دانش عمومی را برای جستارهای غیرمشتری و بدون نظر که نیاز به پاسخ های دقیق و منسجم بر اساس داده های آموزشی Amazon Bedrock FM و RAG دارند، تأیید کنید.

پاسخ دانش عمومی

شکل 9: پاسخ دانش عمومی

اهداف از پیش تعریف شده را اجرا کنید

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

پاسخ هدف از پیش تعریف شده

شکل 10: پاسخ قصد از پیش تعریف شده

در زیر سند درخواست وام حاصل از طریق جریان مکالمه تکمیل شده است.

درخواست وام حاصل

شکل 11: درخواست وام حاصل

عملکرد پشتیبانی چند کاناله را می توان در ارتباط با اقدامات ارزیابی قبلی در کانال های وب، پیام کوتاه و صوتی آزمایش کرد. برای کسب اطلاعات بیشتر در مورد ادغام ربات چت با سایر خدمات، مراجعه کنید ادغام ربات Amazon Lex V2 با Twilio SMS و یک ربات آمازون لکس را به آمازون کانکت اضافه کنید.

پاک کردن

برای جلوگیری از هزینه در حساب AWS خود، منابع ارائه شده راه حل را تمیز کنید.

  1. رمز دسترسی شخصی GitHub را لغو کنید. PAT های GitHub با مقدار انقضا پیکربندی شده اند. اگر می‌خواهید مطمئن شوید که PAT شما نمی‌تواند برای دسترسی برنامه‌ریزی شده به مخزن فورک شده Amplify GitHub قبل از انقضای آن استفاده شود، می‌توانید PAT را با دنبال کردن موارد زیر لغو کنید. دستورالعمل های مخزن GitHub.
  2. پشته GenAI-FSI-Agent.yml CloudFormation و سایر منابع راه حل را با استفاده از اسکریپت اتوماسیون حذف راه حل حذف کنید. دستورات زیر از نام پشته پیش فرض استفاده می کنند. اگر نام پشته را سفارشی کرده اید، دستورات را مطابق با آن تنظیم کنید.# export STACK_NAME=<YOUR-STACK-NAME>
    ./delete-stack.sh

    اسکریپت اتوماسیون حذف راه حل

    La delete-stack.sh shell اسکریپت منابعی را که در ابتدا با استفاده از اسکریپت اتوماسیون استقرار راه حل تهیه شده بودند، از جمله پشته GenAI-FSI-Agent.yml CloudFormation را حذف می کند.

    # cd generative-ai-amazon-bedrock-langchain-agent-example/shell/ # chmod u+x delete-stack.sh # ./delete-stack.sh echo "Deleting Kendra Data Source: $KENDRA_WEBCRAWLER_DATA_SOURCE_ID" aws kendra delete-data-source --id $KENDRA_WEBCRAWLER_DATA_SOURCE_ID --index-id $KENDRA_INDEX_ID echo "Emptying and Deleting S3 Bucket: $S3_ARTIFACT_BUCKET_NAME" aws s3 rm s3://${S3_ARTIFACT_BUCKET_NAME} --recursive aws s3 rb s3://${S3_ARTIFACT_BUCKET_NAME} echo "Deleting CloudFormation Stack: $STACK_NAME" aws cloudformation delete-stack --stack-name $STACK_NAME aws cloudformation wait stack-delete-complete --stack-name $STACK_NAME echo "Deleting Secrets Manager Secret: $GITHUB_TOKEN_SECRET_NAME" aws secretsmanager delete-secret --secret-id $GITHUB_TOKEN_SECRET_NAME

ملاحظات

اگرچه راه‌حل موجود در این پست قابلیت‌های یک عامل خدمات مالی مولد هوش مصنوعی با پشتیبانی از Amazon Bedrock را به نمایش می‌گذارد، ضروری است که بدانیم این راه‌حل برای تولید آماده نیست. در عوض، به عنوان یک مثال گویا برای توسعه دهندگانی است که هدفشان ایجاد عوامل مکالمه شخصی برای برنامه های مختلف مانند کارگران مجازی و سیستم های پشتیبانی مشتری است. مسیر توسعه‌دهنده به سمت تولید بر روی این نمونه راه‌حل با ملاحظات زیر تکرار می‌شود.

امنیت و حریم خصوصی

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

  1. آن را مخفی نگه دارید، آن را ایمن نگه دارید - شما می خواهید که این داده ها در طول فرآیند تولید کاملاً محافظت شده، ایمن و خصوصی بمانند و می خواهید بر نحوه اشتراک گذاری و استفاده از این داده ها کنترل داشته باشید.
  2. نرده های محافظ استفاده کنید – نحوه استفاده از داده ها توسط یک سرویس را قبل از در دسترس قرار دادن آن در اختیار تیم های خود بدانید. قوانینی را ایجاد و توزیع کنید که چه داده هایی را می توان با چه سرویسی استفاده کرد. این موارد را برای تیم های خود روشن کنید تا بتوانند به سرعت حرکت کنند و با خیال راحت نمونه اولیه را انجام دهند.
  3. حقوقی را زودتر درگیر کنید - از تیم های حقوقی خود بخواهید تا قبل از شروع هرگونه داده حساس از طریق آنها، شرایط و ضوابط و کارت های خدمات سرویس هایی را که قصد استفاده از آنها را دارید، بررسی کنند. شرکای حقوقی شما هرگز مهمتر از امروز نبوده اند.

به عنوان نمونه ای از اینکه چگونه در AWS با Amazon Bedrock به این موضوع فکر می کنیم: همه داده ها رمزگذاری شده است و VPC شما را ترک نمی کند، و Amazon Bedrock یک کپی جداگانه از FM پایه ایجاد می کند که فقط برای مشتری قابل دسترسی است، و آهنگ های دقیق یا دقیق می کند. این کپی خصوصی از مدل را آموزش می دهد.

تست پذیرش کاربر

تست پذیرش کاربر (UAT) را با کاربران واقعی انجام دهید تا عملکرد، قابلیت استفاده و رضایت عامل خدمات مالی مولد هوش مصنوعی را ارزیابی کنید. بازخورد جمع آوری کنید و بهبودهای لازم را بر اساس ورودی کاربر انجام دهید.

استقرار و نظارت

عامل کاملاً آزمایش شده را در AWS مستقر کنید و نظارت و ثبت گزارش را برای ردیابی عملکرد آن، شناسایی مشکلات و بهینه سازی سیستم در صورت نیاز پیاده سازی کنید. ویژگی های مانیتورینگ و عیب یابی لامبدا به طور پیش فرض برای کنترل کننده Lambda عامل فعال هستند.

تعمیر و نگهداری و به روز رسانی

به طور مرتب نماینده را با آخرین نسخه ها و داده های FM به روز کنید تا دقت و اثربخشی آن افزایش یابد. داده های خاص مشتری را در DynamoDB نظارت کنید و در صورت نیاز فهرست بندی منبع داده Amazon Kendra خود را همگام کنید.

نتیجه

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

در یک پست آینده، ما نشان خواهیم داد که چگونه می توان عملکرد مشابه را با استفاده از یک رویکرد جایگزین ارائه کرد نمایندگان آمازون بستر و پایگاه دانش آمازون بستر. این پیاده‌سازی کاملاً مدیریت‌شده توسط AWS چگونگی ارائه قابلیت‌های اتوماسیون هوشمند و جستجوی داده‌ها را از طریق عوامل شخصی‌سازی شده که نحوه تعامل کاربران با برنامه‌های شما را تغییر می‌دهد و تعاملات را طبیعی‌تر، کارآمدتر و مؤثرتر می‌کند، بیشتر بررسی خواهد کرد.


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

کایل تی بلوکسام یک معمار Sr. Solutions با AWS مستقر در کالیفرنیای جنوبی است. اشتیاق کایل این است که مردم را دور هم جمع کند و از فناوری برای ارائه راه حل هایی که مشتریان دوست دارند استفاده کند. در خارج از محل کار، او از موج سواری، غذا خوردن، کشتی گرفتن با سگش و لوس کردن خواهرزاده و برادرزاده اش لذت می برد.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟