LangChain'deki Aracılar Kullanılarak MRKL Sistemi Nasıl Çoğaltılır?

Langchain Deki Aracilar Kullanilarak Mrkl Sistemi Nasil Cogaltilir



Modüler Akıl Yürütme, Bilgi ve Dil (MRKL) sistemi, doğrulama nedenleri ile birlikte yanıtları çıkarabilen bir mimaridir. Dil Modellerini, Ayrık akıl yürütmeyi ve Dış bilgi kaynaklarını bütünleştirir. Dil modelleri, kullanıcı tarafından sorulan sorgulara göre metni insan dillerinde üretir. MRKL (telaffuz: mucize), cevabı doğru ve geçerli kılmak için cevaplar üretirken akıl yürütmeyi de ekler.

Hızlı Taslak

Bu gönderi aşağıdakileri gösterecektir:







LangChain'deki Aracıları Kullanarak MRKL Sistemi Nasıl Çoğaltılır



Çözüm



LangChain'deki Aracılar Kullanılarak MRKL Sistemi Nasıl Çoğaltılır?

LangChain, kullanıcının dil modelleri veya sohbet robotları için birden fazla görevi gerçekleştirmek için kullanılabilecek aracılar oluşturmasına olanak tanır. Aracılar, çalışmalarını tüm adımlarla birlikte dil modeline bağlı bellekte saklar. Aracı, bu şablonları kullanarak MRKL gibi herhangi bir sistemin çalışmasını kopyalayarak optimize edilmiş sonuçları yeniden oluşturmaya gerek kalmadan elde edebilir.





LangChain'deki aracıları kullanarak MRKL sistemini çoğaltma sürecini öğrenmek için listelenen adımları uygulamanız yeterlidir:

Adım 1: Çerçeveleri Yükleme

Öncelikle LangChain deney modüllerini langchain-experimental komutuyla pip kullanarak kurun:



pip kurulumu langchain-deneysel

MRKL sisteminin dil modelini oluşturmak için OpenAI modülünü yükleyin:

pip kurulumu openai

2. Adım: OpenAI Ortamını Ayarlama

Kullanıcıdan OpenAI ve SerpAPi hesapları için API anahtarlarını sağlamasını isteyen işletim sistemine erişmek için os ve getpass kitaplıklarını içe aktarın:

içe aktarmak Sen

içe aktarmak geçiş izni

Sen . yaklaşık olarak [ 'OPENAI_API_KEY' ] = geçiş izni . geçiş izni ( 'OpenAI API Anahtarı:' )

Sen . yaklaşık olarak [ 'SERPAPI_API_KEY' ] = geçiş izni . geçiş izni ( 'Serpapi API Anahtarı:' )

3. Adım: Kitaplıkları İçe Aktarma

Dil modelini, araçları ve aracıları oluşturmak için gerekli kitaplıkları içe aktarmak üzere LangChain'deki bağımlılıkları kullanın:

itibaren Langchain. zincirler içe aktarmak LLMMathChain

itibaren Langchain. lms içe aktarmak OpenAI

itibaren Langchain. araçlar içe aktarmak SerpAPIWrapper

itibaren Langchain. araçlar içe aktarmak SQLVeritabanı

itibaren langchain_experimental. SQL içe aktarmak SQLVeritabanıZinciri

itibaren Langchain. ajanlar içe aktarmak başlat_agent , Alet

itibaren Langchain. ajanlar içe aktarmak Temsilci Türü

Adım 4: Veritabanı Oluşturma

MRKL, verilerden bilgi çıkarmak için harici bilgi kaynaklarını kullanır. Bu gönderi, bunu kullanarak indirilebilecek SQLite'ı kullanıyor rehber veritabanını oluşturmak için. Aşağıdaki komut, SQLite'ın kurulu sürümünü görüntüleyerek indirme işlemini onaylar:

sqlite3

Komut istemini kullanarak veritabanını oluşturmak için bir dizinin içinde aşağıdaki komutları kullanın:

CD Masaüstü

CD mydb

sqlite3 Chinook. db

İndir Veri tabanı dosyasını oluşturmak için aşağıdaki komutu kullanmak üzere dizinde saklayın. .db ' dosya:

. Okumak Chinook_Sqlite. SQL

Sanatçı Sınırından * SEÇİN 10 ;

Adım 5: Veritabanını Yükleme

Veritabanı başarıyla oluşturulduktan sonra dosyayı Google ortak çalışmasına yükleyin:

itibaren google. ve diğerleri içe aktarmak Dosyalar

yüklendi = Dosyalar. yüklemek ( )

Kullanıcı, not defterine yüklenen dosyanın yolunu açılır menüden kopyalamak için erişebilir:

Adım 6: Araçları Yapılandırma

Veritabanını oluşturduktan sonra aracılar için dil modelini, araçları ve zincirleri yapılandırın:

aramak = SerpAPIWrapper ( )
llm = OpenAI ( sıcaklık = 0 )
llm_math_chain = LLMMathChain ( llm = llm , ayrıntılı = Doğru )
db = SQLVeritabanı. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLVeritabanı Zinciri. from_llm ( llm , db , ayrıntılı = Doğru )
aletler = [
Alet (
isim = 'Aramak' ,
işlev = aramak. koşmak ,
Tanım = 'Son olaylarla ilgili yanıtlar almak için hedeflenen istemleri sorun'
) ,
Alet (
isim = 'Hesap makinesi' ,
işlev = llm_math_chain. koşmak ,
Tanım = 'matematik problemlerini yanıtlamak/çözmek için kullanışlıdır'
) ,
Alet (
isim = 'FooBar DB' ,
işlev = db_chain. koşmak ,
Tanım = 'Veritabanındaki sorguları yanıtlamak için kullanışlıdır ve giriş sorusu tam içeriğe sahip olmalıdır'
)
]
  • Tanımla llm kullanarak değişken OpenAI() Dil modelini elde etme yöntemi.
  • aramak çağıran araçtır SerpAPIWrapper() ortamına erişme yöntemi.
  • LLMMathChain() Matematik problemlerine ilişkin cevapların alınmasında yöntem kullanılmaktadır.
  • Tanımla db içindeki dosyanın yolunu içeren değişken SQLVeritabanı() yöntem.
  • SQLDatabaseChain() Veritabanından bilgi almak için yöntem kullanılabilir.
  • Gibi araçları tanımlayın aramak , hesap makinesi , Ve FooBar DB farklı kaynaklardan veri çıkaracak aracıyı oluşturmak için:

Adım 7: Aracıyı Oluşturma ve Test Etme

Kullanıcı tarafından sorulan soruların yanıtlarını almak için araçları, llm'yi ve aracıyı kullanarak MRKL sistemini başlatın:

mrkl = başlat_agent ( aletler , llm , ajan = AgentType. ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru )

MRKL sistemini, argümanı soru olan run() yöntemini kullanarak çalıştırın:

mrkl. koşmak ( 'Leo DiCaprio'nun ve kız arkadaşının şu anki yaşları nedir, aralarındaki yaş farkını da söylüyor' )

Çıktı

Aracı, sistem tarafından nihai cevabı çıkarmak için kullanılan yolun tamamını içeren nihai cevabı üretmiştir:

Adım 8: MRKL Sistemini çoğaltın

Şimdi sadece şunu kullanın: mrkl Veritabanları gibi farklı kaynaklardan yanıt almak için run() yöntemini kullanarak anahtar kelimeyi kullanın:

mrkl. koşmak ( 'Yakın zamanda 'The Storm Before the Calm' adlı albümü çıkan sanatçının tam adı nedir ve FooBar veritabanında var mı ve hangi albümleri veritabanında var' )

Aracı, yanıtı veritabanından almak için soruyu otomatik olarak SQL sorgusuna dönüştürdü. Aracı, yanıtı almak için doğru kaynağı arar ve ardından bilgiyi çıkarmak için sorguyu birleştirir:

Adım 9: ChatModel'i Kullanma

Kullanıcı, ChatOpenAI() yöntemini kullanarak dil modelini bir ChatModel haline getirebilir ve MRKL sistemini onunla kullanabilir:

itibaren Langchain. chat_models içe aktarmak SohbetAçıkAI

aramak = SerpAPIWrapper ( )
llm = SohbetAçıkAI ( sıcaklık = 0 )
llm1 = OpenAI ( sıcaklık = 0 )
llm_math_chain = LLMMathChain ( llm = llm1 , ayrıntılı = Doğru )
db = SQLVeritabanı. from_uri ( 'sqlite:///../../../../../content/Chinook.db' )
db_chain = SQLVeritabanı Zinciri. from_llm ( llm1 , db , ayrıntılı = Doğru )
aletler = [
Alet (
isim = 'Aramak' ,
işlev = aramak. koşmak ,
Tanım = 'Son olaylarla ilgili yanıtlar almak için hedeflenen istemleri sorun'
) ,
Alet (
isim = 'Hesap makinesi' ,
işlev = llm_math_chain. koşmak ,
Tanım = 'matematik problemlerini yanıtlamak/çözmek için kullanışlıdır'
) ,
Alet (
isim = 'FooBar DB' ,
işlev = db_chain. koşmak ,
Tanım = 'Veritabanındaki sorguları yanıtlamak için kullanışlıdır ve giriş sorusu tam içeriğe sahip olmalıdır'
)
]

Adım 10: MRKL Aracısını test edin

Bundan sonra, aracıyı oluşturun ve onu,initialize_agent() yöntemini kullanarak mrkl değişkeninde başlatın. Çıktıda tüm süreci elde etmek için araçlar, llm, aracı ve ayrıntılı gibi bileşenleri entegre etmek için yöntemin parametresini ekleyin:

mrkl = başlat_agent ( aletler , llm , ajan = AgentType. CHAT_ZERO_SHOT_REACT_DESCRIPTION , ayrıntılı = Doğru )

Aşağıdaki ekran görüntüsünde gösterildiği gibi mrkl sistemini çalıştırarak soruyu yürütün:

mrkl. koşmak ( 'Leo DiCaprio'nun kız arkadaşı kim? Şu anki yaşları kaç?' )

Çıktı

Aşağıdaki kod parçası, temsilci tarafından alınan son yanıtı görüntüler:

Adım 11: MRKL Sistemini çoğaltın

Veritabanından bilgi çıkarmak için doğal dilde soruyla birlikte run() yöntemini çağırarak MRKL sistemini kullanın:

mrkl. koşmak ( 'Yakın zamanda 'The Storm Before the Calm' adlı albümü çıkan sanatçının tam adı nedir ve FooBar veritabanında var mı ve hangi albümleri veritabanında var' )

Çıktı

Temsilci, veritabanından çıkarılan son yanıtı aşağıdaki ekran görüntüsünde gösterildiği gibi görüntüledi:

LangChain'deki aracıları kullanarak MRKL sistemini kopyalama süreciyle ilgili her şey bu:

Çözüm

LangChain'deki aracıları kullanarak MRKL sistemini çoğaltmak için kitaplıkları içe aktarmaya yönelik bağımlılıkları almak üzere modülleri yükleyin. Kütüphanelerin, araçları kullanarak birden fazla kaynaktan yanıt alabilmek için dil modelini veya sohbet modelini oluşturması gerekir. Aracılar, internet, veritabanları vb. gibi farklı kaynaklardan çıktı çıkarmak için araçları kullanacak şekilde yapılandırılmıştır. Bu kılavuz, LangChain'deki aracıları kullanarak MRKL sistemini çoğaltma sürecini ayrıntılı olarak açıklamıştır.