58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
using LLama.Common;
|
|
|
|
namespace LLama.Examples.Examples;
|
|
|
|
public class ChatSessionWithRoleName
|
|
{
|
|
public static async Task Run()
|
|
{
|
|
string modelPath = UserSettings.GetModelPath();
|
|
|
|
var parameters = new ModelParams(modelPath)
|
|
{
|
|
ContextSize = 1024,
|
|
Seed = 1337,
|
|
GpuLayerCount = 5
|
|
};
|
|
using var model = LLamaWeights.LoadFromFile(parameters);
|
|
using var context = model.CreateContext(parameters);
|
|
var executor = new InteractiveExecutor(context);
|
|
|
|
var chatHistoryJson = File.ReadAllText("Assets/chat-with-bob.json");
|
|
ChatHistory chatHistory = ChatHistory.FromJson(chatHistoryJson) ?? new ChatHistory();
|
|
|
|
ChatSession session = new(executor, chatHistory);
|
|
|
|
InferenceParams inferenceParams = new InferenceParams()
|
|
{
|
|
Temperature = 0.9f,
|
|
AntiPrompts = new List<string> { "User:" }
|
|
};
|
|
|
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
|
Console.WriteLine("The chat session has started.");
|
|
|
|
// show the prompt
|
|
Console.ForegroundColor = ConsoleColor.Green;
|
|
string userInput = Console.ReadLine() ?? "";
|
|
|
|
while (userInput != "exit")
|
|
{
|
|
await foreach (
|
|
var text
|
|
in session.ChatAsync(
|
|
new ChatHistory.Message(AuthorRole.User, userInput),
|
|
inferenceParams))
|
|
{
|
|
Console.ForegroundColor = ConsoleColor.White;
|
|
Console.Write(text);
|
|
}
|
|
|
|
Console.ForegroundColor = ConsoleColor.Green;
|
|
userInput = Console.ReadLine() ?? "";
|
|
|
|
Console.ForegroundColor = ConsoleColor.White;
|
|
}
|
|
}
|
|
}
|