Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Semantik Çekirdek Aracısı Bellek işlevi deneyseldir, değiştirilebilir ve yalnızca geri bildirim ve değerlendirmeye göre sonlandırılır.
Bir temsilcinin önemli bilgileri hatırlaması genellikle önemlidir. Bu bilgiler, bir konuşma süresi boyunca veya birden çok konuşmaya yayılacak daha uzun bir süre boyunca saklanabilir. Bilgiler bir kullanıcıyla etkileşim kurarak öğrenilebilir ve bu kullanıcıya özgü olabilir.
Biz buna bilgi hatıraları diyoruz.
Belleklerin yakalanması ve saklanması için, bir AgentThread ile birlikte kullanılarak iş parçacığına eklenen her türlü iletiden bellek ayıklayabilen ve gerektiğinde bu bellekleri aracıya sağlayabilen bileşenleri destekliyoruz.
Mem0'ı aracı belleği için kullanma
Mem0 , LLM uygulamaları için kendi kendini geliştiren ve kişiselleştirilmiş yapay zeka deneyimlerini sağlayan bir bellek katmanıdır.
, Microsoft.SemanticKernel.Memory.Mem0Provider Mem0 hizmetiyle tümleştirildiğinde aracıların birden çok iş parçacığında kullanıcı tercihlerini ve bağlamını hatırlamasına olanak tanıyarak sorunsuz bir kullanıcı deneyimi sağlar.
Konuya eklenen her ileti, anıları çıkarmak için "Mem0" hizmetine gönderilir. Her aracı çağrısı için Mem0, sağlanan kullanıcı isteğiyle eşleşen bellekler için sorgulanır ve bu çağrının aracı bağlamı için tüm bellekler eklenir.
Mem0 bellek sağlayıcısı, kullanıcıyla ilgili bellekleri uzun süreli olarak birden çok iş parçacığında depolamak için bir kullanıcı kimliğiyle yapılandırılabilir. Ayrıca, yalnızca tek bir iş parçacığına bağlı olan kısa süreli hafızalara izin vermek için bu sistem iş parçacığı kimliğiyle veya aracı iş parçacığının kimliğini kullanacak şekilde yapılandırılabilir.
Bu bileşenin nasıl kullanılacağını gösteren bir örnek aşağıda verilmiştir.
// Create an HttpClient for the Mem0 service.
using var httpClient = new HttpClient()
{
BaseAddress = new Uri("https://api.mem0.ai")
};
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "<Your_Mem0_API_Key>");
// Create a Mem0 provider for the current user.
var mem0Provider = new Mem0Provider(httpClient, options: new()
{
UserId = "U1"
});
// Clear any previous memories (optional).
await mem0Provider.ClearStoredMemoriesAsync();
// Add the mem0 provider to the agent thread.
ChatHistoryAgentThread agentThread = new();
agentThread.AIContextProviders.Add(mem0Provider);
// Use the agent with mem0 memory.
ChatMessageContent response = await agent.InvokeAsync("Please retrieve my company report", agentThread).FirstAsync();
Console.WriteLine(response.Content);
Mem0Provider seçenekleri
, Mem0Provider davranışını özelleştirmek için çeşitli seçeneklerle yapılandırılabilir.
Seçenekler oluşturucuya Mem0ProviderOptions sınıfı Mem0Provider kullanılarak sağlanır.
Kapsam Belirleme Seçenekleri
Mem0, belleklerin Uygulama, Aracı, İş Parçacığı ve Kullanıcı bazında kapsamlandırılabilmesini sağlar.
Belleklerin mem0'de belirtilen kimliklerle depolanabilmesi için bu kapsamlar için kimlik sağlanmasına yönelik opsiyonlar mevcuttur.
Mem0ProviderOptions üzerinde ApplicationId, AgentId, ThreadId ve UserId özelliklerine bakın.
Bazı durumlarda, hizmet tabanlı bir aracı kullanırken, sunucu tarafında aracı olan iş parçacığının kimliğini kullanmak isteyebilirsiniz.
Ancak nesne oluşturulurken Mem0Provider iş parçacığı henüz oluşturulmamış olabilir.
Bu durumda ScopeToPerOperationThreadId seçeneğini true olarak ayarlayabilirsiniz, ve Mem0Provider kullanılabilir olduğunda AgentThread öğesinin kimliğini kullanır.
Bağlam İstemi
ContextPrompt seçeneği, belleklere ön ekli varsayılan istemi geçersiz kılmanıza olanak tanır.
İstem, yapay zeka modeline sağlanan bellekleri bağlamsal hale getirmek için kullanılır, böylece yapay zeka modeli bunların ne olduğunu ve nasıl kullanılacağını bilir.
Short-Term Bağlamı için Beyaz Tahta Belleği Kullanma
Beyaz tahta bellek özelliği, sohbet geçmişi kesildiğinde bile aracıların bir konuşmadaki en ilgili bilgileri yakalamasına ve saklamasına olanak tanır.
Konuşmaya eklenen her ileti, gereksinimleri, teklifleri, kararları ve eylemleri ayıklamak için Microsoft.SemanticKernel.Memory.WhiteboardProvider tarafından işlenir.
Bunlar beyaz tahtada depolanır ve aracıya her çağrıda ek bağlam olarak sağlanır.
Aşağıda Whiteboard Belleğinin nasıl ayarlanacağına yönelik bir örnek verilmiştir:
// Create a whiteboard provider.
var whiteboardProvider = new WhiteboardProvider(chatClient);
// Add the whiteboard provider to the agent thread.
ChatHistoryAgentThread agentThread = new();
agentThread.AIContextProviders.Add(whiteboardProvider);
// Simulate a conversation with the agent.
await agent.InvokeAsync("I would like to book a trip to Paris.", agentThread);
// Whiteboard should now contain a requirement that the user wants to book a trip to Paris.
Beyaz Tahta Belleğinin Avantajları
- Short-Term Bağlamı: Devam eden konuşmaların hedefleri hakkında önemli bilgileri korur.
- Sohbet Geçmişinin Kesilmesine izin verir: Sohbet geçmişi kesilirse kritik bağlamın korunmasını destekler.
WhiteboardProvider seçenekleri
, WhiteboardProvider davranışını özelleştirmek için çeşitli seçeneklerle yapılandırılabilir.
Seçenekler oluşturucuya WhiteboardProviderOptions sınıfı WhiteboardProvider kullanılarak sağlanır.
MaxWhiteboardMessages
Beyaz tahtada tutulacak en fazla ileti sayısını belirtir. Üst sınıra ulaşıldığında, daha az değerli iletiler kaldırılır.
ContextPrompt
Yapay zeka modeline beyaz tahta içeriği sağlanırken iletilerin ne için olduğunu açıklamak önemlidir.
Bu ayar, WhiteboardProvider ile yerleşik olan varsayılan mesajlaşmanın geçersiz kılınmasına izin verir.
WhiteboardEmptyPrompt
Beyaz tahta boş olduğunda, WhiteboardProvider boş olduğunu belirten bir ileti görüntülenir.
Bu ayar, WhiteboardProvider ile yerleşik olan varsayılan mesajlaşmanın geçersiz kılınmasına izin verir.
BakımUyarıŞablonu
, WhiteboardProvider beyaz tahtaya ileti eklemek/güncelleştirmek/kaldırmak için bir yapay zeka modeli kullanır.
Bu güncelleştirmeleri yapmak için yerleşik bir istem vardır.
Bu ayar, bu yerleşik istemin geçersiz kılınmasına olanak tanır.
Şablonda aşağıdaki parametreler kullanılabilir:
-
{{$maxWhiteboardMessages}}: Beyaz tahtada izin verilen en fazla ileti sayısı. -
{{$inputMessages}}: Beyaz tahtaya eklenecek giriş iletileri. -
{{$currentWhiteboard}}: Beyaz tahtanın geçerli durumu.
Mem0 ve Beyaz Tahta Belleğini Birleştirme
Uzun vadeli ve kısa vadeli bellek özellikleri arasında denge elde etmek için aynı aracıda hem Mem0 hem de beyaz tahta belleğini kullanabilirsiniz.
// Add both Mem0 and whiteboard providers to the agent thread.
agentThread.AIContextProviders.Add(mem0Provider);
agentThread.AIContextProviders.Add(whiteboardProvider);
// Use the agent with combined memory capabilities.
ChatMessageContent response = await agent.InvokeAsync("Please retrieve my company report", agentThread).FirstAsync();
Console.WriteLine(response.Content);
Aracılar bu bellek özelliklerini birleştirerek kullanıcılar için daha kişiselleştirilmiş ve bağlama duyarlı bir deneyim sağlayabilir.
Sonraki Adımlar
Çok Yakında
Daha fazla bilgi yakında sunulacaktır.
Çok Yakında
Daha fazla bilgi yakında sunulacaktır.