Taşınma Kılavuzları
SmartRAG için adım adım taşınma kılavuzları
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
Kullanımdan Kaldırma Bildirimleri
Kullanımdan kaldırılan özellikler ve planlanan kaldırmalar
Kullanımdan Kaldırma Bildirimleri