LangChain'de Katıştırmalar Nasıl Kullanılır?

Langchain De Katistirmalar Nasil Kullanilir



Gömmeler, metin dizesi ilişkisinin bir indeksidir ve kayan noktalı tam sayıların bir vektörü (listesi) ile ifade edilir. İki vektör arasındaki mesafe, ne kadar yakından bağlantılı olduklarının bir ölçüsü olarak hizmet eder; mesafe ne kadar küçükse, ilişki o kadar yakındır. LangChain Gömme sınıfının, OpenAI, HuggingFace ve diğerleri gibi katıştırma hizmetleri için bir arayüz görevi görmesi amaçlanır.

Temel sınıf tarafından embed_query() ve embed_documents() olmak üzere iki yöntem sağlanır. Bunlardan ilki tek bir belge üzerinde çalışırken diğeri birçok belge üzerinde işlem yapabilmektedir.

Bu makale, OpenAI metin gömmelerini kullanarak LangChain'e gömmenin pratik gösterimini içermektedir.







Örnek: OpenAI Metin Gömmeyi Kullanarak Tek Bir Giriş Metni Elde Etme

İlk çizim için, tek bir metin dizesi giriyoruz ve bunun için OpenAI metin yerleştirmesini alıyoruz. Program gerekli kütüphaneleri kurarak başlar.



Projemize kurmamız gereken ilk kütüphane LangChain'dir. Python standart kitaplığıyla birlikte gelmiyor, bu yüzden ayrı olarak yüklememiz gerekiyor. Langchain, PyPi'de mevcut olduğundan, terminalde pip komutunu kullanarak kolayca kurabiliriz. Böylece, LangChain kütüphanesini kurmak için aşağıdaki komutu çalıştırıyoruz:



$ pip kurulum langchain

Kütüphane, gereksinimler karşılanır karşılanmaz kurulur.





OpenAI modellerine erişebilmemiz için OpenAI kütüphanesinin de projemizde kurulu olması gerekiyor. Bu kütüphane, pip komutu yazılarak başlatılabilir:

$ pip yükleme açık

Şimdi, gerekli iki kitaplık da proje dosyamıza kurulur. Gerekli modülleri import etmemiz gerekiyor.



itibaren dil zinciri. yerleştirmeler . Açık içe aktarmak OpenAIEmbeddings

içe aktarmak Sen

Sen . yaklaşık olarak [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY'

OpenAI gömmelerini elde etmek için “langchain.embeddings.openai” paketinden OpenAIEmbeddings sınıfını içe aktarmamız gerekiyor. Ardından, API anahtarını ortam değişkeni olarak ayarlıyoruz. Farklı OpenAI modellerine erişmek için gizli API anahtarına ihtiyacımız var. Bu anahtar, OpenAI platformundan üretilebilir. Kaydolun ve profilinizin 'gizli anahtarı görüntüle' bölümünden bir gizli anahtar edinin. Bu anahtar, belirli bir müşteri için farklı projelerde kullanılabilir.

Ortam değişkenleri, API anahtarlarını işlevlere kodlamak yerine belirli bir ortam için depolamak için kullanılır. API anahtarını ortam değişkeni olarak ayarlamak için “os” modülünü içe aktarmamız gerekiyor. os.environ() yöntemi, API anahtarını ortam değişkeni olarak ayarlamak için kullanılır. Bir isim ve bir değer içerir. Belirlediğimiz isim “OPENAI_API_KEY” ve gizli anahtar “değer” olarak ayarlandı.

modeli = OpenAIEmbeddings ( )

giriş metni = 'Bu gösteri için.'

sonuç = modeli. embed_query ( giriş metni )

Yazdır ( sonuç )

Yazdır ( sadece ( sonuç ) )

OpenAI gömme sarmalayıcısı ile zaten arayüz oluşturduk. Daha sonra OpenAIEmbedding sınıfının yapıcısını çağırıyoruz. OpenAI, çeşitli gömme modelleri sunar, ancak bunlar için ödeme yapmanız gerekir. Burada, OpenAI'nin varsayılan gömme modeliyle, yani ücretsiz olan text-embedding-ada-002 ile gidiyoruz. Parametre olarak herhangi bir model adı vermediğinizde, varsayılan model kullanılır.

Ardından, gömülmesini elde etmemiz gereken metni belirtiriz. Metin “Bu gösteri amaçlıdır” şeklinde belirtilmiştir. ve onu input_text değişkeninde saklayın. Bundan sonra, sağlanan metni gömmek için embed_query() yöntemi, kullanılan model ve parametre olarak sağlanan gömmeyi almak için metin dizesine sahip olan input_text ile çağrılır. Alınan katıştırmalar sonuç nesnesine atanır.

Son olarak, sonucu görüntülemek için Python'un print() yöntemine sahibiz. Göstermek istediğimiz değeri saklayan nesneyi print() yöntemine geçirmemiz yeterlidir. Bu nedenle, bu işlevi iki kez çağırıyoruz; ilki kayan sayıların listesini görüntülemek için ve ikincisi onunla birlikte len() yöntemini kullanarak bu değerlerin uzunluğunu yazdırmak için.

Kayan değerlerin listesi, bu değerlerin uzunluğuyla birlikte aşağıdaki anlık görüntüde görülebilir:

Örnek: OpenAI Metin Gömmeyi Kullanarak Çoklu Giriş Metni/Belgesi Elde Etme

Tek bir giriş metni için gömme elde etmenin yanı sıra, onu birden çok giriş dizesi için de alabiliriz. Bunu bu resimde uyguluyoruz.

Kitaplıkları önceki resimde zaten kurduk. Buraya kurmamız gereken bir diğer kütüphane de Python'un tiktoken kütüphanesidir. Yüklemek için terminaldeki komutu yazın:

$ pip yükleme tiktoken

Tiktoken paketi, bir Byte Pair Encoding tokenizer'dır. OpenAI modelleri ile birlikte kullanılır ve metni belirteçlere ayırır. Bu, sağlanan dizilerin belirtilen OpenAI modeli için bazen biraz uzun olması nedeniyle kullanılır. Böylece, metni böler ve bunları belirteçlere kodlar. Şimdi ana proje üzerinde çalışalım.

itibaren dil zinciri. yerleştirmeler . Açık içe aktarmak OpenAIEmbeddings

modeli = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY'

diziler = ['
Bu dır-dir için gösteri. ', ' Bu sicim dır-dir Ayrıca için gösteri. ', ' Bu dır-dir başka bir demo sicim . ', ' Bu dır-dir son sicim . ']

sonuç = model.embed_documents(dizeler)

yazdır(sonuç)

yazdır(len(sonuç))

OpenAIEmbeddings sınıfı, “langchain.embeddings.openai” paketinden içe aktarılır. Önceki örnekte, API anahtarını ortam değişkeni olarak belirledik. Ancak bunun için, onu doğrudan yapıcıya iletiyoruz. Yani “os” modülünü buraya import etmemize gerek yok.

OpenAIEmbeddings olan OpenAI modelini çağırdıktan sonra ona gizli API anahtarını iletiyoruz. Bir sonraki satırda, metin dizileri belirtilir. Burada, nesne dizilerinde dört metin dizisini saklıyoruz. Bu dizeler, 'Bu gösteri içindir', 'Bu dize de gösteri içindir', 'Bu başka bir demo dizisidir' ve 'Bu, son dizedir.'

Her birini virgülle ayırarak birden çok dize belirtebilirsiniz. Önceki örnekte embed_text() yöntemi çağrıldı ancak yalnızca tek metin dizesi için çalıştığı için burada kullanamıyoruz. Birden çok dizeyi gömmek için sahip olduğumuz yöntem embed_document()'dir. Bu nedenle, onu belirtilen OpenAI modeli ve metin dizeleriyle bir argüman olarak adlandırıyoruz. Çıktı, sonuç nesnesinde tutulur. Son olarak, çıktıyı görüntülemek için, parametresi nesne sonucu olan Python print() yöntemi kullanılır. Ayrıca, bu kayan değerlerin uzunluğunu da görmek istiyoruz. Böylece, print() yöntemi içinde len() yöntemini çağırırız.

Alınan çıktı aşağıdaki görüntüde sağlanır:

Çözüm

Bu gönderi, LangChain'e yerleştirme kavramını tartıştı. Gömmenin ne olduğunu ve nasıl çalıştığını öğrendik. Metin dizilerini gömmenin pratik bir uygulaması burada gösterilmektedir. İki illüstrasyon gerçekleştirdik. İlk örnek, tek bir metin dizesinin gömülmesinin alınması üzerinde çalıştı ve ikinci örnek, OpenAI gömme modeli kullanılarak birden çok girdi dizesinin gömülmesinin nasıl elde edileceğini kavradı.