LangChain'deki OpenAI Functions Agent'a Bellek Nasıl Eklenir?

Langchain Deki Openai Functions Agent A Bellek Nasil Eklenir



LangChain, Büyük Dil Modellerini veya LLM'leri oluşturmaya yönelik bağımlılıkları içeren çerçevedir. Ayrıca sorgunun kullanıcıdan alınmasından yanıtın alınmasına kadar tüm ara adımları gerçekleştirecek aracıların oluşturulmasına yönelik araçlar da sağlar. OpenAI, internetten okunabilir ve yapılandırılmış çıktılar sağlayan bir ortamdır. “google-arama-sonuçları” modül.

Hızlı Taslak

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

LangChain'deki OpenAI Functions Agent'a Bellek Nasıl Eklenir?

OpenAI, 2015 yılında kurulmuş ve başlangıçta kar amacı gütmeyen bir kuruluş olan bir Yapay Zeka (AI) kuruluşudur. Yapay zekalı Doğal Dil İşleme (NLP), sohbet robotları ve dil modelleriyle hızla çoğalırken, Microsoft 2020'den bu yana büyük miktarda yatırım yapıyor.







OpenAI aracıları oluşturmak, geliştiricilerin internetten daha okunabilir ve daha isabetli sonuçlar almasını sağlar. Temsilcilere hafıza eklemek, sohbetin içeriğini daha iyi anlamalarını ve önceki konuşmaları da hafızalarında saklamalarını sağlar. LangChain'deki OpenAI işlev aracısına bellek ekleme sürecini öğrenmek için aşağıdaki adımları uygulamanız yeterlidir:



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

Öncelikle LangChain bağımlılıklarını aşağıdaki adresten yükleyin: “langchain-deneysel” aşağıdaki kodu kullanarak çerçeve:



pip kurulumu langchain - deneysel





Yükle “google-arama-sonuçları” Arama sonuçlarını Google sunucusundan almak için modül:

pip google'ı yükle - aramak - sonuçlar



Ayrıca LangChain'de dil modellerini oluşturmak için kullanılabilecek OpenAI modülünü de yükleyin:

pip kurulumu openai

2. Adım: Ortamları Ayarlama

Modülleri aldıktan sonra, API anahtarlarını kullanarak ortamları ayarlayın. OpenAI Ve SerpAPi hesaplar:

içe aktarmak Sen
içe aktarmak geçiş izni

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

Hem ortama erişim için API anahtarlarını girmek üzere yukarıdaki kodu yürütün ve onaylamak için enter tuşuna basın:

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

Artık kurulum tamamlandığına göre, belleği ve aracıları oluşturmak için gerekli kitaplıkları içe aktarmak üzere LangChain'den yüklenen bağımlılıkları kullanın:

langchain'den. zincirler içe aktarmak LLMMathChain
langchain'den. lms içe aktarmak OpenAI
İnternet üzerinden Google'da arama yapmak için #get kütüphanesi
langchain'den. araçlar içe aktarmak SerpAPIWrapper
langchain'den. araçlar içe aktarmak SQLVeritabanı
langchain_experimental'den. SQL içe aktarmak SQLVeritabanıZinciri
#araç oluşturmak için kitaplık edinin için aracıyı başlatma
langchain'den. ajanlar içe aktarmak Temsilci Türü , Alet , başlat_agent
langchain'den. chat_models içe aktarmak SohbetAçıkAI

Adım 4: Veritabanı Oluşturma

Bu kılavuza devam etmek için veritabanını oluşturmamız ve buradan yanıtları çıkarmak üzere aracıya bağlanmamız gerekiyor. Veritabanını oluşturmak için bunu kullanarak SQLite'ı indirmeniz gerekir. rehber ve aşağıdaki komutu kullanarak kurulumu onaylayın:

sqlite3

Yukarıdaki komutu çalıştırarak Windows Terminali SQLite'ın yüklü sürümünü görüntüler (3.43.2):

Bundan sonra, bilgisayarınızda veritabanının oluşturulacağı ve saklanacağı dizine gitmeniz yeterlidir:

CD Masaüstü
cd mydb
sqlite3 Chinook. db

Kullanıcı veritabanının içeriğini buradan indirebilir. bağlantı dizinde ve veritabanını oluşturmak için aşağıdaki komutu yürütün:

. Okumak Chinook_Sqlite. SQL
SEÇME * FROM Artist LIMIT 10 ;

Veritabanı başarıyla oluşturuldu ve kullanıcı farklı sorgular kullanarak veri arayabilir:

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

Veritabanı başarıyla oluşturulduktan sonra, “.db” Aşağıdaki kodu kullanarak Google İşbirliği'ne dosya gönderin:

Google'dan. ve diğerleri içe aktarmak Dosyalar
yüklendi = Dosyalar. yüklemek ( )

simgesine tıklayarak yerel sistemden dosyayı seçin. “Dosyaları Seç” Yukarıdaki kodu çalıştırdıktan sonra düğmesine basın:

Dosya yüklendikten sonra, bir sonraki adımda kullanılacak dosyanın yolunu kopyalamanız yeterlidir:

Adım 6: Dil Modelini Yapılandırma

Aşağıdaki kodu kullanarak dil modelini, zincirleri, araçları ve zincirleri oluşturun:

llm = SohbetAçıkAI ( sıcaklık = 0 , modeli = 'gpt-3.5-turbo-0613' )
aramak = SerpAPIWrapper ( )
llm_math_chain = LLMMathChain. from_llm ( 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 soruların yanıtlarını almak için hedeflenen soruları 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 = 'FooBar ile ilgili soruları yanıtlamak için kullanışlıdır ve girdi, tam bağlamı içeren bir soru biçiminde olmalıdır' ,
) ,
]
  • llm değişkeni, model adıyla birlikte ChatOpenAI() yöntemini kullanan dil modelinin yapılandırmalarını içerir.
  • Araştırma değişkeni, aracıya yönelik araçları oluşturmak için SerpAPIWrapper() yöntemini içerir.
  • İnşa et llm_math_chain LLMMathChain() yöntemini kullanarak Matematik alanına ilişkin yanıtları almak için.
  • Db değişkeni, veritabanı içeriğini içeren dosyanın yolunu içerir. Kullanıcının yalnızca son kısmı değiştirmesi gerekir. “içerik/Chinook.db” yolu koruyan “sqlite:///../../../../../” aynısı.
  • kullanarak veritabanındaki sorguları yanıtlamak için başka bir zincir oluşturun. db_chain değişken.
  • Gibi araçları yapılandırın aramak , hesap makinesi , Ve FooBar-DB sırasıyla yanıtı aramak, matematik sorularını yanıtlamak ve veritabanından sorgular için:

Adım 7: Bellek Ekleme

OpenAI işlevlerini yapılandırdıktan sonra belleği oluşturup aracıya eklemeniz yeterlidir:

langchain'den. istemler içe aktarmak MesajlarYer tutucu
langchain'den. hafıza içe aktarmak Konuşma Tampon Belleği

ajan_kwargs = {
'extra_prompt_messages' : [ MesajlarYer tutucu ( değişken ismi = 'hafıza' ) ] ,
}
hafıza = Konuşma Tampon Belleği ( hafıza_anahtarı = 'hafıza' , return_messages = Doğru )

Adım 8: Aracıyı Başlatma

Oluşturulacak ve başlatılacak son bileşen, aşağıdaki gibi tüm bileşenleri içeren aracıdır: llm , alet , OPENAI_FUNCTIONS ve bu süreçte kullanılacak diğerleri:

ajan = başlat_agent (
aletler ,
llm ,
ajan = AgentType. OPENAI_FUNCTIONS ,
ayrıntılı = Doğru ,
ajan_kwargs = ajan_kwargs ,
hafıza = hafıza ,
)

Adım 9: Aracıyı Test Etme

Son olarak, '' seçeneğini kullanarak sohbeti başlatarak temsilciyi test edin. MERHABA ' İleti:

ajan. koşmak ( 'MERHABA' )

Aracıyı onunla çalıştırarak belleğe bazı bilgiler ekleyin:

ajan. koşmak ( 'benim adım John snow' )

Şimdi önceki sohbetle ilgili soruyu sorarak hafızayı test edin:

ajan. koşmak ( 'benim adım ne' )

Aracı, bellekten alınan adla yanıt verdi, böylece bellek aracıyla başarılı bir şekilde çalışıyor:

Şimdilik bu kadar.

Çözüm

Belleği LangChain'deki OpenAI işlev aracısına eklemek için, kitaplıkları içe aktarmaya yönelik bağımlılıkları almak üzere modülleri yükleyin. Bundan sonra, veritabanını oluşturun ve modelle birlikte kullanılabilmesi için Python not defterine yükleyin. Modeli, araçları, zincirleri ve veritabanını aracıya eklemeden ve başlatmadan önce yapılandırın. Belleği test etmeden önce ConversationalBufferMemory() işlevini kullanarak belleği oluşturun ve test etmeden önce aracıya ekleyin. Bu kılavuz, LangChain'deki OpenAI işlev aracısına nasıl bellek ekleneceğini ayrıntılı olarak açıklamaktadır.