Skip to content

Commit 2c8561f

Browse files
committed
Add GenerateProject function and remove Function1
Removed Function1.cs and its dependencies. Updated ProcessCertPromptFile.cs for better readability. Added HTTP GET request for GenerateProject in app.http. Updated azure-project-generator.csproj with new package reference. Added GenerateProject.cs with HTTP-triggered function using CosmosDB.
1 parent e88df72 commit 2c8561f

File tree

5 files changed

+66
-32
lines changed

5 files changed

+66
-32
lines changed

azure-project-generator/Function1.cs

Lines changed: 0 additions & 30 deletions
This file was deleted.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
using azure_project_generator.models;
2+
using Microsoft.AspNetCore.Http;
3+
using Microsoft.AspNetCore.Mvc;
4+
using Microsoft.Azure.Cosmos;
5+
using Microsoft.Azure.Functions.Worker;
6+
using Microsoft.Azure.Functions.Worker.Http;
7+
using Microsoft.Extensions.Logging;
8+
using OpenAI.Embeddings;
9+
using System.ComponentModel;
10+
11+
namespace azure_project_generator
12+
{
13+
public class GenerateProject
14+
{
15+
private readonly ILogger<GenerateProject> _logger;
16+
17+
public GenerateProject(ILogger<GenerateProject> logger)
18+
{
19+
_logger = logger;
20+
}
21+
22+
[Function("GenerateProject")]
23+
public IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "get")] HttpRequest req, string certificationCode,
24+
25+
[CosmosDBInput(Connection = "CosmosDBConnection")] CosmosClient client)
26+
{
27+
_logger.LogInformation("C# HTTP trigger function processed a request.");
28+
29+
var query = new QueryDefinition("SELECT * FROM c WHERE c.certificationCode = @certificationCode")
30+
.WithParameter("@certificationCode", certificationCode);
31+
32+
var iterator = client.GetContainer("AzureCertDB", "projectpromptvectors")
33+
.GetItemQueryIterator<CertificationProjectPromptDocument>(query);
34+
35+
36+
CertificationProjectPromptDocument certificationProjectPromptDocument = iterator.ReadNextAsync().Result.FirstOrDefault();
37+
38+
float[] projectPromptVector = certificationProjectPromptDocument.ProjectPromptVector;
39+
//"SELECT * FROM c WHERE c.certificationCode = {certificationCode}"
40+
41+
42+
var queryDef = new QueryDefinition(
43+
query: $"SELECT c.serviceName, VectorDistance(c.contextVector,@embedding) AS SimilarityScore FROM c ORDER BY VectorDistance(c.contextVector,@embedding)"
44+
).WithParameter("@embedding", projectPromptVector);
45+
46+
using FeedIterator<CertificationServiceDocument> resultSetIterator = client.GetContainer("AzureCertDB", "certvectors").GetItemQueryIterator<CertificationServiceDocument>(queryDef);
47+
48+
while (resultSetIterator.HasMoreResults)
49+
{
50+
FeedResponse<CertificationServiceDocument> response = resultSetIterator.ReadNextAsync().Result;
51+
foreach (var item in response)
52+
{
53+
_logger.LogInformation(item.ServiceName);
54+
}
55+
}
56+
57+
return new OkObjectResult("Welcome to Azure Functions!");
58+
}
59+
}
60+
}

azure-project-generator/ProcessCertPromptFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public ProcessCertPromptFile(ILogger<ProcessCertServiceFile> logger,
1818
EmbeddingClient embeddingClient,
1919
JsonValidationService jsonValidationService,
2020
ContentGenerationService contentGenerationService)
21-
{
21+
{
2222
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
2323
_embeddingClient = embeddingClient ?? throw new ArgumentNullException(nameof(embeddingClient));
2424
_jsonValidationService = jsonValidationService ?? throw new ArgumentNullException(nameof(jsonValidationService));

azure-project-generator/app.http

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
# For more info on HTTP files go to https://aka.ms/vs/httpfile
2-
GET http://localhost:7204/api/Function1
2+
GET http://localhost:7204/api/Function1
3+
4+
###
5+
GET http://localhost:7204/api/GenerateProject?certificationCode=AZ-104

azure-project-generator/azure-project-generator.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.23.0" />
2020
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.CosmosDB" Version="4.10.0" />
2121
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.2.0" />
22+
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="1.2.1" />
2223
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Blobs" Version="6.6.0" />
2324
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.17.4" />
2425
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />

0 commit comments

Comments
 (0)