Skip to content

Commit d8fb846

Browse files
committed
Add summarization baseline
1 parent 8d28e8b commit d8fb846

File tree

3 files changed

+45
-4
lines changed

3 files changed

+45
-4
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System;
2+
using System.Threading.Tasks;
3+
4+
namespace Minifier.Frontend.OpenAI
5+
{
6+
internal class Summarize : ISummarize
7+
{
8+
public Task<string> Invoke(string url)
9+
{
10+
throw new NotImplementedException();
11+
}
12+
}
13+
14+
public interface ISummarize
15+
{
16+
Task<string> Invoke(string url);
17+
}
18+
}

src/Minifier.Frontend/Startup.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
44
using Microsoft.Extensions.DependencyInjection;
55
using Minifier.Frontend;
6+
using Minifier.Frontend.OpenAI;
67

78
[assembly: FunctionsStartup(typeof(Startup))]
89
namespace Minifier.Frontend
@@ -21,6 +22,7 @@ public override void Configure(IFunctionsHostBuilder builder)
2122
var clientBuilder = new CosmosClientBuilder(connectionString);
2223
return clientBuilder.Build();
2324
});
25+
builder.Services.AddTransient<ISummarize, OpenAI.Summarize>();
2426
}
2527
}
2628
}

src/Minifier.Frontend/Summarize.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
1-
using System;
2-
using System.IO;
31
using System.Threading.Tasks;
42
using Microsoft.AspNetCore.Mvc;
53
using Microsoft.Azure.WebJobs;
64
using Microsoft.Azure.WebJobs.Extensions.Http;
75
using Microsoft.AspNetCore.Http;
86
using Microsoft.Extensions.Logging;
9-
using Newtonsoft.Json;
7+
using Minifier.Frontend.OpenAI;
108

119
namespace Minifier.Frontend
1210
{
1311
public class Summarize
1412
{
1513
private readonly Configuration configuration;
1614
private readonly IGetFullUrlFromSlug getFullUrlFromSlug;
15+
private readonly ISummarize summarize;
1716
private readonly ILogger<Summarize> logger;
1817

1918
public Summarize(
2019
IGetFullUrlFromSlug getFullUrlFromSlug,
20+
ISummarize summarize,
2121
ILogger<Summarize> logger)
2222
{
2323
this.configuration = new Configuration();
2424
this.getFullUrlFromSlug = getFullUrlFromSlug;
25+
this.summarize = summarize;
2526
this.logger = logger;
2627
}
2728

@@ -33,7 +34,27 @@ public async Task<IActionResult> Run(
3334
{
3435
this.logger.LogInformation("Requesting summary for `{slug}`.", slug);
3536

36-
return new OkObjectResult("ok");
37+
string foundMinifiedUrl = await getFullUrlFromSlug.Run(slug);
38+
if (foundMinifiedUrl == null)
39+
{
40+
return new NotFoundResult();
41+
}
42+
43+
var summary = await this.summarize.Invoke(foundMinifiedUrl);
44+
45+
return new OkObjectResult(
46+
new SummarizeResponse
47+
{
48+
Url = foundMinifiedUrl,
49+
Summary = summary
50+
}
51+
);
52+
}
53+
54+
public class SummarizeResponse
55+
{
56+
public string Url { get; set; }
57+
public string Summary { get; set; }
3758
}
3859
}
3960
}

0 commit comments

Comments
 (0)