internal static async Task GenerateAndSaveSampleDocumentsAsync()

in demo-dotnet/DotNetVectorDemo/Program.cs [330:351]


        internal static async Task GenerateAndSaveSampleDocumentsAsync(Configuration configuration, AzureOpenAIClient azureOpenAIClient, string inputSampleDocumentPath, string outputSampleDocumentPath)
        {
            string sampleDocumentContent = File.ReadAllText(inputSampleDocumentPath);
            var sampleDocuments = JsonSerializer.Deserialize<List<Dictionary<string, object>>>(sampleDocumentContent);

            EmbeddingClient embeddingClient = azureOpenAIClient.GetEmbeddingClient(configuration.AzureOpenAIEmbeddingDeployment);
            var embeddingOptions = new EmbeddingGenerationOptions { Dimensions = int.Parse(configuration.AzureOpenAIEmbeddingDimensions) };
            foreach (Dictionary<string, object> sampleDocument in sampleDocuments)
            {
                string title = sampleDocument["title"]?.ToString() ?? string.Empty;
                string content = sampleDocument["content"]?.ToString() ?? string.Empty;

                OpenAIEmbedding titleEmbedding = await embeddingClient.GenerateEmbeddingAsync(title, embeddingOptions);
                OpenAIEmbedding contentEmbedding = await embeddingClient.GenerateEmbeddingAsync(content, embeddingOptions);

                sampleDocument["titleVector"] = titleEmbedding.ToFloats();
                sampleDocument["contentVector"] = contentEmbedding.ToFloats();
            }

            string serializedSampleDocuments = JsonSerializer.Serialize(sampleDocuments);
            File.WriteAllText(outputSampleDocumentPath, serializedSampleDocuments);
        }