Xlera8

שפר בינה מלאכותית לשיחה עם טכניקות ניתוב מתקדמות עם Amazon Bedrock | שירותי האינטרנט של אמזון

עוזרי בינה מלאכותית לשיחה (AI) מתוכננים לספק תגובות מדויקות בזמן אמת באמצעות ניתוב חכם של שאילתות לפונקציות ה-AI המתאימות ביותר. עם שירותי AI גנרטיביים של AWS כמו סלע אמזון, מפתחים יכולים ליצור מערכות המנהלות במומחיות ומגיבות לבקשות משתמשים. Amazon Bedrock הוא שירות מנוהל במלואו המציע מבחר של דגמי יסוד (FM) בעלי ביצועים גבוהים מחברות AI מובילות כמו AI21 Labs, Anthropic, Cohere, Meta, Stability AI ואמזון באמצעות API יחיד, יחד עם מערך רחב של היכולות שאתה צריך כדי לבנות יישומי בינה מלאכותית גנרטיבית עם אבטחה, פרטיות ובינה מלאכותית אחראית.

פוסט זה מעריך שתי גישות עיקריות לפיתוח עוזרי AI: שימוש בשירותים מנוהלים כגון סוכנים עבור Amazon Bedrock, ושימוש בטכנולוגיות קוד פתוח כמו LangChain. אנו בוחנים את היתרונות והאתגרים של כל אחד מהם, כדי שתוכלו לבחור את הדרך המתאימה ביותר לצרכים שלכם.

מה זה עוזר בינה מלאכותית?

עוזר AI הוא מערכת חכמה שמבינה שאילתות שפה טבעית ומקיימת אינטראקציה עם כלים שונים, מקורות נתונים וממשקי API כדי לבצע משימות או לאחזר מידע בשם המשתמש. לעוזרי AI יעילים יש את יכולות המפתח הבאות:

  • עיבוד שפה טבעית (NLP) וזרימת שיחה
  • אינטגרציה של בסיס ידע וחיפושים סמנטיים כדי להבין ולאחזר מידע רלוונטי על סמך הניואנסים של הקשר השיחה
  • הפעלת משימות, כגון שאילתות מסד נתונים והתאמה אישית AWS למבדה פונקציות
  • טיפול בשיחות מיוחדות ובקשות משתמשים

אנו מדגימים את היתרונות של עוזרי AI המשתמשים בניהול התקנים באינטרנט של הדברים (IoT) כדוגמה. במקרה שימוש זה, בינה מלאכותית יכולה לעזור לטכנאים לנהל מכונות ביעילות עם פקודות שמביאות נתונים או אוטומציה של משימות, ומייעלות את הפעולות בייצור.

הגישה של סוכנים לבסיס אמזון

סוכנים עבור Amazon Bedrock מאפשר לך לבנות יישומי AI גנרטיביים שיכולים להריץ משימות מרובות שלבים במערכות ובמקורות הנתונים של החברה. הוא מציע את יכולות המפתח הבאות:

  • יצירה אוטומטית של הנחיות מהוראות, פרטי API ומידע על מקור הנתונים, חוסכת שבועות של מאמץ הנדסי מהיר
  • Retrieval Augmented Generation (RAG) לחיבור מאובטח של סוכנים למקורות הנתונים של החברה ולספק תשובות רלוונטיות
  • תזמור והרצה של משימות מרובות שלבים על ידי פירוק בקשות לרצפים לוגיים וקריאה לממשקי API נחוצים
  • נראות לתוך ההיגיון של הסוכן באמצעות עקבות של שרשרת מחשבה (CoT), המאפשרת פתרון בעיות והיגוי של התנהגות המודל
  • בקש יכולות הנדסיות לשנות את תבנית ההנחיה שנוצרה אוטומטית לשליטה משופרת על סוכנים

אתה יכול להשתמש בסוכנים עבור Amazon Bedrock ו בסיסי ידע עבור Amazon Bedrock לבנות ולפרוס עוזרי AI עבור מקרי שימוש מורכבים בניתוב. הם מספקים יתרון אסטרטגי למפתחים וארגונים על ידי פישוט ניהול התשתיות, שיפור המדרגיות, שיפור האבטחה והפחתת הרמה כבדה ללא הבחנה. הם גם מאפשרים קוד שכבת יישום פשוט יותר מכיוון שהלוגיקת הניתוב, הווקטוריזציה והזיכרון מנוהלים במלואם.

סקירת פתרונות

פתרון זה מציג עוזר AI לשיחה המותאם לניהול ותפעול מכשירי IoT בעת שימוש ב-Claude v2.1 של Anthropic ב-Amazon Bedrock. פונקציונליות הליבה של עוזר הבינה המלאכותית נשלטת על ידי סט מקיף של הוראות, המכונה הודעת מערכת, אשר משרטט את יכולותיו ותחומי התמחותו. הנחיה זו מוודאת שעוזר הבינה המלאכותית יכול להתמודד עם מגוון רחב של משימות, מניהול מידע על המכשיר ועד להרצת פקודות תפעוליות.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

מצויד ביכולות אלו, כמפורט בהודעת המערכת, עוזר הבינה המלאכותית עוקב אחר זרימת עבודה מובנית כדי לענות על שאלות משתמשים. האיור הבא מספק ייצוג חזותי של זרימת עבודה זו, הממחיש כל שלב מהאינטראקציה הראשונית של המשתמש ועד לתגובה הסופית.

ייצוג חזותי של זרימת עבודה זו, הממחיש כל שלב מהאינטראקציה הראשונית של המשתמש ועד לתגובה הסופית.

זרימת העבודה מורכבת מהשלבים הבאים:

  1. התהליך מתחיל כאשר משתמש מבקש מהעוזר לבצע משימה; למשל, לבקש את נקודות הנתונים המקסימליות עבור מכשיר IoT ספציפי device_xxx. קלט טקסט זה נקלט ונשלח לעוזר הבינה המלאכותית.
  2. עוזר הבינה המלאכותית מפרש את קלט הטקסט של המשתמש. הוא משתמש בהיסטוריית השיחה שסופקה, בקבוצות הפעולה ובבסיסי הידע כדי להבין את ההקשר ולקבוע את המשימות הדרושות.
  3. לאחר ניתוח והבנה של כוונת המשתמש, עוזר הבינה המלאכותית מגדיר משימות. זה מבוסס על ההוראות שמתפרשות על ידי העוזר לפי הנחיית המערכת והקלט של המשתמש.
  4. המשימות מופעלות לאחר מכן באמצעות סדרה של קריאות API. זה נעשה באמצעות לְהָגִיב הנחיה, שמפרקת את המשימה לסדרה של שלבים המעובדים ברצף:
    1. עבור בדיקות מדדי מכשירים, אנו משתמשים ב- check-device-metrics קבוצת פעולה, הכוללת קריאת API לפונקציות Lambda שאחר כך מבצעות שאילתות אמזונה אתנה עבור הנתונים המבוקשים.
    2. עבור פעולות ישירות של המכשיר כמו התחלה, עצירה או אתחול מחדש, אנו משתמשים ב- action-on-device קבוצת פעולה, המפעילה פונקציית Lambda. פונקציה זו מתחילה תהליך השולח פקודות למכשיר ה-IoT. עבור פוסט זה, פונקציית Lambda שולחת התראות באמצעות שירות דוא"ל פשוט של אמזון (Amazon SES).
    3. אנו משתמשים בבסיסי ידע עבור Amazon Bedrock כדי להביא מנתונים היסטוריים המאוחסנים כהטמעות ב- שירות חיפוש פתוח של אמזון מסד נתונים וקטורי.
  5. לאחר השלמת המשימות, התגובה הסופית נוצרת על ידי Amazon Bedrock FM ומועברת בחזרה למשתמש.
  6. Agents for Amazon Bedrock מאחסן מידע באופן אוטומטי תוך שימוש בהפעלה מצבית כדי לשמור על אותה שיחה. המצב נמחק לאחר שחולף פסק זמן סרק שניתן להגדרה.

סקירה טכנית

התרשים הבא ממחיש את הארכיטקטורה לפריסת עוזר AI עם Agents for Amazon Bedrock.

דיאגרמת ארכיטקטורה לפריסת עוזר AI עם Agents for Amazon Bedrock.

הוא מורכב ממרכיבי המפתח הבאים:

  • ממשק שיחה - ממשק השיחה משתמש ב-Streamlit, ספריית Python בקוד פתוח המפשטת את היצירה של אפליקציות אינטרנט מותאמות אישית ומושכות חזותית עבור למידת מכונה (ML) ומדעי נתונים. זה מתארח ב שירות מיכלים אלסטי של אמזון (Amazon ECS) עם AWS פרגייט, והגישה אליו מתבצעת באמצעות מאזן עומס יישומים. אתה יכול להשתמש ב-Fargate עם Amazon ECS כדי לרוץ מכולות ללא צורך בניהול שרתים, אשכולות או מכונות וירטואליות.
  • סוכנים עבור Amazon Bedrock - סוכנים עבור Amazon Bedrock משלימים את שאילתות המשתמש באמצעות סדרה של שלבי חשיבה ופעולות מתאימות המבוססות על הצג הנחיה:
    • בסיסי ידע עבור Amazon Bedrock – בסיסי ידע עבור Amazon Bedrock מספק מנוהל באופן מלא סְמַרטוּט לספק לעוזר ה-AI גישה לנתונים שלך. במקרה השימוש שלנו, העלינו מפרטי מכשיר ל- שירות אחסון פשוט של אמזון דלי (Amazon S3). הוא משמש כמקור הנתונים למאגר הידע.
    • קבוצות פעולה - אלו הן סכימות API מוגדרות המפעילות פונקציות ספציפיות של Lambda כדי ליצור אינטראקציה עם התקני IoT ושירותי AWS אחרים.
    • Anthropic Claude v2.1 על Amazon Bedrock – מודל זה מפרש שאילתות משתמשים ומתזמר את זרימת המשימות.
    • Embeddings של אמזון טיטאן - מודל זה משמש כמודל להטמעת טקסט, ההופך טקסט בשפה טבעית - ממילים בודדות למסמכים מורכבים - לוקטורים מספריים. זה מאפשר יכולות חיפוש וקטוריות, המאפשרות למערכת להתאים באופן סמנטי את שאילתות המשתמש עם ערכי מאגר הידע הרלוונטיים ביותר לחיפוש יעיל.

הפתרון משולב עם שירותי AWS כמו Lambda להפעלת קוד בתגובה לקריאות API, Athena לשאילתות של מערכי נתונים, OpenSearch Service לחיפוש בבסיסי ידע ואמזון S3 לאחסון. שירותים אלה פועלים יחד כדי לספק חוויה חלקה לניהול תפעול מכשירי IoT באמצעות פקודות שפה טבעית.

הטבות

פתרון זה מציע את היתרונות הבאים:

  • מורכבות היישום:
    • נדרשות פחות שורות קוד, מכיוון שסוכנים עבור Amazon Bedrock מרחיקים הרבה מהמורכבות הבסיסית, ומפחיתים את מאמצי הפיתוח
    • ניהול מסדי נתונים וקטוריים כמו OpenSearch Service הוא פשוט, מכיוון שבסיסי הידע עבור Amazon Bedrock מטפלים בוקטוריזציה ואחסון
    • האינטגרציה עם שירותי AWS שונים יעילה יותר באמצעות קבוצות פעולה מוגדרות מראש
  • ניסיון במפתחים:
    • קונסולת אמזון Bedrock מספקת ממשק ידידותי למשתמש לפיתוח מהיר, בדיקות וניתוח סיבות שורש (RCA), מה שמשפר את חוויית המפתח הכוללת
  • זריזות וגמישות:
    • סוכנים עבור Amazon Bedrock מאפשרים שדרוגים חלקים למכשירי FM חדשים יותר (כגון קלוד 3.0) כאשר הם הופכים לזמינים, כך שהפתרון שלך יישאר מעודכן עם ההתקדמות העדכנית ביותר
    • מכסות ומגבלות שירות מנוהלות על ידי AWS, מה שמפחית את התקורה של ניטור והגדלת תשתית
  • אבטחה:
    • Amazon Bedrock הוא שירות מנוהל במלואו, העומד בתקני האבטחה והתאימות המחמירים של AWS, מה שעשוי לפשט ביקורות אבטחה ארגוניות

למרות ש- Agents for Amazon Bedrock מציעה פתרון יעיל ומנוהל לבניית יישומי AI לשיחה, ארגונים מסוימים עשויים להעדיף גישת קוד פתוח. במקרים כאלה, אתה יכול להשתמש במסגרות כמו LangChain, עליהן נדון בסעיף הבא.

גישת ניתוב דינמי של LangChain

LangChain היא מסגרת קוד פתוח המפשטת את בניית הבינה המלאכותית של שיחה באמצעות שילוב של מודלים של שפה גדולה (LLMs) ויכולות ניתוב דינמי. עם LangChain Expression Language (LCEL), מפתחים יכולים להגדיר את ניתוב, המאפשר ליצור שרשראות לא דטרמיניסטיות שבהן הפלט של שלב קודם מגדיר את השלב הבא. ניתוב עוזר לספק מבנה ועקביות באינטראקציות עם LLMs.

עבור פוסט זה, אנו משתמשים באותה דוגמה כמו עוזר AI לניהול מכשירי IoT. עם זאת, ההבדל העיקרי הוא שאנו צריכים לטפל בהנחיות המערכת בנפרד ולהתייחס לכל שרשרת כאל ישות נפרדת. שרשרת הניתוב מחליטה את שרשרת היעד על סמך הקלט של המשתמש. ההחלטה מתקבלת בתמיכה של LLM על ידי העברת הנחיית המערכת, היסטוריית הצ'אט ושאלת המשתמש.

סקירת פתרונות

התרשים הבא ממחיש את זרימת העבודה של פתרון הניתוב הדינמי.

זרימת עבודה של פתרון ניתוב דינמי עם LangChain

זרימת העבודה מורכבת מהשלבים הבאים:

  1. המשתמש מציג שאלה לעוזר הבינה המלאכותית. לדוגמה, "מהם המדדים המקסימליים למכשיר 1009?"
  2. LLM מעריך כל שאלה יחד עם היסטוריית הצ'אט מאותה הפעלה כדי לקבוע את מהותה ולאיזה תחום נושא היא נכללת (כגון SQL, פעולה, חיפוש או SME). ה-LLM מסווג את הקלט ושרשרת הניתוב של LCEL לוקחת את הקלט הזה.
  3. שרשרת הנתב בוחרת את שרשרת היעד בהתבסס על הקלט, וה-LLM מסופק עם הנחיית המערכת הבאה:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

ה-LLM מעריך את שאלת המשתמש יחד עם היסטוריית הצ'אט כדי לקבוע את אופי השאילתה ולאיזה תחום נושא היא נופלת. לאחר מכן, ה-LLM מסווג את הקלט ומוציא תגובת JSON בפורמט הבא:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

שרשרת הנתב משתמשת בתגובת JSON זו כדי להפעיל את שרשרת היעד המתאימה. ישנן ארבע רשתות יעד ספציפיות לנושא, כל אחת עם הנחיית מערכת משלה:

  1. שאילתות הקשורות ל-SQL נשלחות לשרשרת היעד של SQL לצורך אינטראקציות במסד נתונים. אתה יכול להשתמש ב-LCEL כדי לבנות את שרשרת SQL.
  2. שאלות מכוונות פעולה מעוררות את שרשרת היעד המותאמת של Lambda להפעלת פעולות. עם LCEL, אתה יכול להגדיר משלך פונקציה מותאמת אישית; במקרה שלנו, זו פונקציה להפעיל פונקציית Lambda מוגדרת מראש כדי לשלוח דוא"ל עם מזהה מכשיר מנותח. קלט משתמש לדוגמה עשוי להיות "כיבוי מכשיר 1009".
  3. פניות ממוקדות חיפוש ממשיכות ל- סְמַרטוּט שרשרת יעד לאחזור מידע.
  4. שאלות הקשורות ל-SME מגיעות לרשת יעדי ה-SME/מומחים לקבלת תובנות מיוחדות.
  5. כל שרשרת יעד לוקחת את הקלט ומפעילה את הדגמים או הפונקציות הדרושים:
    1. שרשרת SQL משתמשת ב- Athena להפעלת שאילתות.
    2. רשת RAG משתמשת ב-OpenSearch Service לחיפוש סמנטי.
    3. רשת Lambda המותאמת אישית מפעילה פונקציות של Lambda לפעולות.
    4. רשת SME/expert מספקת תובנות באמצעות מודל Amazon Bedrock.
  6. התגובות מכל שרשרת יעד מנוסחות לתובנות קוהרנטיות על ידי ה-LLM. לאחר מכן, תובנות אלו מועברות למשתמש, ומשלימות את מחזור השאילתות.
  7. קלט המשתמש והתגובות מאוחסנים ב אמזון דינמו לספק הקשר ל-LLM עבור הפגישה הנוכחית ומאינטראקציות קודמות. משך המידע המתמשך ב-DynamoDB נשלט על ידי האפליקציה.

סקירה טכנית

התרשים הבא ממחיש את הארכיטקטורה של פתרון הניתוב הדינמי של LangChain.

דיאגרמת ארכיטקטורה של פתרון הניתוב הדינמי של LangChain

אפליקציית האינטרנט בנויה על Streamlit שמתארח ב- Amazon ECS עם Fargate, והגישה אליה מתבצעת באמצעות מאזן עומס יישומים. אנו משתמשים ב- Claude v2.1 של Anthropic ב- Amazon Bedrock בתור ה-LLM שלנו. אפליקציית האינטרנט מקיימת אינטראקציה עם המודל באמצעות ספריות LangChain. הוא גם מקיים אינטראקציה עם מגוון שירותי AWS אחרים, כגון OpenSearch Service, Athena ו-DynamoDB כדי למלא את צורכי משתמשי הקצה.

הטבות

פתרון זה מציע את היתרונות הבאים:

  • מורכבות היישום:
    • למרות שהיא דורשת יותר קוד ופיתוח מותאם אישית, LangChain מספקת גמישות ושליטה רבה יותר על היגיון הניתוב ואינטגרציה עם רכיבים שונים.
    • ניהול מסדי נתונים וקטוריים כמו OpenSearch Service דורש מאמצי הגדרה ותצורה נוספים. תהליך הווקטוריזציה מיושם בקוד.
    • שילוב עם שירותי AWS עשוי לכלול יותר קוד ותצורה מותאמים אישית.
  • ניסיון במפתחים:
    • הגישה מבוססת Python ותיעוד נרחב של LangChain יכולים להיות מושכים למפתחים שכבר מכירים את Python וכלי קוד פתוח.
    • פיתוח מהיר ואיתור באגים עשויים לדרוש יותר מאמץ ידני בהשוואה לשימוש בקונסולת Amazon Bedrock.
  • זריזות וגמישות:
    • LangChain תומך במגוון רחב של LLMs, המאפשר לך לעבור בין דגמים או ספקים שונים, מטפח גמישות.
    • אופי הקוד הפתוח של LangChain מאפשר שיפורים והתאמות אישיות מונעות על ידי קהילה.
  • אבטחה:
    • כמסגרת קוד פתוח, LangChain עשויה לדרוש בדיקות אבטחה קפדניות יותר ובדיקה בתוך ארגונים, מה שעלול להוסיף תקורה.

סיכום

עוזרי AI לשיחה הם כלים טרנספורמטיביים לייעול התפעול ולשיפור חוויות המשתמש. פוסט זה בחן שתי גישות עוצמתיות באמצעות שירותי AWS: הסוכנים המנוהלים עבור Amazon Bedrock והניתוב הדינמי LangChain הגמיש והפתוח. הבחירה בין גישות אלו תלויה בדרישות הארגון שלך, העדפות הפיתוח ורמת ההתאמה האישית הרצויה. ללא קשר לנתיב שנלקח, AWS מאפשרת לך ליצור עוזרי בינה מלאכותית חכמים שמחוללים מהפכה באינטראקציות העסקיות והלקוחות

מצא את קוד הפתרון ואת נכסי הפריסה שלנו מאגר GitHub, שבו אתה יכול לעקוב אחר השלבים המפורטים עבור כל גישת AI לשיחת.


על הכותבים

עמיר חקמה הוא אדריכל AWS Solutions שבסיסו בפנסילבניה. הוא משתף פעולה עם ספקי תוכנה עצמאיים (ISVs) באזור צפון מזרח, ומסייע להם בתכנון ובניית פלטפורמות מדרגיות ומודרניות בענן AWS. מומחה ב-AI/ML ובינה מלאכותית גנרטיבית, Ameer עוזר ללקוחות לנצל את הפוטנציאל של טכנולוגיות מתקדמות אלו. בשעות הפנאי הוא נהנה לרכוב על האופנוע שלו ולבלות זמן איכות עם משפחתו.

שרון לי הוא ארכיטקט פתרונות בינה מלאכותית/ML בשירותי האינטרנט של אמזון שבסיסה בבוסטון, עם תשוקה לעיצוב ובניית יישומי בינה מלאכותית גנרטיבית ב-AWS. היא משתפת פעולה עם לקוחות כדי למנף את שירותי AWS AI/ML לפתרונות חדשניים.

קאוסאר כמאל הוא ארכיטקט פתרונות בכיר בחברת Amazon Web Services עם למעלה מ-15 שנות ניסיון בתחום האוטומציה של תשתיות ואבטחה. הוא עוזר ללקוחות לעצב ולבנות פתרונות DevSecOps ו-AI/ML הניתנים להרחבה בענן.

דבר איתנו

שלום שם! איך אני יכול לעזור לך?