添加6.5s模型
This commit is contained in:
parent
188bc370ed
commit
87f75266a3
13
README.md
13
README.md
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
///
|
||||
|
|
|
|||
|
|
@ -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上下文模板");
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user