fix role
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using ChatBot.Models.Dto;
|
using ChatBot.Models.Dto;
|
||||||
|
using OllamaSharp.Models.Chat;
|
||||||
|
|
||||||
namespace ChatBot.Models
|
namespace ChatBot.Models
|
||||||
{
|
{
|
||||||
@@ -64,9 +65,11 @@ namespace ChatBot.Models
|
|||||||
if (_messageHistory.Count > MaxHistoryLength)
|
if (_messageHistory.Count > MaxHistoryLength)
|
||||||
{
|
{
|
||||||
// Keep system message if it exists, then keep the most recent messages
|
// Keep system message if it exists, then keep the most recent messages
|
||||||
var systemMessage = _messageHistory.FirstOrDefault(m => m.Role == "system");
|
var systemMessage = _messageHistory.FirstOrDefault(m =>
|
||||||
|
m.Role == ChatRole.System
|
||||||
|
);
|
||||||
var recentMessages = _messageHistory
|
var recentMessages = _messageHistory
|
||||||
.Where(m => m.Role != "system")
|
.Where(m => m.Role != ChatRole.System)
|
||||||
.TakeLast(MaxHistoryLength - (systemMessage != null ? 1 : 0))
|
.TakeLast(MaxHistoryLength - (systemMessage != null ? 1 : 0))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
@@ -87,7 +90,7 @@ namespace ChatBot.Models
|
|||||||
{
|
{
|
||||||
var message = new ChatMessage
|
var message = new ChatMessage
|
||||||
{
|
{
|
||||||
Role = "user",
|
Role = ChatRole.User,
|
||||||
Content = ChatType == "private" ? content : $"{username}: {content}",
|
Content = ChatType == "private" ? content : $"{username}: {content}",
|
||||||
};
|
};
|
||||||
AddMessage(message);
|
AddMessage(message);
|
||||||
@@ -98,7 +101,7 @@ namespace ChatBot.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void AddAssistantMessage(string content)
|
public void AddAssistantMessage(string content)
|
||||||
{
|
{
|
||||||
var message = new ChatMessage { Role = "assistant", Content = content };
|
var message = new ChatMessage { Role = ChatRole.Assistant, Content = content };
|
||||||
AddMessage(message);
|
AddMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using OllamaSharp.Models.Chat;
|
||||||
|
|
||||||
namespace ChatBot.Models.Dto
|
namespace ChatBot.Models.Dto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -13,6 +15,6 @@ namespace ChatBot.Models.Dto
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The role of the message author (system, user, assistant)
|
/// The role of the message author (system, user, assistant)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public required string Role { get; set; }
|
public required ChatRole Role { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using ChatBot.Common.Constants;
|
using System.Text;
|
||||||
|
using ChatBot.Common.Constants;
|
||||||
using ChatBot.Models.Dto;
|
using ChatBot.Models.Dto;
|
||||||
using ChatBot.Services.Interfaces;
|
using ChatBot.Services.Interfaces;
|
||||||
using OllamaSharp.Models.Chat;
|
using OllamaSharp.Models.Chat;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace ChatBot.Services
|
namespace ChatBot.Services
|
||||||
{
|
{
|
||||||
@@ -65,9 +65,7 @@ namespace ChatBot.Services
|
|||||||
{
|
{
|
||||||
_client.SelectedModel = model;
|
_client.SelectedModel = model;
|
||||||
|
|
||||||
var chatMessages = messages
|
var chatMessages = messages.Select(m => new Message(m.Role, m.Content)).ToList();
|
||||||
.Select(m => new Message(ConvertRole(m.Role), m.Content))
|
|
||||||
.ToList();
|
|
||||||
|
|
||||||
var chatRequest = new ChatRequest { Messages = chatMessages, Stream = true };
|
var chatRequest = new ChatRequest { Messages = chatMessages, Stream = true };
|
||||||
var response = new StringBuilder();
|
var response = new StringBuilder();
|
||||||
@@ -86,19 +84,5 @@ namespace ChatBot.Services
|
|||||||
|
|
||||||
return response.ToString();
|
return response.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Convert string role to OllamaSharp ChatRole
|
|
||||||
/// </summary>
|
|
||||||
private static ChatRole ConvertRole(string role)
|
|
||||||
{
|
|
||||||
return role.ToLower() switch
|
|
||||||
{
|
|
||||||
ChatRoles.System => ChatRole.System,
|
|
||||||
ChatRoles.User => ChatRole.User,
|
|
||||||
ChatRoles.Assistant => ChatRole.Assistant,
|
|
||||||
_ => ChatRole.User,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using ChatBot.Services.Telegram.Interfaces;
|
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using ChatBot.Services.Telegram.Interfaces;
|
||||||
|
|
||||||
namespace ChatBot.Services.Telegram.Commands
|
namespace ChatBot.Services.Telegram.Commands
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,6 +33,6 @@
|
|||||||
},
|
},
|
||||||
"Ollama": {
|
"Ollama": {
|
||||||
"Url": "http://10.10.1.202:11434",
|
"Url": "http://10.10.1.202:11434",
|
||||||
"DefaultModel": "llama3chat"
|
"DefaultModel": "llama3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user