Taşınma Kılavuzları

SmartRAG sürümleri arasında yükseltme için adım adım taşınma kılavuzları.


v3.x’ten v4.0.0’a Taşınma

Kırıcı Değişiklikler

v4.0.0 .NET 6 hedefler ve SmartRAG.Dashboard projesi ana SmartRAG paketine birleştirilmiştir.

Bu taşınma kılavuzu, SmartRAG v3.x'ten v4.0.0'a yükseltme sırasındaki framework ve proje yapısı değişikliklerini kapsar.

Not: SmartRAG.Dashboard hiçbir zaman NuGet paketi olarak yayınlanmadı. v3.x'te solution içinde ayrı bir proje olarak yer alıyordu; v4.0'da bu proje kaldırıldı ve Dashboard kodu SmartRAG paketine dahil edildi.

Adım 1: Hedef Framework’ü Güncelleyin

Projeniz .NET 6 veya üzerini hedeflemelidir:

<TargetFramework>net6.0</TargetFramework>
<!-- veya net7.0, net8.0, net9.0 -->

.NET Core 3.0, .NET 5 veya .NET Standard 2.1 hedefleyen projeler en az .NET 6'ya yükseltmelidir.

Adım 2: SmartRAG.Dashboard Proje Referansını Kaldırın

Dashboard artık SmartRAG paketinde. SmartRAG.Dashboard projesine ProjectReference kullandıysanız, bu referansı kaldırın:

<!-- Bu satırı kaldırın -->
<ProjectReference Include="..\..\src\SmartRAG.Dashboard\SmartRAG.Dashboard.csproj" />

Sadece SmartRAG NuGet paketini veya ana SmartRAG projesini referans alıyorsanız, değişiklik yapmanız gerekmez.

Adım 3: Aynı API’yi Kullanmaya Devam Edin

Kod değişikliği gerekmez. Dashboard API aynı kalır:

using SmartRAG.Dashboard;

builder.Services.AddSmartRag(builder.Configuration);
builder.Services.AddSmartRagDashboard(options => { options.Path = "/smartrag"; });

app.UseSmartRagDashboard("/smartrag");
app.MapSmartRagDashboard("/smartrag");

SmartRAG.Dashboard namespace ve extension metodları artık SmartRAG paketinin bir parçasıdır.


v2.x’ten v3.0.0’a Taşınma

Temel Değişiklikler

Birincil değişiklik, GenerateRagAnswerAsync'in QueryIntelligenceAsync olarak yeniden adlandırılmasıdır.

Bu taşınma kılavuzu, SmartRAG v2.x'ten v3.0.0'a yükseltme sırasında gerekli değişiklikleri kapsar.

Adım 1: Metod Çağrısını Güncelleyin

Service metod çağrınızı GenerateRagAnswerAsync'den QueryIntelligenceAsync'e güncelleyin:

// Önce (v2.x)
var response = await _searchService.GenerateRagAnswerAsync(query, maxResults);

// Sonra (v3.0.0)
var response = await _searchService.QueryIntelligenceAsync(query, maxResults);

Adım 2: API Endpoint’lerini Güncelleyin (Web API kullanıyorsanız)

Web API controller'ınız varsa, sadece service method çağrısını güncelleyin:

// Önce (v2.x)
[HttpPost("generate-answer")]
public async Task<IActionResult> GenerateAnswer([FromBody] QueryRequest request)
{
    var response = await _searchService.GenerateRagAnswerAsync(request.Query);
    return Ok(response);
}

// Sonra (v3.0.0) - Sadece method adı değişti
[HttpPost("generate-answer")]
public async Task<IActionResult> GenerateAnswer([FromBody] QueryRequest request)
{
    var response = await _searchService.QueryIntelligenceAsync(request.Query);
    return Ok(response);
}

Not

Mevcut endpoint yollarınızı ve controller method adlarınızı koruyabilirsiniz. Sadece service method çağrısını güncellemeniz yeterlidir.

Adım 3: İstemci Kodunu Güncelleyin (uygunsa)

API'yi çağıran istemci kodunuz varsa, endpoint'i güncelleyin:

// Önce
const response = await fetch('/api/intelligence/generate-answer', { ... });

// Sonra
const response = await fetch('/api/intelligence/query', { ... });

v4.0.0 Güncellemesi

GenerateRagAnswerAsync v4.0.0'da kaldırıldı. v4'e yükseltirken QueryIntelligenceAsync kullanmanız gerekir.


v3.8.x’ten v3.9.0’a Taşınma

Kırıcı Değişiklikler

v3.9.0, IStorageFactory, IConversationRepository için kırıcı değişiklikler içerir ve IQdrantCacheManager'ı kaldırır.

Adım 1: IStorageFactory Kullanımını Güncelleyin

IStorageFactory inject edip GetCurrentRepository() çağırıyorsanız, scoped IServiceProvider geçirin:

// Önce (v3.8.x)
var repository = _storageFactory.GetCurrentRepository();

// Sonra (v3.9.0)
var repository = _storageFactory.GetCurrentRepository(_serviceProvider);

DI kullanırken kayıt zaten scoped provider geçirir. IDocumentRepository'yi doğrudan çözümlüyorsanız değişiklik gerekmez.

Adım 2: Özel IConversationRepository Implementasyonlarını Güncelleyin

Özel IConversationRepository implementasyonunuz varsa bu metodları ekleyin:

Task AppendSourcesForTurnAsync(string sessionId, string sourcesJson, CancellationToken cancellationToken = default);
Task<string> GetSourcesForSessionAsync(string sessionId, CancellationToken cancellationToken = default);
Task<string[]> GetAllSessionIdsAsync(CancellationToken cancellationToken = default);

Yerleşik implementasyonlar (Sqlite, Redis, FileSystem, InMemory) bunları zaten içerir.

Adım 3: IQdrantCacheManager Referanslarını Kaldırın (kullanıyorsanız)

IQdrantCacheManager ve QdrantCacheManager kaldırıldı. Arama artık sorgu sonuç önbelleklemesi kullanmıyor. Bu tiplere referansları kaldırın.


v1.x’ten v2.0.0’a Taşınma

Framework Değişikliği

Sürüm 2.0.0, .NET 9.0'dan .NET Standard 2.1'e taşınmıştır

Bu taşınma kılavuzu, SmartRAG v1.x'ten v2.0.0'a yükseltme sırasında framework uyumluluk değişikliklerini kapsar.

Adım 1: Framework Uyumluluğunu Doğrulayın

Projeniz şu framework'lerden birini hedeflemelidir:

<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>netstandard2.1</TargetFramework>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>net461</TargetFramework>
<TargetFramework>net5.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net7.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net9.0</TargetFramework>

Adım 2: NuGet Paketini Güncelleyin

SmartRAG paketini 2.0.0 sürümüne güncelleyin:

dotnet add package SmartRAG --version 2.0.0

Adım 3: Kod Uyumluluğunu Doğrulayın

API değişikliği yok - tüm işlevsellik aynı kalır. Sadece projenizin uyumlu framework'ü hedeflediğinden emin olun.


Sonraki Adımlar

Sürüm Geçmişi

Tüm sürümler ve değişikliklerle birlikte tam sürüm geçmişi

Sürüm Geçmişi

Kullanımdan Kaldırma Bildirimleri

Kullanımdan kaldırılan özellikler ve planlanan kaldırmalar

Kullanımdan Kaldırma Bildirimleri