Generativ dataintelligens

Forbedre samtale-AI med avancerede routingteknikker med Amazon Bedrock | Amazon Web Services

Dato:

Conversational Artificial Intelligence (AI)-assistenter er udviklet til at give præcise svar i realtid gennem intelligent routing af forespørgsler til de bedst egnede AI-funktioner. Med AWS generative AI-tjenester som Amazonas grundfjeld, kan udviklere skabe systemer, der ekspertstyrer og reagerer på brugeranmodninger. Amazon Bedrock er en fuldt administreret tjeneste, der tilbyder et udvalg af højtydende fundamentmodeller (FM'er) fra førende AI-virksomheder som AI21 Labs, Anthropic, Cohere, Meta, Stability AI og Amazon ved hjælp af en enkelt API, sammen med et bredt sæt af funktioner, du har brug for for at bygge generative AI-applikationer med sikkerhed, privatliv og ansvarlig AI.

Dette indlæg vurderer to primære tilgange til udvikling af AI-assistenter: Brug af administrerede tjenester som f.eks Agenter for Amazon Bedrock, og anvender open source-teknologier som Langkæde. Vi udforsker fordelene og udfordringerne ved hver enkelt, så du kan vælge den bedst egnede vej til dine behov.

Hvad er en AI-assistent?

En AI-assistent er et intelligent system, der forstår naturlige sprogforespørgsler og interagerer med forskellige værktøjer, datakilder og API'er for at udføre opgaver eller hente information på vegne af brugeren. Effektive AI-assistenter har følgende nøglefunktioner:

  • Naturlig sprogbehandling (NLP) og samtaleflow
  • Videnbase-integration og semantiske søgninger for at forstå og hente relevant information baseret på nuancerne i samtalekontekst
  • Kørende opgaver, såsom databaseforespørgsler og brugerdefinerede AWS Lambda funktioner
  • Håndtering af specialiserede samtaler og brugerønsker

Vi demonstrerer fordelene ved AI-assistenter, der bruger Internet of Things (IoT) enhedsadministration som eksempel. I dette tilfælde kan AI hjælpe teknikere med at administrere maskineri effektivt med kommandoer, der henter data eller automatiserer opgaver, og strømliner operationer i produktionen.

Agenter for Amazon Bedrock tilgang

Agenter for Amazon Bedrock giver dig mulighed for at bygge generative AI-applikationer, der kan køre flertrinsopgaver på tværs af en virksomheds systemer og datakilder. Det tilbyder følgende nøglefunktioner:

  • Automatisk prompt-oprettelse fra instruktioner, API-detaljer og datakildeoplysninger, hvilket sparer ugers hurtig ingeniørindsats
  • Retrieval Augmented Generation (RAG) for sikkert at forbinde agenter til en virksomheds datakilder og give relevante svar
  • Orkestrering og afvikling af flertrinsopgaver ved at opdele anmodninger i logiske sekvenser og kalde nødvendige API'er
  • Synlighed i agentens ræsonnement gennem en chain-of-thought (CoT) sporing, der tillader fejlfinding og styring af modeladfærd
  • Spørg tekniske evner til at ændre den automatisk genererede promptskabelon for forbedret kontrol over agenter

Du kan bruge Agents til Amazon Bedrock og Vidensbaser for Amazon Bedrock at bygge og implementere AI-assistenter til komplekse routingbrugssager. De giver en strategisk fordel for udviklere og organisationer ved at forenkle infrastrukturstyring, forbedre skalerbarheden, forbedre sikkerheden og reducere udifferentierede tunge løft. De giver også mulighed for enklere applikationslagskode, fordi routinglogikken, vektoriseringen og hukommelsen er fuldt styret.

Løsningsoversigt

Denne løsning introducerer en samtale-AI-assistent, der er skræddersyet til IoT-enhedsstyring og -operationer, når du bruger Anthropics Claude v2.1 på Amazon Bedrock. AI-assistentens kernefunktionalitet er styret af et omfattende sæt instruktioner, kendt som en systemprompt, som afgrænser dets evner og ekspertiseområder. Denne vejledning sikrer, at AI-assistenten kan håndtere en bred vifte af opgaver, fra administration af enhedsinformation til at køre operationelle kommandoer.

"""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."""

Udstyret med disse funktioner, som beskrevet i systemprompten, følger AI-assistenten en struktureret arbejdsgang for at løse brugerspørgsmål. Følgende figur giver en visuel repræsentation af denne arbejdsgang, der illustrerer hvert trin fra den første brugerinteraktion til det endelige svar.

en visuel repræsentation af denne arbejdsgang, der illustrerer hvert trin fra indledende brugerinteraktion til det endelige svar.

Arbejdsgangen er sammensat af følgende trin:

  1. Processen begynder, når en bruger anmoder assistenten om at udføre en opgave; for eksempel at bede om de maksimale datapunkter for en specifik IoT-enhed device_xxx. Denne tekstinput fanges og sendes til AI-assistenten.
  2. AI-assistenten fortolker brugerens tekstinput. Den bruger den medfølgende samtalehistorik, handlingsgrupper og vidensbaser til at forstå konteksten og bestemme de nødvendige opgaver.
  3. Når brugerens hensigt er analyseret og forstået, definerer AI-assistenten opgaver. Dette er baseret på instruktionerne, der fortolkes af assistenten i henhold til systemprompten og brugerens input.
  4. Opgaverne køres derefter gennem en række API-kald. Dette gøres vha Reagere prompt, som opdeler opgaven i en række trin, der behandles sekventielt:
    1. Til kontrol af enhedsmetrikker bruger vi check-device-metrics handlingsgruppe, som involverer et API-kald til Lambda-funktioner, der derefter forespørger Amazonas Athena for de ønskede data.
    2. Til direkte enhedshandlinger som start, stop eller genstart bruger vi action-on-device aktionsgruppe, som påberåber sig en lambdafunktion. Denne funktion starter en proces, der sender kommandoer til IoT-enheden. Til dette indlæg sender Lambda-funktionen meddelelser vha Amazon Simple Email Service (Amazon SES).
    3. Vi bruger Knowledge Bases for Amazon Bedrock til at hente fra historiske data, der er gemt som indlejringer i Amazon OpenSearch Service vektor database.
  5. Når opgaverne er afsluttet, genereres det endelige svar af Amazon Bedrock FM og sendes tilbage til brugeren.
  6. Agenter for Amazon Bedrock gemmer automatisk information ved hjælp af en stateful session for at opretholde den samme samtale. Tilstanden slettes efter en konfigurerbar inaktiv timeout er udløbet.

Teknisk oversigt

Følgende diagram illustrerer arkitekturen til at implementere en AI-assistent med Agents for Amazon Bedrock.

Arkitekturdiagram til at implementere en AI-assistent med Agents for Amazon Bedrock.

Den består af følgende nøglekomponenter:

  • Samtalegrænseflade – Samtalegrænsefladen bruger Streamlit, et open source Python-bibliotek, der forenkler oprettelsen af ​​tilpassede, visuelt tiltalende webapps til maskinlæring (ML) og datavidenskab. Det er hostet på Amazon Elastic Container Service (Amazon ECS) med AWS Fargate, og den tilgås ved hjælp af en Application Load Balancer. Du kan bruge Fargate med Amazon ECS til at køre beholdere uden at skulle administrere servere, klynger eller virtuelle maskiner.
  • Agenter for Amazon Bedrock – Agenter for Amazon Bedrock afslutter brugerforespørgslerne gennem en række ræsonnementtrin og tilsvarende handlinger baseret på React prompt:
    • Vidensbaser for Amazon Bedrock – Vidensbaser til Amazon Bedrock giver fuldt administreret KLUD at give AI-assistenten adgang til dine data. I vores anvendelsestilfælde uploadede vi enhedsspecifikationer til en Amazon Simple Storage Service (Amazon S3) spand. Det fungerer som datakilden til videnbasen.
    • Aktionsgrupper – Disse er definerede API-skemaer, der påkalder specifikke Lambda-funktioner for at interagere med IoT-enheder og andre AWS-tjenester.
    • Antropiske Claude v2.1 på Amazon Bedrock – Denne model fortolker brugerforespørgsler og orkestrerer strømmen af ​​opgaver.
    • Amazon Titan-indlejringer – Denne model fungerer som en tekstindlejringsmodel, der transformerer tekst i naturligt sprog – fra enkelte ord til komplekse dokumenter – til numeriske vektorer. Dette muliggør vektorsøgningsfunktioner, hvilket gør det muligt for systemet semantisk at matche brugerforespørgsler med de mest relevante vidensbaseindgange til effektiv søgning.

Løsningen er integreret med AWS-tjenester såsom Lambda til at køre kode som svar på API-kald, Athena til forespørgsel på datasæt, OpenSearch Service til søgning gennem vidensbaser og Amazon S3 til lagring. Disse tjenester arbejder sammen for at give en problemfri oplevelse for IoT-enhedsdriftsstyring gennem naturlige sprogkommandoer.

Fordele

Denne løsning giver følgende fordele:

  • Implementeringskompleksitet:
    • Der kræves færre linjer kode, fordi Agents for Amazon Bedrock abstraherer meget af den underliggende kompleksitet, hvilket reducerer udviklingsindsatsen
    • Håndtering af vektordatabaser som OpenSearch Service er forenklet, fordi Knowledge Bases for Amazon Bedrock håndterer vektorisering og lagring
    • Integration med forskellige AWS-tjenester er mere strømlinet gennem foruddefinerede handlingsgrupper
  • Udviklererfaring:
    • Amazon Bedrock-konsollen giver en brugervenlig grænseflade til hurtig udvikling, test og rodårsagsanalyse (RCA), hvilket forbedrer den overordnede udvikleroplevelse
  • Agilitet og fleksibilitet:
    • Agenter for Amazon Bedrock giver mulighed for problemfri opgraderinger til nyere FM'er (såsom Claude 3.0), når de bliver tilgængelige, så din løsning forbliver opdateret med de seneste fremskridt
    • Servicekvoter og begrænsninger administreres af AWS, hvilket reducerer omkostningerne ved overvågning og skalering af infrastruktur
  • Sikkerhed:
    • Amazon Bedrock er en fuldt administreret tjeneste, der overholder AWS's strenge sikkerheds- og overholdelsesstandarder, hvilket potentielt forenkler organisatoriske sikkerhedsgennemgange

Selvom Agents for Amazon Bedrock tilbyder en strømlinet og administreret løsning til at bygge samtale-AI-applikationer, foretrækker nogle organisationer måske en open source-tilgang. I sådanne tilfælde kan du bruge rammer som LangChain, som vi diskuterer i næste afsnit.

LangChain dynamisk routing tilgang

LangChain er en open source-ramme, der forenkler opbygning af konversations-AI ved at tillade integration af store sprogmodeller (LLM'er) og dynamiske routing-funktioner. Med LangChain Expression Language (LCEL) kan udviklere definere routing, som giver dig mulighed for at oprette ikke-deterministiske kæder, hvor outputtet fra et tidligere trin definerer det næste trin. Routing hjælper med at give struktur og konsistens i interaktioner med LLM'er.

Til dette indlæg bruger vi det samme eksempel som AI-assistenten til IoT-enhedshåndtering. Den største forskel er dog, at vi skal håndtere systemprompts separat og behandle hver kæde som en separat enhed. Rutekæden bestemmer destinationskæden baseret på brugerens input. Beslutningen træffes med støtte fra en LLM ved at sende systemprompten, chathistorikken og brugerens spørgsmål.

Løsningsoversigt

Følgende diagram illustrerer den dynamiske routingløsnings arbejdsgang.

Dynamisk routingløsning workflow med LangChain

Arbejdsgangen består af følgende trin:

  1. Brugeren præsenterer et spørgsmål til AI-assistenten. For eksempel "Hvad er de maksimale metrics for enhed 1009?"
  2. En LLM evaluerer hvert spørgsmål sammen med chathistorikken fra den samme session for at bestemme dets karakter og hvilket emne det falder ind under (såsom SQL, handling, søgning eller SME). LLM klassificerer inputtet, og LCEL-routingkæden tager det input.
  3. Routerkæden vælger destinationskæden baseret på inputtet, og LLM er forsynet med følgende systemprompt:
"""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'en evaluerer brugerens spørgsmål sammen med chathistorikken for at bestemme arten af ​​forespørgslen og hvilket emneområde den falder ind under. LLM klassificerer derefter inputtet og udsender et JSON-svar i følgende format:

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

Routerkæden bruger dette JSON-svar til at kalde den tilsvarende destinationskæde. Der er fire emnespecifikke destinationskæder, hver med sin egen systemprompt:

  1. SQL-relaterede forespørgsler sendes til SQL-destinationskæden for databaseinteraktioner. Du kan bruge LCEL til at bygge SQL kæde.
  2. Handlingsorienterede spørgsmål påberåber sig den tilpassede Lambda-destinationskæde til at køre operationer. Med LCEL kan du definere din egen brugerdefineret funktion; i vores tilfælde er det en funktion at køre en foruddefineret Lambda-funktion for at sende en e-mail med et parset enheds-id. Eksempel på brugerinput kan være "Sluk enhed 1009".
  3. Søgefokuserede forespørgsler fortsætter til KLUD destinationskæde til informationssøgning.
  4. SMV-relaterede spørgsmål går til SMV-/ekspertdestinationskæden for specialiseret indsigt.
  5. Hver destinationskæde tager inputtet og kører de nødvendige modeller eller funktioner:
    1. SQL-kæden bruger Athena til at køre forespørgsler.
    2. RAG-kæden bruger OpenSearch Service til semantisk søgning.
    3. Den tilpassede Lambda-kæde kører Lambda-funktioner til handlinger.
    4. SMV/ekspertkæden giver indsigt ved hjælp af Amazon Bedrock-modellen.
  6. Svar fra hver destinationskæde formuleres til sammenhængende indsigt af LLM. Disse indsigter leveres derefter til brugeren og fuldender forespørgselscyklussen.
  7. Brugerinput og -svar gemmes i Amazon DynamoDB at give kontekst til LLM for den aktuelle session og fra tidligere interaktioner. Varigheden af ​​vedvarende information i DynamoDB styres af applikationen.

Teknisk oversigt

Følgende diagram illustrerer arkitekturen af ​​LangChain dynamiske routing-løsning.

Arkitekturdiagram af LangChain dynamisk routing-løsning

Webapplikationen er bygget på Streamlit hostet på Amazon ECS med Fargate, og den tilgås ved hjælp af en Application Load Balancer. Vi bruger Anthropics Claude v2.1 på Amazon Bedrock som vores LLM. Webapplikationen interagerer med modellen ved hjælp af LangChain-biblioteker. Det interagerer også med en række andre AWS-tjenester, såsom OpenSearch Service, Athena og DynamoDB for at opfylde slutbrugernes behov.

Fordele

Denne løsning giver følgende fordele:

  • Implementeringskompleksitet:
    • Selvom det kræver mere kode og tilpasset udvikling, giver LangChain større fleksibilitet og kontrol over routinglogikken og integrationen med forskellige komponenter.
    • Håndtering af vektordatabaser som OpenSearch Service kræver yderligere opsætning og konfiguration. Vektoriseringsprocessen er implementeret i kode.
    • Integration med AWS-tjenester kan involvere mere tilpasset kode og konfiguration.
  • Udviklererfaring:
    • LangChains Python-baserede tilgang og omfattende dokumentation kan appellere til udviklere, der allerede er bekendt med Python og open source-værktøjer.
    • Hurtig udvikling og fejlretning kan kræve mere manuel indsats sammenlignet med at bruge Amazon Bedrock-konsollen.
  • Agilitet og fleksibilitet:
    • LangChain understøtter en bred vifte af LLM'er, så du kan skifte mellem forskellige modeller eller udbydere, hvilket fremmer fleksibilitet.
    • LangChains open source-karakter muliggør fællesskabsdrevne forbedringer og tilpasninger.
  • Sikkerhed:
    • Som en open source-ramme kan LangChain kræve mere stringente sikkerhedsgennemgange og kontrol inden for organisationer, hvilket potentielt kan tilføje overhead.

Konklusion

Conversational AI-assistenter er transformative værktøjer til at strømline driften og forbedre brugeroplevelsen. Dette indlæg udforskede to kraftfulde tilgange ved hjælp af AWS-tjenester: de administrerede agenter til Amazon Bedrock og den fleksible, open source LangChain dynamiske routing. Valget mellem disse tilgange afhænger af din organisations krav, udviklingspræferencer og det ønskede tilpasningsniveau. Uanset vejen, giver AWS dig mulighed for at skabe intelligente AI-assistenter, der revolutionerer forretnings- og kundeinteraktioner

Find løsningskoden og implementeringsaktiverne i vores GitHub repository, hvor du kan følge de detaljerede trin for hver samtale-AI-tilgang.


Om forfatterne

Ameer Hakme er en AWS Solutions Architect baseret i Pennsylvania. Han samarbejder med Independent Software Vendors (ISV'er) i den nordøstlige region og hjælper dem med at designe og bygge skalerbare og moderne platforme på AWS Cloud. En ekspert i AI/ML og generativ AI, Ameer hjælper kunder med at frigøre potentialet i disse banebrydende teknologier. I sin fritid nyder han at køre på sin motorcykel og tilbringe kvalitetstid med sin familie.

Sharon Lic er en AI/ML Solutions Architect hos Amazon Web Services baseret i Boston, med en passion for at designe og bygge Generative AI-applikationer på AWS. Hun samarbejder med kunder for at udnytte AWS AI/ML-tjenester til innovative løsninger.

Kawsar Kamal er en senior løsningsarkitekt hos Amazon Web Services med over 15 års erfaring inden for infrastrukturautomatisering og sikkerhedsområdet. Han hjælper kunder med at designe og bygge skalerbare DevSecOps og AI/ML-løsninger i skyen.

spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?