feat: 准备构建图片生成

This commit is contained in:
ccnetcore
2025-12-25 23:25:54 +08:00
parent 46bc48d1c1
commit 599b6335d5
5 changed files with 220 additions and 52 deletions

View File

@@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging;
using Volo.Abp.Application.Services;
using Volo.Abp.Users;
using Yi.Framework.AiHub.Domain.Entities;
using Yi.Framework.AiHub.Domain.Entities.Chat;
using Yi.Framework.AiHub.Domain.Entities.Model;
using Yi.Framework.AiHub.Domain.Extensions;
using Yi.Framework.AiHub.Domain.Managers;
@@ -30,11 +31,11 @@ public class OpenApiService : ApplicationService
private readonly AiBlacklistManager _aiBlacklistManager;
private readonly IAccountService _accountService;
private readonly PremiumPackageManager _premiumPackageManager;
private readonly ISqlSugarRepository<ImageStoreTaskAggregateRoot> _imageStoreRepository;
public OpenApiService(IHttpContextAccessor httpContextAccessor, ILogger<OpenApiService> logger,
TokenManager tokenManager, AiGateWayManager aiGateWayManager,
ISqlSugarRepository<AiModelEntity> aiModelRepository, AiBlacklistManager aiBlacklistManager,
IAccountService accountService, PremiumPackageManager premiumPackageManager)
IAccountService accountService, PremiumPackageManager premiumPackageManager, ISqlSugarRepository<ImageStoreTaskAggregateRoot> imageStoreRepository)
{
_httpContextAccessor = httpContextAccessor;
_logger = logger;
@@ -44,6 +45,7 @@ public class OpenApiService : ApplicationService
_aiBlacklistManager = aiBlacklistManager;
_accountService = accountService;
_premiumPackageManager = premiumPackageManager;
_imageStoreRepository = imageStoreRepository;
}
/// <summary>
@@ -259,11 +261,13 @@ public class OpenApiService : ApplicationService
/// 生成-Gemini (尊享服务专用)
/// </summary>
/// <param name="input"></param>
/// <param name="isAsync"></param>
/// <param name="modelId"></param>
/// <param name="alt"></param>
/// <param name="cancellationToken"></param>
[HttpPost("openApi/v1beta/models/{modelId}:{action:regex(^(generateContent|streamGenerateContent)$)}")]
public async Task GenerateContentAsync([FromBody] JsonElement input,
[FromQuery] bool isAsync,
[FromRoute] string modelId,
[FromQuery] string? alt, CancellationToken cancellationToken)
{
@@ -294,6 +298,18 @@ public class OpenApiService : ApplicationService
throw new UserFriendlyException("尊享token包用量不足请先购买尊享token包");
}
//如果异步直接走job处理进行存储
if (isAsync)
{
var task = new ImageStoreTaskAggregateRoot();
await _imageStoreRepository.InsertAsync(task);
await _httpContextAccessor.HttpContext.Response.WriteAsJsonAsync(new
{
Id = task.Id
}, cancellationToken);
//todo 发送job,参数怎么办?需要先全存下来吗?全存下来,就要解析全部提示词 和 附件内容了
}
//ai网关代理httpcontext
if (alt == "sse")
{