Platonova podatkovna inteligenca.
Navpično iskanje in Ai.

Izboljšajte pogovorno umetno inteligenco z naprednimi tehnikami usmerjanja z Amazon Bedrock | Spletne storitve Amazon

Datum:

Pogovorni pomočniki umetne inteligence (AI) so zasnovani tako, da zagotavljajo natančne odzive v realnem času prek inteligentnega usmerjanja poizvedb do najprimernejših funkcij AI. Z generativnimi storitvami umetne inteligence AWS, kot je Amazon Bedrock, lahko razvijalci ustvarijo sisteme, ki strokovno upravljajo in se odzivajo na zahteve uporabnikov. Amazon Bedrock je popolnoma upravljana storitev, ki ponuja izbiro visoko zmogljivih temeljnih modelov (FM) vodilnih podjetij z umetno inteligenco, kot so AI21 Labs, Anthropic, Cohere, Meta, Stability AI in Amazon, z uporabo enega samega API-ja, skupaj s širokim naborom zmožnosti, ki jih potrebujete za izdelavo generativnih aplikacij AI z varnostjo, zasebnostjo in odgovornim AI.

Ta objava ocenjuje dva primarna pristopa za razvoj pomočnikov AI: uporabo upravljanih storitev, kot je npr Zastopniki za Amazon Bedrock, in uporabo odprtokodnih tehnologij, kot je LangChain. Raziščemo prednosti in izzive vsakega, tako da lahko izberete najprimernejšo pot za svoje potrebe.

Kaj je pomočnik AI?

Pomočnik AI je inteligenten sistem, ki razume poizvedbe v naravnem jeziku in sodeluje z različnimi orodji, viri podatkov in API-ji za izvajanje nalog ali pridobivanje informacij v imenu uporabnika. Učinkoviti pomočniki AI imajo naslednje ključne zmogljivosti:

  • Procesiranje naravnega jezika (NLP) in pogovorni tok
  • Integracija baze znanja in semantična iskanja za razumevanje in pridobivanje ustreznih informacij na podlagi nians konteksta pogovora
  • Izvajanje nalog, kot so poizvedbe po bazi podatkov in po meri AWS Lambda funkcije
  • Obravnava specializiranih pogovorov in zahtev uporabnikov

Na primeru upravljanja naprav interneta stvari (IoT) prikazujemo prednosti pomočnikov AI. V tem primeru uporabe lahko umetna inteligenca pomaga tehnikom pri učinkovitem upravljanju strojev z ukazi, ki pridobivajo podatke ali avtomatizirajo naloge, s čimer racionalizirajo operacije v proizvodnji.

Pristop agentov za Amazon Bedrock

Zastopniki za Amazon Bedrock vam omogoča izdelavo generativnih aplikacij AI, ki lahko izvajajo naloge v več korakih v sistemih in virih podatkov podjetja. Ponuja naslednje ključne zmogljivosti:

  • Samodejno hitro ustvarjanje iz navodil, podrobnosti API-ja in informacij o izvoru podatkov, kar prihrani tedne hitrega inženiringa
  • Retrieval Augmented Generation (RAG) za varno povezovanje agentov z viri podatkov podjetja in zagotavljanje ustreznih odgovorov
  • Orkestracija in izvajanje večstopenjskih opravil z razčlenitvijo zahtev v logična zaporedja in klicanjem potrebnih API-jev
  • Vpogled v sklepanje agenta prek sledi verige misli (CoT), kar omogoča odpravljanje težav in usmerjanje vedenja modela
  • Inženirske zmožnosti hitrega poziva za spreminjanje samodejno ustvarjene predloge poziva za izboljšan nadzor nad agenti

Uporabite lahko agente za Amazon Bedrock in Baze znanja za Amazon Bedrock za izdelavo in uvajanje pomočnikov AI za zapletene primere uporabe usmerjanja. Zagotavljajo strateško prednost za razvijalce in organizacije s poenostavitvijo upravljanja infrastrukture, izboljšanjem razširljivosti, izboljšanjem varnosti in zmanjšanjem nediferenciranega dvigovanja težkega. Omogočajo tudi enostavnejšo kodo aplikacijskega sloja, ker se logika usmerjanja, vektorizacija in pomnilnik v celoti upravljajo.

Pregled rešitev

Ta rešitev uvaja pogovornega pomočnika AI, prilagojenega za upravljanje in delovanje naprav interneta stvari pri uporabi Anthropic's Claude v2.1 na Amazon Bedrock. Osnovno funkcionalnost pomočnika AI ureja obsežen nabor navodil, znan kot a sistemski poziv, ki opisuje njegove sposobnosti in strokovna področja. Ta navodila zagotavljajo, da lahko pomočnik za umetno inteligenco opravi širok nabor nalog, od upravljanja informacij o napravi do izvajanja operativnih ukazov.

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

Opremljen s temi zmogljivostmi, kot je podrobno opisano v sistemskem pozivu, pomočnik AI sledi strukturiranemu delovnemu toku za odgovarjanje na vprašanja uporabnikov. Naslednja slika ponuja vizualno predstavitev tega poteka dela, ki ponazarja vsak korak od začetne interakcije uporabnika do končnega odgovora.

vizualna predstavitev tega poteka dela, ki ponazarja vsak korak od začetne uporabniške interakcije do končnega odziva.

Potek dela je sestavljen iz naslednjih korakov:

  1. Postopek se začne, ko uporabnik od pomočnika zahteva izvedbo naloge; na primer zahtevati največje število podatkovnih točk za določeno napravo IoT device_xxx. Ta vnos besedila se zajame in pošlje pomočniku AI.
  2. Pomočnik AI razlaga uporabnikov vnos besedila. Za razumevanje konteksta in določanje potrebnih nalog uporablja ponujeno zgodovino pogovorov, akcijske skupine in baze znanja.
  3. Ko je uporabnikov namen razčlenjen in razumljen, pomočnik AI definira naloge. To temelji na navodilih, ki jih razlaga pomočnik glede na sistemski poziv in uporabnikov vnos.
  4. Naloge se nato izvajajo skozi vrsto klicev API-ja. To se naredi z uporabo React poziv, ki nalogo razdeli na niz korakov, ki se obdelajo zaporedno:
    1. Za preverjanje meritev naprave uporabljamo check-device-metrics akcijska skupina, ki vključuje klic API-ja funkcijam Lambda, ki nato poizvedujejo Amazonska Atena za zahtevane podatke.
    2. Za neposredna dejanja naprave, kot so zagon, zaustavitev ali ponovni zagon, uporabljamo action-on-device akcijska skupina, ki prikliče funkcijo Lambda. Ta funkcija sproži proces, ki pošilja ukaze napravi IoT. Za to objavo funkcija Lambda pošilja obvestila z uporabo Enostavna e -poštna storitev Amazon (Amazon SES).
    3. Uporabljamo baze znanja za Amazon Bedrock za pridobivanje iz zgodovinskih podatkov, shranjenih kot vdelave v Storitev Amazon OpenSearch vektorska baza podatkov.
  5. Ko so naloge končane, Amazon Bedrock FM ustvari končni odgovor in ga pošlje nazaj uporabniku.
  6. Agenti za Amazon Bedrock samodejno shranjujejo informacije z uporabo seje s stanjem za vzdrževanje istega pogovora. Stanje se izbriše po preteku nastavljive časovne omejitve nedejavnosti.

Tehnični pregled

Naslednji diagram ponazarja arhitekturo za uvedbo pomočnika AI z agenti za Amazon Bedrock.

Diagram arhitekture za uvedbo pomočnika AI z agenti za Amazon Bedrock.

Sestavljen je iz naslednjih ključnih komponent:

  • Pogovorni vmesnik – Pogovorni vmesnik uporablja Streamlit, odprtokodno knjižnico Python, ki poenostavlja ustvarjanje prilagojenih, vizualno privlačnih spletnih aplikacij za strojno učenje (ML) in podatkovno znanost. Gostuje na Amazonska storitev za kontejnerje z elastiko (Amazon ECS) z AWS Fargate, do njega pa se dostopa z izravnalnikom obremenitve aplikacij. Za zagon lahko uporabite Fargate z Amazon ECS posode ne da bi morali upravljati strežnike, gruče ali virtualne stroje.
  • Zastopniki za Amazon Bedrock – Agenti za Amazon Bedrock dokonča uporabniške poizvedbe z nizom korakov razmišljanja in ustreznih dejanj, ki temeljijo na ReAct poziv:
    • Baze znanja za Amazon Bedrock – Baze znanja za Amazon Bedrock zagotavljajo popolno upravljanje krpa da pomočniku AI omogoči dostop do vaših podatkov. V našem primeru uporabe smo naložili specifikacije naprave v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro. Služi kot vir podatkov za bazo znanja.
    • Akcijske skupine – To so definirane sheme API-jev, ki kličejo specifične funkcije Lambda za interakcijo z napravami IoT in drugimi storitvami AWS.
    • Anthropic Claude v2.1 na Amazon Bedrock – Ta model interpretira uporabniške poizvedbe in orkestrira tok nalog.
    • Amazon Titan Embeddings – Ta model služi kot model vdelave besedila, ki pretvori besedilo v naravnem jeziku – od posameznih besed do kompleksnih dokumentov – v numerične vektorje. To omogoča zmožnosti vektorskega iskanja, kar omogoča sistemu, da semantično poveže uporabniške poizvedbe z najbolj ustreznimi vnosi v bazo znanja za učinkovito iskanje.

Rešitev je integrirana s storitvami AWS, kot je Lambda za izvajanje kode kot odgovor na klice API-ja, Athena za poizvedovanje po nizih podatkov, OpenSearch Service za iskanje po bazah znanja in Amazon S3 za shranjevanje. Te storitve delujejo skupaj in zagotavljajo brezhibno izkušnjo za upravljanje operacij naprav IoT prek ukazov v naravnem jeziku.

prednosti

Ta rešitev nudi naslednje prednosti:

  • Kompleksnost izvedbe:
    • Potrebnih je manj vrstic kode, ker Agenti za Amazon Bedrock abstrahirajo velik del osnovne zapletenosti in zmanjšajo trud pri razvoju
    • Upravljanje vektorskih zbirk podatkov, kot je OpenSearch Service, je poenostavljeno, saj baze znanja za Amazon Bedrock obravnavajo vektorizacijo in shranjevanje
    • Integracija z različnimi storitvami AWS je bolj poenostavljena prek vnaprej določenih akcijskih skupin
  • Izkušnje razvijalca:
    • Konzola Amazon Bedrock ponuja uporabniku prijazen vmesnik za hiter razvoj, testiranje in analizo vzroka (RCA), kar izboljša celotno izkušnjo razvijalcev
  • Gibljivost in fleksibilnost:
    • Agenti za Amazon Bedrock omogočajo brezhibne nadgradnje na novejše FM (kot je Claude 3.0), ko bodo na voljo, tako da vaša rešitev ostane na tekočem z najnovejšimi dosežki.
    • Storitvene kvote in omejitve upravlja AWS, kar zmanjšuje režijske stroške infrastrukture za spremljanje in skaliranje
  • Varnost:
    • Amazon Bedrock je popolnoma upravljana storitev, ki upošteva stroge standarde varnosti in skladnosti AWS, kar lahko poenostavi organizacijske varnostne preglede

Čeprav Agenti za Amazon Bedrock ponujajo poenostavljeno in upravljano rešitev za izdelavo pogovornih aplikacij AI, bodo nekatere organizacije morda raje uporabile odprtokodni pristop. V takšnih primerih lahko uporabite ogrodja, kot je LangChain, o katerem razpravljamo v naslednjem razdelku.

Pristop dinamičnega usmerjanja LangChain

LangChain je odprtokodno ogrodje, ki poenostavlja gradnjo pogovorne umetne inteligence, tako da omogoča integracijo velikih jezikovnih modelov (LLM) in zmožnosti dinamičnega usmerjanja. Z jezikom izražanja LangChain (LCEL) lahko razvijalci definirajo usmerjanje, ki vam omogoča ustvarjanje nedeterminističnih verig, kjer rezultat prejšnjega koraka definira naslednji korak. Usmerjanje pomaga zagotoviti strukturo in doslednost v interakcijah z LLM.

Za to objavo uporabljamo isti primer kot pomočnik AI za upravljanje naprav IoT. Vendar je glavna razlika ta, da moramo sistemske pozive obravnavati ločeno in vsako verigo obravnavati kot ločeno entiteto. Usmerjevalna veriga določi ciljno verigo na podlagi uporabnikovega vnosa. Odločitev je sprejeta s podporo LLM s posredovanjem sistemskega poziva, zgodovine klepetov in vprašanja uporabnika.

Pregled rešitev

Naslednji diagram prikazuje potek dela rešitve dinamičnega usmerjanja.

Potek dela rešitve dinamičnega usmerjanja z LangChain

Potek dela je sestavljen iz naslednjih korakov:

  1. Uporabnik pomočniku AI postavi vprašanje. Na primer, "Kakšne so največje meritve za napravo 1009?"
  2. LLM oceni vsako vprašanje skupaj z zgodovino klepeta iz iste seje, da ugotovi njegovo naravo in pod katero področje spada (na primer SQL, dejanje, iskanje ali MSP). LLM razvrsti vhod in usmerjevalna veriga LCEL prevzame ta vnos.
  3. Veriga usmerjevalnika izbere ciljno verigo na podlagi vnosa, LLM pa prejme naslednji sistemski poziv:
"""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 ovrednoti uporabnikovo vprašanje skupaj z zgodovino klepetov, da ugotovi naravo poizvedbe in pod katero področje spada. LLM nato razvrsti vhod in izda odgovor JSON v naslednji obliki:

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

Veriga usmerjevalnika uporablja ta odziv JSON za priklic ustrezne ciljne verige. Obstajajo štiri predmetno specifične ciljne verige, vsaka s svojim sistemskim pozivom:

  1. Poizvedbe, povezane s SQL, so poslane v ciljno verigo SQL za interakcije z bazo podatkov. Za izdelavo lahko uporabite LCEL Veriga SQL.
  2. K dejanjem usmerjena vprašanja prikličejo ciljno verigo Lambda po meri za izvajanje operacij. Z LCEL lahko določite svoje funkcija po meri; v našem primeru je to funkcija za zagon vnaprej določene funkcije Lambda za pošiljanje e-pošte z razčlenjenim ID-jem naprave. Primer uporabniškega vnosa je lahko »Izklopi napravo 1009«.
  3. Poizvedbe, osredotočene na iskanje, se nadaljujejo do krpa ciljna veriga za iskanje informacij.
  4. Vprašanja, povezana z malimi in srednje velikimi podjetji, se za posebne vpoglede obrnite na ciljno verigo malih in srednje velikih podjetij/strokovnjakov.
  5. Vsaka ciljna veriga sprejme vhodne podatke in zažene potrebne modele ali funkcije:
    1. Veriga SQL uporablja Atheno za izvajanje poizvedb.
    2. Veriga RAG uporablja storitev OpenSearch za semantično iskanje.
    3. Veriga Lambda po meri izvaja funkcije Lambda za dejanja.
    4. Veriga MSP/strokovnjakov zagotavlja vpoglede z uporabo modela Amazon Bedrock.
  6. LLM oblikuje odzive vsake ciljne verige v koherentne vpoglede. Ti vpogledi so nato dostavljeni uporabniku, s čimer se zaključi cikel poizvedbe.
  7. Uporabniški vnos in odgovori so shranjeni v Amazon DynamoDB zagotoviti kontekst za LLM za trenutno sejo in iz preteklih interakcij. Trajanje trajnih informacij v DynamoDB nadzira aplikacija.

Tehnični pregled

Naslednji diagram ponazarja arhitekturo rešitve za dinamično usmerjanje LangChain.

Arhitekturni diagram rešitve za dinamično usmerjanje LangChain

Spletna aplikacija je zgrajena na Streamlitu, ki gostuje na Amazon ECS s Fargate, do nje pa se dostopa s pomočjo Application Load Balancer. Kot LLM uporabljamo Anthropic's Claude v2.1 na Amazon Bedrock. Spletna aplikacija komunicira z modelom s pomočjo knjižnic LangChain. Prav tako sodeluje z različnimi drugimi storitvami AWS, kot so OpenSearch Service, Athena in DynamoDB, da izpolni potrebe končnih uporabnikov.

prednosti

Ta rešitev nudi naslednje prednosti:

  • Kompleksnost izvedbe:
    • Čeprav zahteva več kode in razvoj po meri, LangChain zagotavlja večjo prilagodljivost in nadzor nad logiko usmerjanja ter integracijo z različnimi komponentami.
    • Upravljanje vektorskih zbirk podatkov, kot je OpenSearch Service, zahteva dodatno nastavitev in konfiguracijo. Postopek vektorizacije je implementiran v kodi.
    • Integracija s storitvami AWS lahko vključuje več kode in konfiguracije po meri.
  • Izkušnje razvijalca:
    • LangChainov pristop, ki temelji na Pythonu, in obsežna dokumentacija sta lahko privlačna za razvijalce, ki že poznajo Python in odprtokodna orodja.
    • Hiter razvoj in odpravljanje napak lahko zahtevata več ročnega truda v primerjavi z uporabo konzole Amazon Bedrock.
  • Gibljivost in fleksibilnost:
    • LangChain podpira široko paleto LLM-jev, kar vam omogoča preklapljanje med različnimi modeli ali ponudniki, kar spodbuja prilagodljivost.
    • Odprtokodna narava LangChaina omogoča izboljšave in prilagoditve, ki jih vodi skupnost.
  • Varnost:
    • Kot odprtokodno ogrodje lahko LangChain zahteva strožje varnostne preglede in preverjanje znotraj organizacij, kar lahko povzroči dodatne stroške.

zaključek

Pogovorni pomočniki AI so transformativna orodja za racionalizacijo operacij in izboljšanje uporabniške izkušnje. Ta objava je raziskala dva močna pristopa z uporabo storitev AWS: upravljane agente za Amazon Bedrock in prilagodljivo odprtokodno dinamično usmerjanje LangChain. Izbira med temi pristopi je odvisna od zahtev vaše organizacije, razvojnih preferenc in želene ravni prilagajanja. Ne glede na izbrano pot vam AWS omogoča ustvarjanje inteligentnih pomočnikov AI, ki revolucionirajo poslovanje in interakcije s strankami

Poiščite kodo rešitve in sredstva za uvajanje v našem GitHub repozitorij, kjer lahko sledite podrobnim korakom za vsak pogovorni pristop AI.


O avtorjih

Ameer Hakme je arhitekt rešitev AWS s sedežem v Pensilvaniji. Sodeluje z neodvisnimi ponudniki programske opreme (ISV) v severovzhodni regiji in jim pomaga pri oblikovanju in izgradnji razširljivih in sodobnih platform v oblaku AWS. Ameer, strokovnjak za AI/ML in generativno umetno inteligenco, strankam pomaga sprostiti potencial teh najsodobnejših tehnologij. V prostem času uživa v vožnji z motorjem in preživlja kakovosten čas s svojo družino.

Sharon Li je arhitekt rešitev AI/ML pri Amazon Web Services s sedežem v Bostonu, s strastjo do oblikovanja in gradnje generativnih aplikacij AI na AWS. Sodeluje s strankami pri izkoriščanju storitev AWS AI/ML za inovativne rešitve.

Kawsar Kamal je višji arhitekt rešitev pri Amazon Web Services z več kot 15-letnimi izkušnjami na področju avtomatizacije infrastrukture in varnosti. Strankam pomaga oblikovati in zgraditi razširljive rešitve DevSecOps in AI/ML v oblaku.

spot_img

Najnovejša inteligenca

spot_img

Klepetajte z nami

Zdravo! Kako vam lahko pomagam?