using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LLama.Examples.Old { public class OldTestRunner { public static void Run() { Console.WriteLine("================LLamaSharp Examples (Old Version)==================\n"); Console.WriteLine("Please input a number to choose an example to run:"); Console.WriteLine("0: Run a chat session."); Console.WriteLine("1: Run a LLamaModel to chat."); Console.WriteLine("2: Quantize a model."); Console.WriteLine("3: Get the embeddings of a message."); Console.WriteLine("4: Run a LLamaModel with instruct mode."); Console.WriteLine("5: Load and save state of LLamaModel."); while (true) { Console.Write("\nYour choice: "); int choice = int.Parse(Console.ReadLine()); if (choice == 0) { Console.Write("Please input your model path: "); var modelPath = Console.ReadLine(); ChatSession chat = new(modelPath, "Assets/chat-with-bob.txt", new string[] { "User:" }); chat.Run(); } else if (choice == 1) { Console.Write("Please input your model path: "); var modelPath = Console.ReadLine(); ChatWithLLamaModel chat = new(modelPath, "Assets/chat-with-bob.txt", new string[] { "User:" }); chat.Run(); } else if (choice == 2) // quantization { Console.Write("Please input your original model path: "); var inputPath = Console.ReadLine(); Console.Write("Please input your output model path: "); var outputPath = Console.ReadLine(); Console.Write("Please input the quantize type (one of q4_0, q4_1, q5_0, q5_1, q8_0): "); var quantizeType = Console.ReadLine(); Quantize q = new Quantize(); q.Run(inputPath, outputPath, quantizeType); } else if (choice == 3) // get the embeddings only { Console.Write("Please input your model path: "); var modelPath = Console.ReadLine(); GetEmbeddings em = new GetEmbeddings(modelPath); Console.Write("Please input the text: "); var text = Console.ReadLine(); em.Run(text); } else if (choice == 4) // instruct mode { Console.Write("Please input your model path: "); var modelPath = Console.ReadLine(); InstructMode im = new InstructMode(modelPath, "Assets/alpaca.txt"); Console.WriteLine("Here's a simple example for using instruct mode. You can input some words and let AI " + "complete it for you. For example: Write a story about a fox that wants to make friend with human. No less than 200 words."); im.Run(); } else if (choice == 5) // load and save state { Console.Write("Please input your model path: "); var modelPath = Console.ReadLine(); Console.Write("Please input your state file path: "); var statePath = Console.ReadLine(); SaveAndLoadState sals = new(modelPath, File.ReadAllText(@"D:\development\llama\llama.cpp\prompts\alpaca.txt")); sals.Run("Write a story about a fox that wants to make friend with human. No less than 200 words."); sals.SaveState(statePath); sals.Dispose(); GC.Collect(); GC.WaitForPendingFinalizers(); // create a new model to load the state. SaveAndLoadState sals2 = new(modelPath, ""); sals2.LoadState(statePath); sals2.Run("Tell me more things about the fox in the story you told me."); } else { Console.WriteLine("Cannot parse your choice. Please select again."); continue; } break; } } } }