LangChain ve DSPy ile Deterministik Test Otomasyonunda Ajansal Yapay Zekanın Uygulanması
Giriş
Yazılım sistemlerinin artan karmaşıklığı, test otomasyonunu yazılım geliştirmenin önemli bir yönü haline getirmiştir. Geleneksel test otomasyon çerçeveleri, kırılgan ve bakımı zor olabilen kodlanmış yaklaşımlara dayanır. Son yıllarda Aracı Yapay Zeka ve Düzenleme Araçlarının ortaya çıkışı, karmaşık test senaryolarının otomatikleştirilmesine yönelik yeni olanakların önünü açtı. Bu makalede, LangChain ve DSPy kullanarak karmaşık test senaryolarını otomatikleştirmek için Aracı Yapay Zeka, Düzenleme Araçları ve Yazılım Mühendisliğinin kesişimini inceleyeceğiz.
Ajansal AI nedir?
Ajansal AI, bir kullanıcı veya sistem adına eylemde bulunmak üzere tasarlanmış bir tür yapay zekayı ifade eder. Ajansal yapay zeka sistemleri karar verme, deneyimlerden öğrenme ve yeni durumlara uyum sağlama yeteneğine sahiptir. Test otomasyonu bağlamında Agentic AI, kullanıcı etkileşimlerini simüle ederek, test verilerine dayalı kararlar alarak ve değişen test koşullarına uyum sağlayarak karmaşık test senaryolarını otomatikleştirmek için kullanılabilir.
LangChain nedir?
LangChain, geliştiricilerin Python, Rust ve Go gibi çeşitli programlama dillerini kullanarak karmaşık yapay zeka sistemleri oluşturmasına olanak tanıyan açık kaynaklı bir Düzenleme Aracıdır. LangChain, geliştiricilerin karmaşık yapay zeka sistemleri oluşturmak için doğal dil işleme (NLP) ve bilgisayar görüşü gibi farklı yapay zeka bileşenlerini entegre etmelerine olanak tanıyan esnek ve modüler bir mimari sağlar.
DSPy nedir?
DSPy, yapay zeka sistemlerini oluşturmak ve dağıtmak için bir dizi araç sağlayan bir Python kütüphanesidir. DSPy, LangChain ile sorunsuz çalışacak şekilde tasarlanmıştır ve veri işleme, makine öğrenimi ve derin öğrenme dahil olmak üzere bir dizi özellik sunar.
Deterministik Test Otomasyonunda Aracı Yapay Zekanın Uygulanması
Agentic AI'yi deterministik test otomasyonunda uygulamak için, kullanıcı etkileşimlerini simüle eden, test verilerine dayalı kararlar veren ve değişen test koşullarına uyum sağlayan bir test otomasyon çerçevesi oluşturmak için LangChain ve DSPy'yi kullanabiliriz.
Bir test senaryosunu otomatikleştirmek için LangChain ve DSPy'yi nasıl kullanabileceğimize dair basit bir örnek:
Langchain'i içe aktar
langchain.chains'ten LLMChain'i içe aktarın
langchain.llms'den DSPyLLM'yi içe aktarın
test_senaryosu = {
"user_input": "giriş",
"expected_output": "giriş başarılı"
}
# Agentic AI aracısını tanımlayın
aracı = LLMChain(
llm=DSPyLLM(),
input_type = "metin",
çıktı_tipi = "metin"
)
# Test otomasyon fonksiyonunu tanımlayın
def test_automation(test_scenario):
# Kullanıcı etkileşimini simüle edin
user_input = test_scenario["user_input"]
# Test verilerine göre karar verin
karar = aracı.run(user_input)
# Değişen test koşullarına uyum sağlayın
if karar == "giriş başarılı":
print("Test başarıyla tamamlandı")
başka:
print("Test başarısız oldu")
# Test otomasyonu fonksiyonunu çalıştırın
test_automation(test_scenario)
''''
Bu örnekte, kullanıcı etkileşimini simüle etmeyi, test verilerine dayanarak karar vermeyi ve değişen test koşullarına uyum sağlamayı içeren bir test senaryosu tanımlıyoruz. Daha sonra LangChain ve DSPy kullanarak bir Agentic AI aracısı tanımlıyoruz ve bunu test senaryosunu otomatikleştirmek için kullanıyoruz.
**En Çok Kullanılan 5-10 Komut/Parçacık**
LangChain ve DSPy için en çok kullanılan 5-10 komut/parçacık şunlardır:
1. `langchain.LLMCain(llm=DSPyLLM())`: LangChain ve DSPy kullanarak bir Aracı Yapay Zeka aracısı oluşturur.
2. `DSPyLLM()`: Bir DSPy LLM (Büyük Dil Modeli) örneğini başlatır.
3. `LLMCain(input_type = "text", Output_type = "text")`: Metin giriş ve çıkış türlerine sahip bir Aracı Yapay Zeka aracısı oluşturur.
4. `agent.run(user_input)`: Agentic AI aracısını kullanıcı girişi ile çalıştırır.
5. `test_scenario = {"user_input": "login", "expected_output": "giriş başarılı"}`: Kullanıcı girişi ve beklenen çıktıyla bir test senaryosu tanımlar.
6. `langchain.chains.LLMCain(llm=DSPyLLM())`: LangChain ve DSPy kullanarak bir Aracı Yapay Zeka aracısı oluşturur.
7. `DSPyLLM().predict(user_input)`: Kullanıcı girişiyle DSPy LLM'nin çıktısını tahmin eder.
8. `LLMCain(input_type = "text", Output_type = "text").run (user_input)`: Agentic AI aracısını metin girişi ve çıkış türleriyle çalıştırır.
9. `test_automation(test_scenario)`: Test otomasyonu işlevini bir test senaryosuyla çalıştırır.
10. `langchain.chains.LLMCain(llm=DSPyLLM()).run(user_input)`: Agentic AI aracısını kullanıcı girişi ile çalıştırır.
**Görselleştirme**
Agentic AI aracısının Chart.js kullanılarak görselleştirilmesi:
```json
{
"tip": "çubuk",
"veri": {
"etiketler": ["Kullanıcı Girişi", "Karar", "Uyarlama"],
"veri kümeleri": [
{
"label": "Ajantik Yapay Zeka Temsilcisi",
"veri": [10, 20, 30],
"backgroundColor": "rgba(255, 99, 132, 0,2)",
"borderColor": "rgba(255, 99, 132, 1)",
"kenar genişliği": 1
}
]
},
"seçenekler": {
"başlık": {
"görüntü": doğru,
"text": "Ajan Yapay Zeka Temsilcisi"
},
"ölçekler": {
"yAxes": [
{
"keneler": {
"beginAtZero": doğru
}
}
]
}
}
}
''''
Bu görselleştirme, Agentic AI aracısının kullanıcı etkileşimlerini simüle etme, test verilerine dayalı kararlar alma ve değişen test koşullarına uyum sağlama konusundaki performansını gösterir.
**Sonuç**
Bu makalede, LangChain ve DSPy kullanarak karmaşık test senaryolarını otomatikleştirmek için Aracı Yapay Zeka, Düzenleme Araçları ve Yazılım Mühendisliğinin kesişimini araştırdık. Deterministik test otomasyonunda basit bir Agentic AI örneğini uyguladık ve LangChain ve DSPy için çeşitli komutlar/parçacıklar sağladık. Ayrıca Agentic AI aracısının performansını Chart.js kullanarak görselleştirdik. Geliştiriciler, Aracı Yapay Zeka ve Düzenleme Araçlarından yararlanarak kullanıcı etkileşimlerini simüle eden, test verilerine dayalı kararlar veren ve değişen test koşullarına uyum sağlayan gelişmiş test otomasyon çerçeveleri oluşturabilir.