2024-03-19 22:19:30 +01:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Microsoft.KernelMemory;
|
2023-06-15 13:57:47 +02:00
|
|
|
|
|
|
|
|
|
class Program
|
|
|
|
|
{
|
|
|
|
|
static string WafFileName = "azure-well-architected.pdf";
|
|
|
|
|
static async Task Main(string[] args)
|
|
|
|
|
{
|
|
|
|
|
var kernelSettings = KernelSettings.LoadSettings();
|
|
|
|
|
|
|
|
|
|
using ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
|
|
|
|
|
{
|
|
|
|
|
builder
|
|
|
|
|
.SetMinimumLevel(kernelSettings.LogLevel ?? LogLevel.Warning)
|
|
|
|
|
.AddConsole()
|
|
|
|
|
.AddDebug();
|
|
|
|
|
});
|
2024-03-19 22:19:30 +01:00
|
|
|
|
|
|
|
|
|
var memory = new KernelMemoryBuilder()
|
|
|
|
|
.WithQdrantMemoryDb(kernelSettings.QdrantEndpoint)
|
|
|
|
|
.WithAzureOpenAITextGeneration(new AzureOpenAIConfig
|
|
|
|
|
{
|
|
|
|
|
APIType = AzureOpenAIConfig.APITypes.ChatCompletion,
|
|
|
|
|
Endpoint =kernelSettings.Endpoint,
|
|
|
|
|
Deployment = kernelSettings.DeploymentOrModelId,
|
|
|
|
|
Auth = AzureOpenAIConfig.AuthTypes.APIKey,
|
|
|
|
|
APIKey = kernelSettings.ApiKey
|
|
|
|
|
})
|
|
|
|
|
.WithAzureOpenAITextEmbeddingGeneration(new AzureOpenAIConfig
|
|
|
|
|
{
|
|
|
|
|
APIType = AzureOpenAIConfig.APITypes.EmbeddingGeneration,
|
|
|
|
|
Endpoint = kernelSettings.Endpoint,
|
|
|
|
|
Deployment =kernelSettings.EmbeddingDeploymentOrModelId,
|
|
|
|
|
Auth = AzureOpenAIConfig.AuthTypes.APIKey,
|
|
|
|
|
APIKey = kernelSettings.ApiKey
|
|
|
|
|
})
|
|
|
|
|
.Build<MemoryServerless>();
|
2024-02-19 11:38:51 +01:00
|
|
|
|
await ImportDocumentAsync(memory, WafFileName);
|
2023-06-15 13:57:47 +02:00
|
|
|
|
}
|
|
|
|
|
|
2024-03-19 22:19:30 +01:00
|
|
|
|
public static async Task ImportDocumentAsync(IKernelMemory memory, string filename)
|
2023-06-15 13:57:47 +02:00
|
|
|
|
{
|
2024-03-19 22:19:30 +01:00
|
|
|
|
await memory.ImportDocumentAsync(new Document("wafdoc")
|
|
|
|
|
.AddFiles([
|
|
|
|
|
filename
|
|
|
|
|
]), index: "waf");
|
2023-06-15 13:57:47 +02:00
|
|
|
|
}
|
|
|
|
|
}
|