Xlera8

Amazon Bedrock ile gelişmiş yönlendirme teknikleriyle konuşmaya dayalı yapay zekayı geliştirin | Amazon Web Hizmetleri

Konuşmaya dayalı yapay zeka (AI) asistanları, sorguların en uygun AI işlevlerine akıllı şekilde yönlendirilmesi yoluyla hassas, gerçek zamanlı yanıtlar sağlayacak şekilde tasarlanmıştır. AWS üretken yapay zeka hizmetleriyle Amazon Ana Kayasıgeliştiriciler, kullanıcı isteklerini ustalıkla yöneten ve yanıtlayan sistemler oluşturabilir. Amazon Bedrock, tek bir API kullanarak AI21 Labs, Anthropic, Cohere, Meta, Stability AI ve Amazon gibi önde gelen AI şirketlerinin yüksek performanslı temel modelleri (FM'ler) seçimini ve geniş bir yelpazeyi sunan, tümüyle yönetilen bir hizmettir. güvenlik, gizlilik ve sorumlu yapay zeka ile üretken yapay zeka uygulamaları oluşturmak için ihtiyacınız olan yetenekler.

Bu gönderide yapay zeka asistanlarının geliştirilmesine yönelik iki temel yaklaşım değerlendiriliyor: Amazon Bedrock Temsilcilerive gibi açık kaynak teknolojilerini kullanmak Dil Zinciri. İhtiyaçlarınıza en uygun yolu seçebilmeniz için her birinin avantajlarını ve zorluklarını araştırıyoruz.

Yapay zeka asistanı nedir?

Yapay zeka asistanı, doğal dil sorgularını anlayan ve kullanıcı adına görevleri gerçekleştirmek veya bilgi almak için çeşitli araçlarla, veri kaynaklarıyla ve API'lerle etkileşime giren akıllı bir sistemdir. Etkili yapay zeka asistanları aşağıdaki temel yeteneklere sahiptir:

  • Doğal dil işleme (NLP) ve konuşma akışı
  • Konuşma bağlamının nüanslarına dayalı olarak ilgili bilgileri anlamak ve almak için bilgi tabanı entegrasyonu ve anlamsal aramalar
  • Veritabanı sorguları ve özel görevler gibi görevlerin yürütülmesi AWS Lambda fonksiyonlar
  • Özel konuşmaları ve kullanıcı isteklerini yönetme

Örnek olarak Nesnelerin İnterneti (IoT) cihaz yönetimini kullanarak yapay zeka asistanlarının faydalarını gösteriyoruz. Bu kullanım durumunda yapay zeka, verileri getiren veya görevleri otomatikleştiren komutlarla teknisyenlerin makineleri verimli bir şekilde yönetmesine yardımcı olarak üretimdeki operasyonları kolaylaştırabilir.

Amazon Bedrock Aracıları yaklaşımı

Amazon Bedrock Temsilcileri bir şirketin sistemleri ve veri kaynakları genelinde çok adımlı görevleri çalıştırabilen üretken yapay zeka uygulamaları oluşturmanıza olanak tanır. Aşağıdaki temel yetenekleri sunar:

  • Talimatlardan, API ayrıntılarından ve veri kaynağı bilgilerinden otomatik bilgi istemi oluşturma, haftalarca süren hızlı mühendislik çabasından tasarruf sağlar
  • Temsilcileri bir şirketin veri kaynaklarına güvenli bir şekilde bağlamak ve ilgili yanıtları sağlamak için Erişim Artırılmış Üretim (RAG)
  • İstekleri mantıksal dizilere bölerek ve gerekli API'leri çağırarak çok adımlı görevlerin düzenlenmesi ve çalıştırılması
  • Bir düşünce zinciri (CoT) izleme yoluyla aracının muhakemesinin görünürlüğü, sorun gidermeye ve model davranışının yönlendirilmesine olanak tanır
  • Aracılar üzerinde gelişmiş kontrol için otomatik olarak oluşturulan bilgi istemi şablonunu değiştirmeye yönelik bilgi istemi mühendisliği yetenekleri

Amazon Bedrock için Agent'ları kullanabilir ve Amazon Bedrock için Bilgi Tabanları Karmaşık yönlendirme kullanım senaryoları için yapay zeka asistanlarını oluşturmak ve dağıtmak. Altyapı yönetimini basitleştirerek, ölçeklenebilirliği artırarak, güvenliği artırarak ve farklılaşmamış ağır yükleri azaltarak geliştiriciler ve kuruluşlar için stratejik bir avantaj sağlarlar. Ayrıca yönlendirme mantığı, vektörleştirme ve bellek tamamen yönetildiğinden daha basit uygulama katmanı koduna da olanak tanırlar.

Çözüme genel bakış

Bu çözüm, Anthropic'in Claude v2.1'i Amazon Bedrock'ta kullanırken IoT cihaz yönetimi ve işlemleri için özel olarak tasarlanmış, konuşabilen bir yapay zeka asistanı sunar. Yapay zeka asistanının temel işlevleri, kapsamlı bir dizi talimat tarafından yönetilir. sistem istemiYeteneklerini ve uzmanlık alanlarını tanımlayan, Bu rehberlik, yapay zeka asistanının cihaz bilgilerinin yönetilmesinden operasyonel komutların çalıştırılmasına kadar çok çeşitli görevleri yerine getirebilmesini sağlar.

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

Sistem isteminde ayrıntılı olarak açıklandığı gibi bu yeteneklerle donatılmış yapay zeka asistanı, kullanıcı sorularını yanıtlamak için yapılandırılmış bir iş akışını takip eder. Aşağıdaki şekil, ilk kullanıcı etkileşiminden son yanıta kadar her adımı gösteren bu iş akışının görsel bir temsilini sağlar.

Bu iş akışının, ilk kullanıcı etkileşiminden son yanıta kadar her adımı gösteren görsel bir temsili.

İş akışı aşağıdaki adımlardan oluşur:

  1. Süreç, kullanıcının asistandan bir görevi gerçekleştirmesini talep etmesiyle başlar; örneğin, belirli bir IoT cihazı için maksimum veri noktasının sorulması device_xxx. Bu metin girişi yakalanır ve AI asistanına gönderilir.
  2. Yapay zeka asistanı kullanıcının metin girişini yorumlar. Bağlamı anlamak ve gerekli görevleri belirlemek için sağlanan konuşma geçmişini, eylem gruplarını ve bilgi tabanlarını kullanır.
  3. Kullanıcının amacı ayrıştırılıp anlaşıldıktan sonra yapay zeka asistanı görevleri tanımlar. Bu, asistan tarafından sistem istemine ve kullanıcının girişine göre yorumlanan talimatlara dayanmaktadır.
  4. Görevler daha sonra bir dizi API çağrısı aracılığıyla yürütülür. Bu kullanılarak yapılır Tepki Görevi sırayla işlenen bir dizi adıma ayıran istem:
    1. Cihaz metrik kontrolleri için şunu kullanırız: check-device-metrics Daha sonra sorgulayan Lambda işlevlerine bir API çağrısını içeren eylem grubu Amazon Atina istenen veriler için.
    2. Başlatma, durdurma veya yeniden başlatma gibi doğrudan cihaz eylemleri için action-on-device Lambda işlevini çağıran eylem grubu. Bu işlev, IoT cihazına komutlar gönderen bir işlemi başlatır. Bu gönderi için Lambda işlevi, kullanarak bildirimler gönderir. Amazon Basit E-posta Hizmeti (Amazon SES).
    3. Amazon Bedrock için Bilgi Tabanlarını, yerleşik olarak depolanan geçmiş verilerden almak için kullanırız. Amazon Açık Arama Hizmeti vektör veritabanı.
  5. Görevler tamamlandıktan sonra nihai yanıt Amazon Bedrock FM tarafından oluşturularak kullanıcıya geri iletilir.
  6. Agents for Amazon Bedrock, aynı konuşmayı sürdürmek için durum bilgisi olan bir oturum kullanarak bilgileri otomatik olarak depolar. Yapılandırılabilir boşta kalma zaman aşımı süresi dolduktan sonra durum silinir.

Teknik Genel Bakış

Aşağıdaki diyagramda Agents for Amazon Bedrock ile bir yapay zeka asistanının dağıtımına yönelik mimari gösterilmektedir.

Agents for Amazon Bedrock ile bir yapay zeka asistanını dağıtmaya yönelik mimari diyagramı.

Aşağıdaki temel bileşenlerden oluşur:

  • Konuşma arayüzü – Konuşma arayüzü, makine öğrenimi (ML) ve veri bilimi için özel, görsel olarak çekici web uygulamalarının oluşturulmasını kolaylaştıran açık kaynaklı bir Python kütüphanesi olan Streamlit'i kullanır. Barındırıldığı yer Amazon Elastik Konteyner Hizmeti (Amazon ECS) ile AWS Fargateve bir Application Load Balancer kullanılarak erişilir. Çalıştırmak için Fargate'i Amazon ECS ile kullanabilirsiniz kaplar sunucuları, kümeleri veya sanal makineleri yönetmeye gerek kalmadan.
  • Amazon Bedrock Temsilcileri – Agents for Amazon Bedrock, kullanıcı sorgularını bir dizi akıl yürütme adımı ve ilgili eylemler aracılığıyla tamamlar. ReAct istemi:
    • Amazon Bedrock için Bilgi Tabanları – Amazon Bedrock için Bilgi Tabanları tam olarak yönetilen sağlar RAG AI asistanına verilerinize erişim sağlamak için. Kullanım durumumuzda, cihaz özelliklerini bir dosyaya yükledik. Amazon Basit Depolama Hizmeti (Amazon S3) kovası. Bilgi tabanına veri kaynağı olarak hizmet eder.
    • Eylem grupları – Bunlar, IoT cihazları ve diğer AWS hizmetleriyle etkileşim kurmak için belirli Lambda işlevlerini çağıran tanımlanmış API şemalarıdır.
    • Amazon Bedrock'ta Antropik Claude v2.1 – Bu model kullanıcı sorgularını yorumlar ve görev akışını düzenler.
    • Amazon Titan Gömmeleri – Bu model, doğal dildeki metni (tek sözcüklerden karmaşık belgelere kadar) sayısal vektörlere dönüştüren bir metin yerleştirme modeli olarak hizmet eder. Bu, vektör arama yeteneklerini etkinleştirerek sistemin etkili arama için kullanıcı sorgularını en ilgili bilgi tabanı girişleriyle anlamsal olarak eşleştirmesine olanak tanır.

Çözüm, API çağrılarına yanıt olarak kod çalıştırmak için Lambda, veri kümelerini sorgulamak için Athena, bilgi tabanlarında arama yapmak için OpenSearch Hizmeti ve depolama için Amazon S3 gibi AWS hizmetleriyle entegredir. Bu hizmetler, doğal dil komutları aracılığıyla IoT cihaz işlemleri yönetimi için kusursuz bir deneyim sağlamak üzere birlikte çalışır.

Faydaları

Bu çözüm aşağıdaki avantajları sunar:

  • Uygulama karmaşıklığı:
    • Agents for Amazon Bedrock temeldeki karmaşıklığın çoğunu soyutlayarak geliştirme çabalarını azalttığı için daha az kod satırı gerekir
    • Amazon Bedrock için Bilgi Tabanları vektörleştirme ve depolama işlemlerini gerçekleştirdiğinden OpenSearch Hizmeti gibi vektör veritabanlarının yönetimi basitleştirilmiştir
    • Çeşitli AWS hizmetleriyle entegrasyon, önceden tanımlanmış eylem grupları aracılığıyla daha verimli hale getirildi
  • Geliştirici deneyimi:
    • Amazon Bedrock konsolu, hızlı geliştirme, test etme ve temel neden analizi (RCA) için kullanıcı dostu bir arayüz sunarak genel geliştirici deneyimini geliştirir
  • Çeviklik ve esneklik:
    • Agents for Amazon Bedrock, kullanıma sunulduğunda daha yeni FM'lere (Claude 3.0 gibi) sorunsuz yükseltme yapılmasına olanak tanır, böylece çözümünüz en son gelişmelerle güncel kalır
    • Hizmet kotaları ve sınırlamaları AWS tarafından yönetilerek altyapıyı izleme ve ölçeklendirme yükünü azaltır
  • Güvenlik:
    • Amazon Bedrock, AWS'nin katı güvenlik ve uyumluluk standartlarına uygun, kurumsal güvenlik incelemelerini potansiyel olarak basitleştiren, tümüyle yönetilen bir hizmettir

Agents for Amazon Bedrock, konuşmaya dayalı yapay zeka uygulamaları oluşturmak için kolaylaştırılmış ve yönetilen bir çözüm sunsa da bazı kuruluşlar açık kaynak yaklaşımını tercih edebilir. Bu gibi durumlarda bir sonraki bölümde ele alacağımız LangChain gibi çerçeveleri kullanabilirsiniz.

LangChain dinamik yönlendirme yaklaşımı

LangChain, büyük dil modellerinin (LLM'ler) ve dinamik yönlendirme özelliklerinin entegrasyonuna izin vererek konuşma yapay zekası oluşturmayı basitleştiren açık kaynaklı bir çerçevedir. LangChain İfade Dili (LCEL) ile geliştiriciler yönlendirmeBu, önceki adımın çıktısının bir sonraki adımı tanımladığı, deterministik olmayan zincirler oluşturmanıza olanak tanır. Yönlendirme, LLM'lerle etkileşimlerde yapı ve tutarlılık sağlamaya yardımcı olur.

Bu gönderi için IoT cihaz yönetimine yönelik yapay zeka asistanıyla aynı örneği kullanıyoruz. Ancak temel fark, sistem komutlarını ayrı ayrı ele almamız ve her zinciri ayrı bir varlık olarak ele almamız gerektiğidir. Yönlendirme zinciri, kullanıcının girişine göre hedef zincirine karar verir. Karar, LLM'nin desteğiyle, sistem istemi, sohbet geçmişi ve kullanıcının sorusu iletilerek verilir.

Çözüme genel bakış

Aşağıdaki diyagramda dinamik yönlendirme çözümü iş akışı gösterilmektedir.

LangChain ile dinamik yönlendirme çözümü iş akışı

İş akışı aşağıdaki adımlardan oluşur:

  1. Kullanıcı yapay zeka asistanına bir soru sorar. Örneğin, "Cihaz 1009 için maksimum ölçümler nelerdir?"
  2. Bir LLM, her soruyu aynı oturumdaki sohbet geçmişiyle birlikte değerlendirir ve sorunun niteliğini ve hangi konu alanına (SQL, eylem, arama veya KOBİ gibi) girdiğini belirler. LLM girişi sınıflandırır ve LCEL yönlendirme zinciri bu girişi alır.
  3. Yönlendirici zinciri, girdiye göre hedef zinciri seçer ve LLM'ye aşağıdaki sistem istemi sağlanır:
"""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, sorgunun doğasını ve hangi konu alanına girdiğini belirlemek için kullanıcının sorusunu sohbet geçmişiyle birlikte değerlendirir. LLM daha sonra girişi sınıflandırır ve aşağıdaki formatta bir JSON yanıtı çıkarır:

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

Yönlendirici zinciri, karşılık gelen hedef zincirini çağırmak için bu JSON yanıtını kullanır. Her biri kendi sistem istemine sahip, konuya özel dört hedef zinciri vardır:

  1. SQL ile ilgili sorgular, veritabanı etkileşimleri için SQL hedef zincirine gönderilir. Oluşturmak için LCEL'i kullanabilirsiniz. SQL zinciri.
  2. Eylem odaklı sorular, operasyonları yürütmek için özel Lambda hedef zincirini çağırır. LCEL ile kendinizinkini tanımlayabilirsiniz. özel işlev; bizim durumumuzda bu, ayrıştırılmış cihaz kimliğine sahip bir e-posta göndermek için önceden tanımlanmış bir Lambda işlevini çalıştıran bir işlevdir. Örnek kullanıcı girişi "Cihazı 1009 kapatın" olabilir.
  3. Arama odaklı sorular şuraya doğru ilerliyor: RAG Bilgi alımı için hedef zinciri.
  4. KOBİ ile ilgili sorular, özel bilgiler için KOBİ/uzman hedef zincirine gider.
  5. Her hedef zinciri girdiyi alır ve gerekli modelleri veya işlevleri çalıştırır:
    1. SQL zinciri, sorguları çalıştırmak için Athena'yı kullanır.
    2. RAG zinciri anlamsal arama için OpenSearch Hizmetini kullanır.
    3. Özel Lambda zinciri, eylemler için Lambda işlevlerini çalıştırır.
    4. KOBİ/uzman zinciri, Amazon Bedrock modelini kullanarak öngörüler sağlar.
  6. Her hedef zincirinden gelen yanıtlar LLM tarafından tutarlı içgörüler halinde formüle edilir. Bu bilgiler daha sonra kullanıcıya iletilerek sorgu döngüsü tamamlanır.
  7. Kullanıcı girişi ve yanıtları şu şekilde saklanır: Amazon DinamoDB Mevcut oturum için ve geçmiş etkileşimlerden LLM'ye bağlam sağlamak. DynamoDB'de kalıcı bilgilerin süresi uygulama tarafından kontrol edilir.

Teknik Genel Bakış

Aşağıdaki diyagram LangChain dinamik yönlendirme çözümünün mimarisini göstermektedir.

LangChain dinamik yönlendirme çözümünün mimari diyagramı

Web uygulaması, Fargate ile Amazon ECS'de barındırılan Streamlit üzerinde oluşturulmuştur ve bir Application Load Balancer kullanılarak erişilmektedir. LLM'miz olarak Amazon Bedrock'ta Anthropic'in Claude v2.1 sürümünü kullanıyoruz. Web uygulaması, LangChain kütüphanelerini kullanarak modelle etkileşime girer. Ayrıca son kullanıcıların ihtiyaçlarını karşılamak için OpenSearch Service, Athena ve DynamoDB gibi çeşitli diğer AWS hizmetleriyle de etkileşime girer.

Faydaları

Bu çözüm aşağıdaki avantajları sunar:

  • Uygulama karmaşıklığı:
    • Daha fazla kod ve özel geliştirme gerektirse de LangChain, yönlendirme mantığı ve çeşitli bileşenlerle entegrasyon üzerinde daha fazla esneklik ve kontrol sağlar.
    • OpenSearch Hizmeti gibi vektör veritabanlarını yönetmek, ek kurulum ve yapılandırma çalışmaları gerektirir. Vektörleştirme işlemi kodda uygulanır.
    • AWS hizmetleriyle entegrasyon daha fazla özel kod ve yapılandırma gerektirebilir.
  • Geliştirici deneyimi:
    • LangChain'in Python tabanlı yaklaşımı ve kapsamlı belgeleri, Python'a ve açık kaynak araçlarına zaten aşina olan geliştiriciler için cazip olabilir.
    • Hızlı geliştirme ve hata ayıklama, Amazon Bedrock konsolunu kullanmaya kıyasla daha fazla manuel çaba gerektirebilir.
  • Çeviklik ve esneklik:
    • LangChain geniş bir LLM yelpazesini destekleyerek farklı modeller veya sağlayıcılar arasında geçiş yapmanıza olanak tanıyarak esnekliği artırır.
    • LangChain'in açık kaynak yapısı, topluluk odaklı iyileştirmelere ve özelleştirmelere olanak tanır.
  • Güvenlik:
    • Açık kaynaklı bir çerçeve olarak LangChain, kuruluşlar içinde daha sıkı güvenlik incelemeleri ve incelemeler gerektirebilir ve bu da potansiyel olarak ek yük getirebilir.

Sonuç

Konuşmaya dayalı yapay zeka asistanları, operasyonları kolaylaştırmak ve kullanıcı deneyimlerini geliştirmek için dönüştürücü araçlardır. Bu gönderide AWS hizmetlerini kullanan iki güçlü yaklaşım incelendi: Amazon Bedrock için yönetilen Aracılar ve esnek, açık kaynaklı LangChain dinamik yönlendirme. Bu yaklaşımlar arasındaki seçim kuruluşunuzun gereksinimlerine, geliştirme tercihlerine ve istenen özelleştirme düzeyine bağlıdır. AWS, hangi yolu seçerseniz seçin, iş ve müşteri etkileşimlerinde devrim yaratan akıllı yapay zeka asistanları oluşturmanıza olanak sağlar.

Çözüm kodunu ve dağıtım varlıklarını burada bulabilirsiniz. GitHub deposu, her konuşmaya dayalı yapay zeka yaklaşımı için ayrıntılı adımları takip edebileceğiniz yer.


Yazarlar Hakkında

Emir Hakme Pensilvanya merkezli bir AWS Çözüm Mimarıdır. Kuzeydoğu bölgesindeki Bağımsız Yazılım Satıcıları (ISV'ler) ile iş birliği yaparak onlara AWS Bulut üzerinde ölçeklenebilir ve modern platformlar tasarlama ve oluşturma konusunda yardımcı oluyor. AI/ML ve üretken yapay zeka konusunda uzman olan Ameer, müşterilerin bu ileri teknolojilerin potansiyelini açığa çıkarmasına yardımcı oluyor. Boş zamanlarında motosiklete binmeyi ve ailesiyle kaliteli vakit geçirmeyi seviyor.

Şaron Li Boston merkezli Amazon Web Services'te AI/ML Çözüm Mimarıdır ve AWS'de Üretken Yapay Zeka uygulamaları tasarlama ve oluşturma tutkusuna sahiptir. Yenilikçi çözümler için AWS AI/ML hizmetlerinden yararlanmak amacıyla müşterilerle işbirliği yapıyor.

Kawsar Kamal Amazon Web Services'te altyapı otomasyonu ve güvenlik alanında 15 yılı aşkın deneyime sahip kıdemli bir çözüm mimarıdır. Müşterilerin Bulutta ölçeklenebilir DevSecOps ve AI/ML çözümleri tasarlamasına ve oluşturmasına yardımcı oluyor.

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?