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);
}