添加6.5s模型

This commit is contained in:
zpc 2024-08-17 16:14:32 +08:00
parent 188bc370ed
commit 87f75266a3
4 changed files with 95 additions and 38 deletions

View File

@ -5,10 +5,21 @@
# 在解决方案下运行
docker build -t miaoyu:dev-0.0.3 -f src/2-api/HuanMeng.MiaoYu.WebApi/Dockerfile .
docker build -t miaoyu:dev-0.0.4 --build-arg VERSION=7.0 --build-arg TARGET=dev -f src/2-api/HuanMeng.MiaoYu.WebApi/Dockerfile .
docker build -t miaoyuapi:dev-1.2.7 --build-arg VERSION=1.2.7 --build-arg TARGET=dev -f src/2-api/HuanMeng.MiaoYu.WebApi/Dockerfile .
docker tag miaoyuapi:dev-1.2.7 123.207.203.228:92/miaoyuapi:dev-1.2.7
docker push 123.207.203.228:92/miaoyuapi:dev-1.2.7
//docker build -t myregistry.com/myusername/myapp:v1.0 .
docker build --no-cache --progress=plain -t hm-admin:dev-1.0.3 -t hm-admin:latest -t 123.207.203.228:92/hm-admin:dev-1.0.3 -t 123.207.203.228:92/hm-admin:latest -f MiaoYu.Api.Admin/Dockerfile .
docker tag hm-admin:dev-1.0.0
docker build -t hm-admin:v1.0 -t hm-admin:latest .
docker build --no-cache --progress=plain -t hm-admin:dev-1.0.4 -t hm-admin:latest -t 123.207.203.228:92/hm-admin:dev-1.0.4 -t 123.207.203.228:92/hm-admin:latest -f MiaoYu.Api.Admin/Dockerfile .
docker push 123.207.203.228:92/hm-admin:latest
docker push 123.207.203.228:92/hm-admin:dev-1.0.4
# 运行
docker run -d -p 90:90 -v E://disk/output:/app/output --name webapi miaoyu:dev-0.0.3
docker run -d -p 91:80 --name hm-admin hm-admin:latest
# 运行。挂载日志文件夹
docker run -d -p 90:90 -v E://disk/output:/app/output --name webapi miaoyu:dev-0.0.3
docker run -d -p 90:90 -v E://disk/output:/app/output --name webapi miaoyu:dev-0.0.3

View File

@ -1,19 +1,7 @@
using HuanMeng.MiaoYu.Code.Chat.Claude;
using HuanMeng.MiaoYu.Code.Chat.Contract;
using HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu;
using HuanMeng.MiaoYu.Model.Dto.Character;
using HuanMeng.MiaoYu.Model.EnumModel.Chat;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.PortableExecutable;
using System.Runtime.InteropServices.JavaScript;
using System.Text;
using System.Threading.Tasks;
using System.Text.Json.Nodes;
namespace HuanMeng.MiaoYu.Code.Chat.Minimax
{
@ -27,7 +15,7 @@ namespace HuanMeng.MiaoYu.Code.Chat.Minimax
///
/// </summary>
/// <param name="messages"></param>
/// <param name="model_Config"></param>
/// <param name="character"></param>
/// <param name="botName"></param>
public MinimaxChatParams(List<ClaudeChatMessage> messages, CharacterCache character, string botName)
{
@ -39,49 +27,65 @@ namespace HuanMeng.MiaoYu.Code.Chat.Minimax
this.Headers = JsonConvert.DeserializeObject<Dictionary<string, string>>(Model_Config.HeadersTemplate) ?? new Dictionary<string, string>();
}
Message = messages[messages.Count - 1].Content;
var otherTemplate = Model_Config.OtherTemplate;
//角色需要的类型
string ai_messages = string.Empty;
string user_messages = string.Empty;
if (!string.IsNullOrEmpty(otherTemplate))
{
var otherObj = JObject.Parse(otherTemplate);
if (otherObj != null)
{
ai_messages = otherObj["ai_messages"]?.ToString() ?? "{}";
user_messages = otherObj["user_messages"]?.ToString() ?? "{}";
}
}
if (!string.IsNullOrEmpty(Model_Config.RequestTemplate))
{
var assistant = ChatRole.assistant.ToString();
var user = ChatRole.user.ToString();
List<MinimaxChatMessage> minimaxChatMessages = new List<MinimaxChatMessage>();
JArray minimaxChatMessages = new JArray();
messages.ForEach(message =>
{
MinimaxChatMessage minimaxChatMessage = new MinimaxChatMessage();
minimaxChatMessage.Text = message.Content;
JObject jobject = null;
if (message.Role == assistant)
{
minimaxChatMessage.SenderType = "BOT";
jobject = JObject.Parse(ai_messages);
}
else if (message.Role == user)
{
minimaxChatMessage.SenderType = "USER";
jobject = JObject.Parse(user_messages);
}
if (jobject != null)
{
foreach (var item in jobject)
{
if (item.Value?.Type == JTokenType.String)
{
var val = item.Value.ToString();
if (val.Contains("${message}"))
{
jobject[item.Key] = val
.Replace("${message}", message.Content);
}
}
}
minimaxChatMessages.Add(jobject);
}
minimaxChatMessages.Add(minimaxChatMessage);
});
var mess = JsonConvert.SerializeObject(minimaxChatMessages);
var messObj = mess.TrimStart('[').TrimEnd(']');
var systemp = Model_Config.RequestTemplate
.Replace("${messages}", mess)
.Replace("${bot_name}", botName)
.Replace("${messagesobj}", messObj)
;
var jobj = JObject.Parse(systemp);
foreach (var item in jobj)
{
if (item.Value?.Type == JTokenType.String)
{
var prompt = item.Value?.ToString() ?? "";
if (prompt.Contains("${prompt}"))
{
jobj[item.Key] = prompt.Replace("${prompt}", character.System);
}
}
}
ProcessJObject(jobj, character.System);
systemp = JsonConvert.SerializeObject(jobj);
//.Replace("${prompt}", cc["prompt"].ToString())
this.RequestBody = systemp;
}
if (!string.IsNullOrEmpty(character.ModelConfig.ResponseTemplate))
@ -108,6 +112,42 @@ namespace HuanMeng.MiaoYu.Code.Chat.Minimax
/// 请求返回结果
/// </summary>
public Dictionary<string, string>? ResponseConten { get; set; }
/// <summary>
///
/// </summary>
/// <param name="jobj"></param>
/// <param name="systemValue"></param>
private void ProcessJObject(JObject jobj, string systemValue)
{
foreach (var item in jobj)
{
if (item.Value?.Type == JTokenType.String)
{
var prompt = item.Value?.ToString() ?? "";
if (prompt.Contains("${prompt}"))
{
jobj[item.Key] = prompt.Replace("${prompt}", systemValue);
return;
}
}
else if (item.Value?.Type == JTokenType.Object)
{
// 递归调用处理子对象
ProcessJObject((JObject)item.Value, systemValue);
}
else if (item.Value?.Type == JTokenType.Array)
{
var array = (JArray)item.Value;
foreach (var item2 in array)
{
ProcessJObject((JObject)item2, systemValue);
}
// 递归调用处理子对象
}
}
}
}
/// <summary>
///

View File

@ -557,6 +557,7 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext
entity.Property(e => e.ModelName)
.HasMaxLength(50)
.HasComment("模型名称");
entity.Property(e => e.OtherTemplate).HasComment("其它的模板");
entity.Property(e => e.RequestTemplate).HasComment("请求模板");
entity.Property(e => e.ResponseTemplate).HasComment("返回数据模板");
entity.Property(e => e.SystemTemplate).HasComment("system上下文模板");

View File

@ -75,4 +75,9 @@ public partial class T_Model_Config: MultiTenantEntity
/// 是否默认
/// </summary>
public virtual bool? IsDefabult { get; set; }
/// <summary>
/// 其它的模板
/// </summary>
public virtual string? OtherTemplate { get; set; }
}