diff --git a/VideoAnalysis/Program.cs b/VideoAnalysis/Program.cs
index 55514e4..a413ac5 100644
--- a/VideoAnalysis/Program.cs
+++ b/VideoAnalysis/Program.cs
@@ -1,16 +1,11 @@
using VideoAnalysisCore.Common;
-using VideoAnalysisRazor;
using Learn.VideoAnalysis.Components;
using Microsoft.OpenApi.Models;
using AntDesign.ProLayout;
using VideoAnalysisCore.AICore.ChatGPT;
using VideoAnalysisCore.AICore.ChatGPT.KIMI;
using VideoAnalysisCore.AICore.SherpaOnnx;
-using SqlSugar;
using Mapster;
-using VideoAnalysisCore.AICore.ChatGPT.Dto;
-using System.Text.Json;
-using Newtonsoft.Json;
diff --git a/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs b/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs
index 11136b1..d2a3767 100644
--- a/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs
+++ b/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs
@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using System.Text.Json;
using System.Text.Json.Nodes;
using System.Threading.Tasks;
@@ -18,7 +19,24 @@ namespace VideoAnalysisCore.AICore.ChatGPT.Dto
///
/// 结果
///
- public JToken 结果 { get; set; }
+ public JsonDocument 结果 { get; set; }
+
+ ///
+ /// 转换结果为对象
+ ///
+ ///
+ ///
+ public T? ToObject()
+ {
+ try
+ {
+ return System.Text.Json.JsonSerializer.Deserialize(结果.RootElement.GetRawText());
+ }
+ catch
+ {
+ return default;
+ }
+ }
///
/// 问题解释
///
diff --git a/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs b/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs
index fd718f0..31e47c2 100644
--- a/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs
+++ b/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs
@@ -14,7 +14,6 @@ using VideoAnalysisCore.Enum;
using System.Reflection;
using FreeRedis;
using VideoAnalysisCore.Model.Dto;
-using Newtonsoft.Json;
using AntDesign;
using SqlSugar.IOC;
@@ -86,7 +85,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
var modelId = reqTokenCount > 32 * 1000 ? "moonshot-v1-128k" : "moonshot-v1-32k";
var chatRep = new ChatReq
{
- max_tokens = 32*1024 - (reqTokenCount + 20),
+ max_tokens = 32*1024 - (reqTokenCount + 30),
temperature = 0.3f,
frequency_penalty = 0,
presence_penalty = 0,
@@ -100,14 +99,13 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
RedisExpand.SetTaskGPTCached(task, chatResp);
if (chatResp is null || chatResp.error != null)
throw new Exception($"KIMI模型返回异常 Chat 返回参数: " +
- $" {System.Text.Json.JsonSerializer.Serialize(chatResp)}");
+ $" {JsonSerializer.Serialize(chatResp)}");
var chatResContent = chatResp?.choices.FirstOrDefault()?.message.content;
if (chatResContent is null)
throw new Exception("KIMIGPT返回message无效结果");
-
- var questionRes = JsonConvert.DeserializeObject(chatResContent);
+ var questionRes = JsonSerializer.Deserialize(chatResContent);
var gptRes = new TaskRes(captions);
if (questionRes is null)
throw new Exception("KIMIGPT返回无效结果");
@@ -119,20 +117,20 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
var criteriaDic = criteriaArr.ToDictionary(s => s.Id);
gptRes.Assessment = new AssessmentDto()
{
- Bad = arr1.Where(s => s.结果.ToObject() < 6)
+ Bad = arr1.Where(s => s.ToObject() < 6)
.Select(s => new CourseCriteria()
{
Id = criteriaDic[s.问题编号].Id,
ImprovedMethods = criteriaDic[s.问题编号].ImprovedMethods,
Analyze = s.问题解释 ?? string.Empty,
- Score = s.结果.ToObject(),
+ Score = s.ToObject(),
Prompt = criteriaDic[s.问题编号].Flaw,
}).ToArray(),
- Merit = arr1.Where(s => s.结果.ToObject() >= 6)
+ Merit = arr1.Where(s => s.ToObject() >= 6)
.Select(s => new CourseCriteria()
{
Id = criteriaDic[s.问题编号].Id,
- Score = s.结果.ToObject(),
+ Score = s.ToObject(),
//ImprovedMethods = criteriaDic[s.问题编号].ImprovedMethods,
Analyze = s.问题解释 ?? string.Empty,
Prompt = criteriaDic[s.问题编号].Advantage,
@@ -140,18 +138,18 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
};
//高频词汇
- gptRes.Hotwords = arr2[(int)QuestionTypeEnum.高频词].结果.ToObject() ?? ["暂无数据"];
+ gptRes.Hotwords = arr2[(int)QuestionTypeEnum.高频词].ToObject() ?? ["暂无数据"];
//时间段概览
gptRes.TimeOverview = arr2[(int)QuestionTypeEnum.时间段概览]
- .结果.ToObject();
+ .ToObject();
//提问类型
gptRes.QuestionType = arr2[(int)QuestionTypeEnum.提问类型]
- .结果.ToObject>();
+ .ToObject>();
//分析上课时间段情况 分析 独立学习 小组合作 随堂练习等情况
var extraTimeBase = arr2[(int)QuestionTypeEnum.额外课堂情况]
- .结果.ToObject();
+ .ToObject();
if (extraTimeBase is not null)
foreach (var item in extraTimeBase)
{
diff --git a/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs b/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs
index fc8df02..2416cac 100644
--- a/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs
+++ b/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs
@@ -56,7 +56,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
/// Return HttpResponseMessage for SSE
public async Task Chat(ChatReq chatReq)
{
- var requestBody = Newtonsoft.Json.JsonConvert.SerializeObject(chatReq);
+ var requestBody = System.Text.Json.JsonSerializer.Serialize(chatReq);
var chatResp = await PostJsonStreamAsync("/v1/chat/completions", requestBody);
return await chatResp.Content.ReadFromJsonAsync();
}
@@ -84,7 +84,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
var responseObj = JToken.Parse(responseText);
return responseObj?["data"]?["total_tokens"]?.ToObject();
}
- var error = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText);
+ var error = JsonConvert.DeserializeObject(responseText);
_logger.LogError($"{error?.error?.type}: {error?.error?.message}");
throw new Exception($"{error?.error.type}: {error?.error.message}");
}
@@ -97,7 +97,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
///
public async Task GetAsTiMateTokenCount(ChatReq chatReq)
{
- var chatReqText = Newtonsoft.Json.JsonConvert.SerializeObject(chatReq);
+ var chatReqText = JsonConvert.SerializeObject(chatReq);
return await GetAsTiMateTokenCount(chatReqText);
}
@@ -226,9 +226,9 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
var responseText = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
- return Newtonsoft.Json.JsonConvert.DeserializeObject(responseText) ?? default;
+ return JsonConvert.DeserializeObject(responseText) ?? default;
}
- var error = Newtonsoft.Json.JsonConvert.DeserializeObject(responseText);
+ var error = JsonConvert.DeserializeObject(responseText);
_logger.LogError($"{error?.error.type}: {error?.error.message}");
throw new Exception($"{error?.error.type}: {error?.error.message}");
}
diff --git a/VideoAnalysisCore/Enum/QuestionTypeEnum.cs b/VideoAnalysisCore/Enum/QuestionTypeEnum.cs
index 5dd928e..c7d06dd 100644
--- a/VideoAnalysisCore/Enum/QuestionTypeEnum.cs
+++ b/VideoAnalysisCore/Enum/QuestionTypeEnum.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace VideoAnalysisCore.Enum
{
- enum QuestionTypeEnum
+ public enum QuestionTypeEnum
{
[Display(Prompt = "分析授课中使用的高频词" +