Kurulum

SmartRAG NuGet paketi olarak mevcuttur ve .NET Standard 2.0/2.1'i destekler, bu da .NET Framework 4.6.1+, .NET Core 2.0+ ve .NET 5+ uygulamalarıyla uyumlu olmasını sağlar. Tercih ettiğiniz kurulum yöntemini seçin:

dotnet add package SmartRAG
Install-Package SmartRAG
<PackageReference Include="SmartRAG" Version="2.3.1" />

Yapılandırma

SmartRAG'i Program.cs veya Startup.cs dosyanızda yapılandırın:

// Program.cs
using SmartRAG;

var builder = WebApplication.CreateBuilder(args);

// SmartRAG servislerini ekle
builder.Services.AddSmartRAG(options =>
{
    options.AIProvider = AIProvider.Anthropic;
    options.StorageProvider = StorageProvider.Qdrant;
    options.ApiKey = "your-api-key";
});

var app = builder.Build();

Hızlı Örnek

Konuşma geçmişi ile gerçek SmartRAG implementasyonunu kullanan basit bir örnek:

// Document search servisini enjekte et
public class SearchController : ControllerBase
{
    private readonly IDocumentSearchService _documentSearchService;
    
    public SearchController(IDocumentSearchService documentSearchService)
    {
        _documentSearchService = documentSearchService;
    }
    
    [HttpPost("search")]
    public async Task<ActionResult> Search([FromBody] SearchRequest request)
    {
        string query = request?.Query ?? string.Empty;
        int maxResults = request?.MaxResults ?? 5;
        string sessionId = request?.SessionId ?? Guid.NewGuid().ToString();

        if (string.IsNullOrWhiteSpace(query))
            return BadRequest("Query cannot be empty");

        try
        {
            var response = await _documentSearchService.GenerateRagAnswerAsync(query, sessionId, maxResults);
            return Ok(response);
        }
        catch (Exception ex)
        {
            return StatusCode(500, $"Internal server error: {ex.Message}");
        }
    }
}

public class SearchRequest
{
    [Required]
    public string Query { get; set; } = string.Empty;

    [Range(1, 50)]
    [DefaultValue(5)]
    public int MaxResults { get; set; } = 5;

    /// 
    /// Session ID for conversation history
    /// 
    public string SessionId { get; set; } = string.Empty;
}</code></pre>
                    </div>
                </div>
            </div>
        </section>

        
        

💬 Konuşma Geçmişi

SmartRAG oturum tabanlı bağlam farkındalığı kullanarak konuşma geçmişini otomatik olarak yönetir. Her konuşma oturumu birden fazla soru ve cevap arasında bağlamı korur.

Nasıl Çalışır

  • Oturum Yönetimi: Her konuşma benzersiz bir oturum kimliği kullanır
  • Otomatik Bağlam: Önceki sorular ve cevaplar otomatik olarak bağlama dahil edilir
  • Akıllı Kısaltma: Konuşma geçmişi optimal performansı korumak için akıllıca kısaltılır
  • Depolama Entegrasyonu: Konuşma verileri yapılandırılan depolama sağlayıcısı kullanılarak saklanır

Kullanım Örneği

// İlk soru
var firstRequest = new SearchRequest
{
    Query = "Makine öğrenmesi nedir?",
    SessionId = "user-session-123",
    MaxResults = 5
};

// Takip sorusu (önceki bağlamı hatırlar)
var followUpRequest = new SearchRequest
{
    Query = "Denetimli öğrenmeyi daha detaylı açıklayabilir misin?",
    SessionId = "user-session-123",  // Aynı oturum kimliği
    MaxResults = 5
};

// Başka bir takip sorusu
var anotherRequest = new SearchRequest
{
    Query = "Derin öğrenmenin avantajları nelerdir?",
    SessionId = "user-session-123",  // Aynı oturum kimliği
    MaxResults = 5
};

Pro İpucu

Farklı kullanıcı oturumları veya konuşma thread'leri arasında bağlamı korumak için anlamlı oturum kimlikleri (kullanıcı kimlikleri veya konuşma kimlikleri gibi) kullanın.

Sonraki Adımlar

SmartRAG'i kurduğunuza ve yapılandırdığınıza göre, bu özellikleri keşfedebilirsiniz:

Yapılandırma

Gelişmiş yapılandırma seçenekleri ve en iyi uygulamalar hakkında bilgi edinin.

Yapılandır

API Referansı

Örneklerle birlikte tam API dokümantasyonunu keşfedin.

API'yi Görüntüle

Yardıma mı ihtiyacınız var?

Herhangi bir sorunla karşılaşırsanız veya yardıma ihtiyacınız varsa:

</div> </div>