.NET uygulamasına bir konuşma AI deneyimi eklemenin hızlı bir yoluna mı ihtiyacınız var? Aspose.LLM ile oturum kimliklerini açıkça oluşturup yönetmeden basit bir sohbet oluşturabilirsiniz. SendMessageAsync otomatik olarak mevcut oturumu kullanır, ardışık mesajların konuşma bağlamını paylaşmasına izin verir.
Bu desen, aynı anda bir konuşma için, CLI araçları, prototipler, betikler ve diğer basit uygulamalar dahil olmak üzere faydalıdır.
Basit Sohbetin Doğru Seçim Olduğu Zaman
Implicit oturum deseni şu durumlar için uygundur:
- Tek bir soru ve cevap.
- Kısa bir ileri-geri konuşma.
- CLI uygulamaları ve betikler.
- Prototipler.
- Aynı anda yalnızca bir konuşmanın aktif olması gereken uygulamalar.
Uygulamanızın birden fazla bağımsız konuşmaya ihtiyacı varsa—örneğin, birden çok kullanıcıya hizmet veren bir sohbet botu—Aspose.LLM’in açık oturum API’lerini kullanmalısınız.
Bir Oturumu Yönetmeden Mesaj Gönder
Çekirdek mesajlaşma deseni kasıtlı olarak küçüktür:
string reply = await api.SendMessageAsync("What is 2 + 2?");
Console.WriteLine(reply);
Aynı AsposeLLMApi örneği üzerinde sonraki çağrıları yaptığınızda, bunlar aynı mevcut konuşmaya aittir:
await api.SendMessageAsync("My name is Alice.");
string reply = await api.SendMessageAsync("What is my name?");
Console.WriteLine(reply);
Oturum kimliği oluşturmaz, çağrılar arasında birini geçirmez veya konuşma geçmişini açıkça eklemezsiniz. Aynı AsposeLLMApi örneği, mevcut konuşmayı sizin için sürdürür. Mevcut kaynak, bu davranışı API örneğinin ömrü boyunca sürdürülen örtük bir oturum olarak belgeliyor. fileciteturn0file0L29-L34
Tam kurulum hâlâ lisanslı bir API örneği ve bir ön ayar gerektirir. Kaynak örnek Aspose.LLM.License, Qwen25Preset ve AsposeLLMApi.Create(preset) kullanır. fileciteturn0file0L87-L122
Etkileşimli Konsol Sohbeti Oluştur
Temel mesajlaşma desenini anladıktan sonra, bunu küçük bir etkileşimli konsol uygulamasına dönüştürelim.
Önemli kısım, API’yi bir kez oluşturup, ardından her mesaj için yeniden kullanmaktır:
using Aspose.LLM;
using Aspose.LLM.Abstractions.Parameters.Presets;
internal class SimpleChatDemo
{
public static async Task Main()
{
var license = new Aspose.LLM.License();
license.SetLicense("Aspose.LLM.lic");
var preset = new Qwen25Preset();
using var api = AsposeLLMApi.Create(preset);
Console.WriteLine("Ask me anything. Type 'quit' to exit.");
while (true)
{
Console.Write("> ");
string? line = Console.ReadLine();
if (line == null || line.Equals("quit", StringComparison.OrdinalIgnoreCase))
break;
try
{
string reply = await api.SendMessageAsync(line);
Console.WriteLine(reply);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
Bu örnek sohbeti basit tutar:
- API örneği bir kez oluşturulur.
- Her
SendMessageAsyncçağrısı aynı örtük oturumu kullanır. - Önceki mesajlar modele hâlâ erişilebilir.
- Döngü doğal bir karşılıklı konuşma sağlar.
- İstisnalar mesaj başına ele alınır, böylece bir istek başarısız olsa da uygulama sonlanmaz.
Kaynak örnek aynı yapıyı kullanır ve tek API örneğinin yinelemeler arasında bağlamı koruduğunu belirtir. fileciteturn0file0L192-L245
Çalıştırmak için bir .NET konsol projesi oluşturun, oluşturulan Program.cs dosyasını değiştirin ve çalıştırın:
dotnet new console
dotnet run
Aspose.LLM, model yükleme, tokenleştirme ve çıkarım işlemlerini soyutlayan yüksek seviyeli bir AsposeLLMApi sınıfı sağlar. Başlamak için NuGet paketini yükleyin:
Install-Package Aspose.LLM
Farklı Bir Ön Ayar Kullanarak Tek Bir Mesajı Özelleştirin
Konuşmanızın çoğu varsayılan davranışı kullanmalıysa, ancak belirli bir soru daha belirleyici bir yanıt gerektiriyorsa ne olur?
Bu çağrı için SendMessageAsync‘e farklı bir ön ayar geçirebilirsiniz:
var strictPreset = new Qwen25Preset();
strictPreset.SamplerParameters.Temperature = 0.1f;
string reply = await api.SendMessageAsync(
"What is the square root of 144?",
preset: strictPreset);
Console.WriteLine(reply);
Geçersiz kılma yalnızca o çağrı için geçerlidir. API’nin varsayılan ön ayarı değişmeden kalır ve temel oturum, konuşma bağlamını sağlamaya devam eder. fileciteturn0file0L126-L159
0.1f gibi düşük bir sıcaklık, örneklemeyi daha deterministik hâle getirir; bu, oluşturulan yanıtın daha az varyasyon göstermesini istediğiniz sorular için faydalı olabilir. fileciteturn0file0L155-L159
İptal ile Uzun Süreli Sohbet İsteklerini Koruyun
Yerel model çıkarımı, büyük istemler veya daha uzun yanıtlar için daha uzun sürebilir. Bir CancellationToken geçirerek tek bir isteğin süresiz çalışmasını önleyebilirsiniz.
Örneğin, 30 saniyelik bir zaman aşımı ayarlayın:
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30));
try
{
string reply = await api.SendMessageAsync(
"Write a 500-word essay about migration patterns of the Arctic tern.",
cancellationToken: cts.Token);
Console.WriteLine(reply);
}
catch (OperationCanceledException)
{
Console.WriteLine("Generation timed out.");
}
Kaynak aynı deseni belgeler: bir zaman aşımıyla CancellationTokenSource oluşturun, token’ını SendMessageAsync‘e geçirin ve istek iptal edildiğinde OperationCanceledException yakalayın. fileciteturn0file0L161-L190
ASP.NET Core uygulamasında, istemci bağlantıyı kestiğinde oluşturma işleminin durması için isteğin iptal belirtecini de geçirebilirsiniz.
Yaygın Sorunlar
| Sorun | Kontrol Edilmesi Gereken |
|---|---|
Not licensed for this method | SendMessageAsync çağrılmadan önce lisansın yüklendiğinden emin olun. |
Multiple AsposeLLMApi instances | Tek bir örnek yeniden kullanın ve doğru şekilde dispose edin. |
| Slow first response | İlk model/motor indirmesi yeni bir makinede birkaç dakika sürebilir. |
Kaynak özellikle lisans hatasını, tek aktif örnek davranışını ve daha yavaş ilk model yüklemesini belgeliyor. fileciteturn0file0L249-L255
Basit Sohbet vs. Açık Oturumlar
Örtük oturum yaklaşımı kasıtlı olarak sınırlıdır: bir AsposeLLMApi örneğinde tek bir mevcut konuşmayı sürdürerek uygulamayı küçük tutar.
| Eğer ihtiyacınız… | Kullanım |
|---|---|
| Tek bir konuşma | SendMessageAsync |
| Kısa bir etkileşimli sohbet | SendMessageAsync |
| CLI veya prototip | SendMessageAsync |
| Birden fazla bağımsız konuşma | Açık oturumlar |
| Birden fazla kullanıcı veya eşzamanlı sohbetler | Açık oturumlar |
| Kalıcı konuşma durumu | Oturum kalıcılığı |
Tek bir konuşmanın yeterli olduğu durumlarda örtük mesajlaşmayı kullanın. Bağımsız konuşmalar, eşzamanlı kullanıcılar, kalıcı durum veya oturum kimliği üzerinde daha fazla kontrol gerektiğinde açık oturum API’lerine geçin. Mevcut kaynak, eşzamanlı konuşmalar ve kalıcı durum için açık oturumları öneriyor. fileciteturn0file0L266-L274
Açık oturum yaklaşımı için, Aspose.LLM belgelerine ve çoklu dönüş/oturum API’lerine bakın.
Ücretsiz Lisans Al
Aspose, değerlendirme için geçici lisanslar sunar. Birini Aspose geçici lisans sayfası üzerinden alın ve Aspose.LLM.lic dosyasını uygulamanızın yükleyebileceği bir konuma yerleştirin.
Ücretsiz Ek Kaynaklar
Sonuç
Aspose.LLM ile basit bir AI sohbeti oluşturmak, açık oturum yönetimi gerektirmez. Tek bir AsposeLLMApi örneği oluşturarak ve SendMessageAsync metodunu çağırarak, API’nin mevcut oturumu otomatik olarak sürdürdüğü bir konuşma deneyimi oluşturabilirsiniz.
Basit uygulamalar, prototipler, betikler ve tek kullanıcı sohbet deneyimleri için bu, uygulamayı en aza indirir. Uygulamanız birden fazla konuşmayı destekleyecek şekilde büyüdüğünde veya açık oturum kontrolü gerektirdiğinde, oturum tabanlı API’lere geçebilirsiniz.
FAQs
Aspose.LLM ile sohbet oturumlarını manuel olarak yönetmem gerekiyor mu? Hayır. İçsel‑oturum
SendMessageAsyncyöntemi,AsposeLLMApiörneğinin ömrü boyunca konuşma durumunu otomatik olarak izler.Model davranışını sadece bir soru için değiştirebilir miyim? Evet. Farklı bir ön ayar (ör. daha düşük sıcaklıkla)
presetargümanı olarakSendMessageAsync‘e sağlayın. Yalnızca bu çağrı yeni ayarları kullanır.Uzun süren bir üretimi nasıl durdurabilirim? Bir zaman aşımıyla
CancellationTokenSourceoluşturun ve token’ınıSendMessageAsync‘e geçirin. Zaman aşımını ele almak içinOperationCanceledExceptionyakalayın.Hangi yaygın hatalara dikkat etmeliyim? Eksik lisans, aynı anda birden fazla API örneği oluşturma ve yavaş bir ilk model yüklemesi en sık karşılaşılan sorunlardır. Yukarıda açıklanan azaltma adımlarını izleyin.
Örnek kod üretim için hazır mı? Kod parçacıkları Aspose’ın resmi belgelerinden alınmıştır ve sandbox‑testine tabi değildir. Kendi ortamınızda test edin ve dağıtmadan önce sağlam hata yönetimi ekleyin.
