#455 progress update + ai/create/images + poetID

This commit is contained in:
Hamid Reza Mohammadi 2024-12-13 16:41:41 +03:30
parent 10a02fe8cc
commit f1524378ae
4 changed files with 22 additions and 8 deletions

View File

@ -2114,6 +2114,7 @@ namespace RMuseum.Controllers
/// </summary>
/// <param name="startFrom"></param>
/// <param name="count"></param>
/// <param name="poetId"></param>
/// <returns></returns>
[HttpPut("ai/create/images")]
@ -2121,11 +2122,11 @@ namespace RMuseum.Controllers
[ProducesResponseType((int)HttpStatusCode.OK)]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
[ProducesResponseType((int)HttpStatusCode.Unauthorized)]
public async Task<IActionResult> OpenAIStartCreatingImagesForPoemsAsync(int startFrom, int count)
public async Task<IActionResult> OpenAIStartCreatingImagesForPoemsAsync(int startFrom = 0, int count = 0, int poetId = 0)
{
try
{
await _artifactService.OpenAIStartCreatingImagesForPoemsAsync(startFrom, count);
await _artifactService.OpenAIStartCreatingImagesForPoemsAsync(startFrom, count, poetId);
return Ok();
}
catch (Exception exp)

View File

@ -636,12 +636,13 @@
<param name="skipUpload"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.ArtifactController.OpenAIStartCreatingImagesForPoemsAsync(System.Int32,System.Int32)">
<member name="M:RMuseum.Controllers.ArtifactController.OpenAIStartCreatingImagesForPoemsAsync(System.Int32,System.Int32,System.Int32)">
<summary>
create images for ganjoor
</summary>
<param name="startFrom"></param>
<param name="count"></param>
<param name="poetId"></param>
<returns></returns>
</member>
<member name="P:RMuseum.Controllers.ArtifactController.ReadOnlyMode">
@ -15267,12 +15268,13 @@
<param name="skipUpload"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IArtifactService.OpenAIStartCreatingImagesForPoemsAsync(System.Int32,System.Int32)">
<member name="M:RMuseum.Services.IArtifactService.OpenAIStartCreatingImagesForPoemsAsync(System.Int32,System.Int32,System.Int32)">
<summary>
create images for ganjoor
</summary>
<param name="startFrom"></param>
<param name="count"></param>
<param name="poetId"></param>
<returns></returns>
</member>
<member name="T:RMuseum.Services.IDonationService">

View File

@ -604,8 +604,9 @@ namespace RMuseum.Services
/// </summary>
/// <param name="startFrom"></param>
/// <param name="count"></param>
/// <param name="poetId"></param>
/// <returns></returns>
Task OpenAIStartCreatingImagesForPoemsAsync(int startFrom, int count);
Task OpenAIStartCreatingImagesForPoemsAsync(int startFrom, int count, int poetId);
}
}

View File

@ -15,6 +15,7 @@ using System.Drawing;
using FluentFTP;
using System.Threading.Tasks;
using RMuseum.Models.GanjoorIntegration;
using RMuseum.Models.Ganjoor;
namespace RMuseum.Services.Implementation
{
@ -23,7 +24,7 @@ namespace RMuseum.Services.Implementation
/// </summary>
public partial class ArtifactService : IArtifactService
{
public async Task OpenAIStartCreatingImagesForPoemsAsync(int startFrom, int count)
public async Task OpenAIStartCreatingImagesForPoemsAsync(int startFrom, int count, int poetId)
{
string systemEmail = $"{Configuration.GetSection("Ganjoor")["SystemEmail"]}";
var systemUserId = (Guid)(await _userService.FindUserByEmail(systemEmail)).Result.Id;
@ -47,11 +48,14 @@ namespace RMuseum.Services.Implementation
await jobProgressServiceEF.UpdateJob(job.Id, 0, "Query data");
List<GanjoorCat> cats = poetId == 0 ? new List<GanjoorCat>() : await context.GanjoorCategories.AsNoTracking().Where(c => c.PoetId == poetId).ToListAsync();
var poems =
poetId != 0 ?
await context.GanjoorPoems.AsNoTracking().Where(p => cats.Any(c => c.Id == p.CatId)).ToListAsync() :
count == 0 ?
startFrom == 0 ?
await context.GanjoorPoems.AsNoTracking()
.ToListAsync()
await context.GanjoorPoems.AsNoTracking().ToListAsync()
:
await context.GanjoorPoems.AsNoTracking()
.Skip(startFrom)
@ -91,6 +95,7 @@ namespace RMuseum.Services.Implementation
if (!string.IsNullOrEmpty(poem.PlainText))
{
await jobProgressServiceEF.UpdateJob(job.Id, i, $"{i} از {poems.Count} - {poem.FullTitle} - 1");
//1
bool hasStories = false;
var hasStoriesResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
@ -122,6 +127,7 @@ namespace RMuseum.Services.Implementation
if (!hasStories) continue;
//2
await jobProgressServiceEF.UpdateJob(job.Id, i, $"{i} از {poems.Count} - {poem.FullTitle} - 2");
var storyResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{
Messages = new List<ChatMessage>
@ -152,6 +158,8 @@ namespace RMuseum.Services.Implementation
if (string.IsNullOrEmpty(story)) continue;
await jobProgressServiceEF.UpdateJob(job.Id, i, $"{i} از {poems.Count} - {poem.FullTitle} - 3");
//3
var depictionResult = await openAiService.ChatCompletion.CreateCompletion(new ChatCompletionCreateRequest
{
@ -177,6 +185,8 @@ namespace RMuseum.Services.Implementation
if (string.IsNullOrEmpty(prompt)) continue;
await jobProgressServiceEF.UpdateJob(job.Id, i, $"{i} از {poems.Count} - {poem.FullTitle} - 4");
//4
var imageCreationResult = await openAiService.Image.CreateImage(new ImageCreateRequest
(