Merge branch 'ai-agent' into ai-hub
# Conflicts: # Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs
This commit is contained in:
@@ -20,7 +20,6 @@ public static class GeminiGenerateContentAcquirer
|
||||
+ usage.Value.GetPath("thoughtsTokenCount").GetInt()
|
||||
+ usage.Value.GetPath("toolUsePromptTokenCount").GetInt();
|
||||
|
||||
|
||||
return new ThorUsageResponse
|
||||
{
|
||||
PromptTokens = inputTokens,
|
||||
@@ -32,14 +31,47 @@ public static class GeminiGenerateContentAcquirer
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取图片url,包含前缀
|
||||
/// 获取图片 base64(包含 data:image 前缀)
|
||||
/// 优先从 inlineData.data 中获取,其次从 markdown text 中解析
|
||||
/// </summary>
|
||||
/// <param name="response"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetImageBase64(JsonElement response)
|
||||
public static string GetImagePrefixBase64(JsonElement response)
|
||||
{
|
||||
//todo
|
||||
//获取他的base64字符串
|
||||
return string.Empty;
|
||||
// Step 1: 优先尝试从 candidates[0].content.parts[0].inlineData.data 获取
|
||||
var inlineBase64 = response
|
||||
.GetPath("candidates", 0, "content", "parts", 0, "inlineData", "data")
|
||||
.GetString();
|
||||
|
||||
if (!string.IsNullOrEmpty(inlineBase64))
|
||||
{
|
||||
// 默认按 png 格式拼接前缀
|
||||
return $"data:image/png;base64,{inlineBase64}";
|
||||
}
|
||||
|
||||
// Step 2: fallback,从 candidates[0].content.parts[0].text 中解析 markdown 图片
|
||||
var text = response
|
||||
.GetPath("candidates", 0, "content", "parts", 0, "text")
|
||||
.GetString();
|
||||
|
||||
if (string.IsNullOrEmpty(text))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
// markdown 图片格式: 
|
||||
var startMarker = "(data:image/";
|
||||
var startIndex = text.IndexOf(startMarker, StringComparison.Ordinal);
|
||||
if (startIndex < 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
startIndex += 1; // 跳过 "("
|
||||
var endIndex = text.IndexOf(')', startIndex);
|
||||
if (endIndex <= startIndex)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return text.Substring(startIndex, endIndex - startIndex);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
namespace Yi.Framework.AiHub.Domain.Shared.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 发布状态枚举
|
||||
/// </summary>
|
||||
public enum PublishStatusEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// 未发布
|
||||
/// </summary>
|
||||
Unpublished = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 已发布
|
||||
/// </summary>
|
||||
Published = 1
|
||||
}
|
||||
Reference in New Issue
Block a user