diff --git a/.github/GameObject.png b/.github/GameObject.png index 22c5021e..17da8ea1 100644 Binary files a/.github/GameObject.png and b/.github/GameObject.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..9771ffe4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +## v1.0.1 +- Fix running commands for projects with space in path + - closes #8 + - closes #9 +- Fix sample scenes for different screen resolutions + - closes #10 +- Allow parallel prompts \ No newline at end of file diff --git a/CHANGELOG.md.meta b/CHANGELOG.md.meta new file mode 100644 index 00000000..0adeaede --- /dev/null +++ b/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e33a768d6d643a252955048bc00f5c90 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/LLMEditor.cs b/Editor/LLMEditor.cs index 854415b1..e5f925ca 100644 --- a/Editor/LLMEditor.cs +++ b/Editor/LLMEditor.cs @@ -63,8 +63,10 @@ public override void OnInspectorGUI() ShowProgress(llmScript.modelCopyProgress, "Model Copying"); if (llmScript.model != ""){ AddModelSettings(llmScriptSO, false); - AddChatSettings(llmScriptSO); + } else { + EditorGUILayout.Space(); } + AddChatSettings(llmScriptSO); GUI.enabled = true; EditorGUI.EndChangeCheck(); diff --git a/README.md b/README.md index af106aae..ac3b41b4 100644 --- a/README.md +++ b/README.md @@ -168,6 +168,8 @@ The server can be either a LLMUnity server or a standard [llama.cpp server](http ## Options +- `Show/Hide Advanced Options` Toggle to show/hide advanced options from below + #### :computer: Server Settings
@@ -178,10 +180,12 @@ The server can be either a LLMUnity server or a standard [llama.cpp server](http - `Num GPU Layers` number of model layers to offload to the GPU. If set to 0 the GPU is not used. Use a large number i.e. >30 to utilise the GPU as much as possible.
If the user's GPU is not supported, the LLM will fall back to the CPU -- `Debug` select to log the output of the model in the Unity Editor -- `Port` port to run the server - `Stream` select to receive the reply from the model as it is produced (recommended!).
If it is not selected, the full reply from the model is received in one go +- Advanced options: + - `Parallel Prompts` number of prompts that can happen in parallel (default: -1 = number of LLM/LLMClient objects) + - `Debug` select to log the output of the model in the Unity Editor + - `Port` port to run the server #### :hugs: Model Settings - `Download model` click to download the default model (Mistral 7B Instruct) @@ -189,13 +193,14 @@ If it is not selected, the full reply from the model is received in one go - `Load lora` click to load a LORA model in .bin format - `Model` the model being used (inside the Assets/StreamingAssets folder) - `Lora` the LORA model being used (inside the Assets/StreamingAssets folder) -- `Context Size` Size of the prompt context (0 = context size of the model) -- `Batch Size` Batch size for prompt processing (default: 512) -- `Seed` seed for reproducibility. For random results every time select -1 -- `Temperature` LLM temperature, lower values give more deterministic answers -- `Top K` top-k sampling (default: 40, 0 = disabled) -- `Top P` top-p sampling (default: 0.9, 1.0 = disabled) -- `Num Predict` number of tokens to predict (default: 256, -1 = infinity, -2 = until context filled) +- Advanced options: + - `Context Size` Size of the prompt context (0 = context size of the model) + - `Batch Size` Batch size for prompt processing (default: 512) + - `Seed` seed for reproducibility. For random results every time select -1 + - `Temperature` LLM temperature, lower values give more deterministic answers + - `Top K` top-k sampling (default: 40, 0 = disabled) + - `Top P` top-p sampling (default: 0.9, 1.0 = disabled) + - `Num Predict` number of tokens to predict (default: 256, -1 = infinity, -2 = until context filled) #### :left_speech_bubble: Chat Settings - `Player Name` the name of the player diff --git a/Runtime/LLM.cs b/Runtime/LLM.cs index 92947a20..05977223 100644 --- a/Runtime/LLM.cs +++ b/Runtime/LLM.cs @@ -9,12 +9,14 @@ namespace LLMUnity { + [DefaultExecutionOrder(-2)] public class LLM : LLMClient { [HideInInspector] public bool modelHide = true; [Server] public int numThreads = -1; [Server] public int numGPULayers = 0; + [ServerAdvanced] public int parallelPrompts = -1; [ServerAdvanced] public bool debug = false; [Model] public string model = ""; @@ -36,7 +38,7 @@ public class LLM : LLMClient private static float binariesDone = 0; private Process process; private bool serverListening = false; - private static ManualResetEvent serverStarted = new ManualResetEvent(false); + public ManualResetEvent serverStarted = new ManualResetEvent(false); private static string GetAssetPath(string relPath=""){ // Path to store llm server binaries and models @@ -95,7 +97,7 @@ public async void SetLora(string path){ } #endif - new void OnEnable() + new public void OnEnable() { // start the llm server and run the OnEnable of the client StartLLMServer(); @@ -156,16 +158,17 @@ private void StartLLMServer() if (!File.Exists(loraPath)) throw new System.Exception($"File {loraPath} not found!"); } + int slots = parallelPrompts == -1? FindObjectsOfType().Length: parallelPrompts; string binary = server; - string arguments = $" --port {port} -m {modelPath} -c {contextSize} -b {batchSize} --log-disable --nobrowser"; + string arguments = $" --port {port} -m \"{modelPath}\" -c {contextSize} -b {batchSize} --log-disable --nobrowser -np {slots}"; if (numThreads > 0) arguments += $" -t {numThreads}"; if (numGPULayers > 0) arguments += $" -ngl {numGPULayers}"; - if (loraPath != "") arguments += $" --lora {loraPath}"; + if (loraPath != "") arguments += $" --lora \"{loraPath}\""; List<(string, string)> environment = null; if (Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.WindowsPlayer){ // use APE binary directly if not on Windows - arguments = $"{binary} {arguments}"; + arguments = $"\"{binary}\" {arguments}"; binary = SelectApeBinary(); if (numGPULayers <= 0){ // prevent nvcc building if not using GPU @@ -175,7 +178,7 @@ private void StartLLMServer() Debug.Log($"Server command: {binary} {arguments}"); process = LLMUnitySetup.CreateProcess(binary, arguments, CheckIfListening, DebugLogError, environment); // wait for at most 2' - serverStarted.WaitOne(120000); + serverStarted.WaitOne(60000); } public void StopProcess() diff --git a/Runtime/LLMClient.cs b/Runtime/LLMClient.cs index cb890395..1584e46d 100644 --- a/Runtime/LLMClient.cs +++ b/Runtime/LLMClient.cs @@ -13,8 +13,9 @@ public class ClientAdvancedAttribute : PropertyAttribute {} public class ServerAdvancedAttribute : PropertyAttribute {} public class ModelAdvancedAttribute : PropertyAttribute {} + [DefaultExecutionOrder(-1)] public class LLMClient : MonoBehaviour - { + { [HideInInspector] public bool advancedOptions = false; [ClientAdvanced] public string host = "localhost"; diff --git a/Runtime/LLMUnitySetup.cs b/Runtime/LLMUnitySetup.cs index 7460916f..57fcb2bf 100644 --- a/Runtime/LLMUnitySetup.cs +++ b/Runtime/LLMUnitySetup.cs @@ -110,9 +110,10 @@ public static async Task DownloadFile( if (executable && Application.platform != RuntimePlatform.WindowsEditor && Application.platform != RuntimePlatform.WindowsPlayer){ // macOS/Linux: Set executable permissions using chmod - RunProcess("chmod", "+x " + savePath); + RunProcess("chmod", $"+x \"{savePath}\""); } AssetDatabase.StopAssetEditing(); + Debug.Log($"Download complete!"); } progresscallback(1f); callback?.Invoke(savePath); diff --git a/Samples~/ChatBot/Bubble.cs b/Samples~/ChatBot/Bubble.cs index 7f8e7471..1523b55d 100644 --- a/Samples~/ChatBot/Bubble.cs +++ b/Samples~/ChatBot/Bubble.cs @@ -78,12 +78,15 @@ void SetBubblePosition(RectTransform bubbleRectTransform, RectTransform imageRec bubbleRectTransform.pivot = new Vector2(bubbleUI.leftPosition, bubbleUI.bottomPosition); bubbleRectTransform.anchorMin = new Vector2(bubbleUI.leftPosition, bubbleUI.bottomPosition); bubbleRectTransform.anchorMax = new Vector2(bubbleUI.leftPosition, bubbleUI.bottomPosition); + bubbleRectTransform.localScale = Vector3.one; Vector2 anchoredPosition = new Vector2(bubbleUI.bubbleOffset + bubbleUI.textPadding, bubbleUI.bubbleOffset + bubbleUI.textPadding); if (bubbleUI.leftPosition == 1) anchoredPosition.x *= -1; if (bubbleUI.bottomPosition == 1) anchoredPosition.y *= -1; bubbleRectTransform.anchoredPosition = anchoredPosition; - bubbleRectTransform.sizeDelta = new Vector2(600 - 2*bubbleUI.textPadding, bubbleRectTransform.sizeDelta.y - 2*bubbleUI.textPadding); + float width = bubbleUI.bubbleWidth == -1? bubbleRectTransform.sizeDelta.x: bubbleUI.bubbleWidth; + float height = bubbleUI.bubbleHeight == -1? bubbleRectTransform.sizeDelta.y: bubbleUI.bubbleHeight; + bubbleRectTransform.sizeDelta = new Vector2(width-2*bubbleUI.textPadding, height-2*bubbleUI.textPadding); SyncParentRectTransform(imageRectTransform); imageRectTransform.offsetMin = new Vector2(-bubbleUI.textPadding, -bubbleUI.textPadding); imageRectTransform.offsetMax = new Vector2(bubbleUI.textPadding, bubbleUI.textPadding); @@ -154,6 +157,7 @@ GameObject CreatePlaceholderObject(Transform parent, RectTransform textRectTrans RectTransform placeholderRectTransform = placeholderObject.GetComponent(); placeholderRectTransform.sizeDelta = textRectTransform.sizeDelta; placeholderRectTransform.anchoredPosition = textRectTransform.anchoredPosition; + placeholderRectTransform.localScale = Vector3.one; SyncParentRectTransform(placeholderRectTransform); return placeholderObject; } @@ -168,7 +172,9 @@ GameObject CreateInputFieldObject(Transform parent, Text textObject, Text placeh inputField.lineType = InputField.LineType.MultiLineSubmit; inputField.shouldHideMobileInput = false; inputField.shouldActivateOnSelect = true; - SyncParentRectTransform(inputFieldObject.GetComponent()); + RectTransform inputFieldRect = inputFieldObject.GetComponent(); + inputFieldRect.localScale = Vector3.one; + SyncParentRectTransform(inputFieldRect); return inputFieldObject; } diff --git a/Samples~/ChatBot/ChatBot.cs b/Samples~/ChatBot/ChatBot.cs index 2951595f..23daf6a2 100644 --- a/Samples~/ChatBot/ChatBot.cs +++ b/Samples~/ChatBot/ChatBot.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Threading.Tasks; using LLMUnity; -using TMPro; namespace LLMUnitySamples { @@ -117,7 +116,7 @@ public void UpdateBubblePositions() for (int i = chatBubbles.Count - 1; i >= 0; i--) { Bubble bubble = chatBubbles[i]; RectTransform childRect = bubble.GetRectTransform(); - childRect.position = new Vector2(childRect.position.x, y); + childRect.anchoredPosition = new Vector2(childRect.anchoredPosition.x, y); // last bubble outside the container if (y > containerHeight && lastBubbleOutsideFOV == -1){ diff --git a/Samples~/ChatBot/Scene.unity b/Samples~/ChatBot/Scene.unity index 363a0755..ccca69d8 100644 --- a/Samples~/ChatBot/Scene.unity +++ b/Samples~/ChatBot/Scene.unity @@ -444,6 +444,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a50e3140c3ecaaf1c848dbf141cc2074, type: 3} m_Name: m_EditorClassIdentifier: + advancedOptions: 0 host: localhost port: 13333 stream: 1 @@ -459,6 +460,7 @@ MonoBehaviour: modelHide: 1 numThreads: -1 numGPULayers: 0 + parallelPrompts: -1 debug: 0 model: lora: @@ -834,10 +836,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: - m_UiScaleMode: 0 + m_UiScaleMode: 1 m_ReferencePixelsPerUnit: 100 m_ScaleFactor: 1 - m_ReferenceResolution: {x: 1550, y: 600} + m_ReferenceResolution: {x: 1280, y: 720} m_ScreenMatchMode: 0 m_MatchWidthOrHeight: 1 m_PhysicalUnit: 3 diff --git a/Samples~/ServerClient/Scene.unity b/Samples~/ServerClient/Scene.unity index 720b6c4e..bc5daf80 100644 --- a/Samples~/ServerClient/Scene.unity +++ b/Samples~/ServerClient/Scene.unity @@ -171,10 +171,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: - m_UiScaleMode: 0 + m_UiScaleMode: 1 m_ReferencePixelsPerUnit: 100 m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} + m_ReferenceResolution: {x: 1280, y: 720} m_ScreenMatchMode: 0 m_MatchWidthOrHeight: 0 m_PhysicalUnit: 3 @@ -291,7 +291,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 2 m_BestFit: 0 m_MinSize: 10 @@ -445,7 +445,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -598,7 +598,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -661,7 +661,7 @@ GameObject: - component: {fileID: 856480604} - component: {fileID: 856480603} m_Layer: 5 - m_Name: Text (Legacy) + m_Name: Player title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -683,7 +683,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 21.000015, y: 150} + m_AnchoredPosition: {x: 0, y: 160} m_SizeDelta: {x: 160, y: 30} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &856480603 @@ -788,7 +788,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -926,7 +926,7 @@ GameObject: - component: {fileID: 921839200} - component: {fileID: 921839199} m_Layer: 5 - m_Name: AIImage2 + m_Name: AI 2 Image m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -947,10 +947,10 @@ RectTransform: - {fileID: 728022959} m_Father: {fileID: 158550917} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 249, y: -110.69} - m_SizeDelta: {x: -781.57996, y: -493.27884} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 200, y: -110} + m_SizeDelta: {x: 350, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &921839199 MonoBehaviour: @@ -1027,8 +1027,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 249, y: 87.002} - m_SizeDelta: {x: 294.42, y: 95.9957} + m_AnchoredPosition: {x: 200, y: 90} + m_SizeDelta: {x: 350, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &954556175 MonoBehaviour: @@ -1215,6 +1215,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a50e3140c3ecaaf1c848dbf141cc2074, type: 3} m_Name: m_EditorClassIdentifier: + advancedOptions: 0 host: localhost port: 13333 stream: 1 @@ -1224,12 +1225,13 @@ MonoBehaviour: topP: 0.9 nPredict: 256 playerName: Human - AIName: Assistant + AIName: Adam prompt: A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions. modelHide: 1 numThreads: -1 numGPULayers: 0 + parallelPrompts: -1 debug: 0 model: lora: @@ -1312,10 +1314,10 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 2 m_BestFit: 0 - m_MinSize: 10 + m_MinSize: 1 m_MaxSize: 40 m_Alignment: 0 m_AlignByGeometry: 0 @@ -1344,7 +1346,7 @@ GameObject: - component: {fileID: 1342801407} - component: {fileID: 1342801406} m_Layer: 5 - m_Name: Text (Legacy) (1) + m_Name: AI 1 title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1366,7 +1368,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -213, y: -46.061} + m_AnchoredPosition: {x: -200, y: -45} m_SizeDelta: {x: 160, y: 29.6652} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1342801406 @@ -1423,7 +1425,7 @@ GameObject: - component: {fileID: 1448762427} - component: {fileID: 1448762426} m_Layer: 5 - m_Name: Text (Legacy) (2) + m_Name: AI 2 title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1445,7 +1447,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 249, y: -45.997} + m_AnchoredPosition: {x: 200, y: -45} m_SizeDelta: {x: 160, y: 29.6652} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1448762426 @@ -1519,6 +1521,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e95e88cdd1b0a159692667660a065473, type: 3} m_Name: m_EditorClassIdentifier: + advancedOptions: 0 host: localhost port: 13333 stream: 1 @@ -1528,10 +1531,9 @@ MonoBehaviour: topP: 0.9 nPredict: 256 playerName: Human - AIName: Assistant + AIName: Eve prompt: A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the human's questions. - The assistant name is Helen. --- !u!4 &1493015759 Transform: m_ObjectHideFlags: 0 @@ -1606,7 +1608,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -1663,8 +1665,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -206.21, y: 87.002} - m_SizeDelta: {x: 294.42, y: 95.9957} + m_AnchoredPosition: {x: -200, y: 90} + m_SizeDelta: {x: 350, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1966107897 MonoBehaviour: @@ -1852,7 +1854,7 @@ GameObject: - component: {fileID: 2091685449} - component: {fileID: 2091685448} m_Layer: 5 - m_Name: AIImage1 + m_Name: AI 1 Image m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -1873,10 +1875,10 @@ RectTransform: - {fileID: 887085509} m_Father: {fileID: 158550917} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -206.21002, y: -110.75391} - m_SizeDelta: {x: -781.57996, y: -493.27884} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -200, y: -110} + m_SizeDelta: {x: 350, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2091685448 MonoBehaviour: diff --git a/Samples~/SimpleInteraction/Scene.unity b/Samples~/SimpleInteraction/Scene.unity index 17cdaaa9..5f4d945c 100644 --- a/Samples~/SimpleInteraction/Scene.unity +++ b/Samples~/SimpleInteraction/Scene.unity @@ -218,10 +218,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} m_Name: m_EditorClassIdentifier: - m_UiScaleMode: 0 + m_UiScaleMode: 1 m_ReferencePixelsPerUnit: 100 m_ScaleFactor: 1 - m_ReferenceResolution: {x: 800, y: 600} + m_ReferenceResolution: {x: 1280, y: 720} m_ScreenMatchMode: 0 m_MatchWidthOrHeight: 0 m_PhysicalUnit: 3 @@ -455,7 +455,7 @@ GameObject: - component: {fileID: 856480604} - component: {fileID: 856480603} m_Layer: 5 - m_Name: Text (Legacy) + m_Name: Player title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -582,7 +582,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -737,6 +737,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: a50e3140c3ecaaf1c848dbf141cc2074, type: 3} m_Name: m_EditorClassIdentifier: + advancedOptions: 0 host: localhost port: 13333 stream: 1 @@ -752,6 +753,7 @@ MonoBehaviour: modelHide: 1 numThreads: -1 numGPULayers: 0 + parallelPrompts: -1 debug: 0 model: lora: @@ -834,7 +836,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 2 m_BestFit: 0 m_MinSize: 10 @@ -866,7 +868,7 @@ GameObject: - component: {fileID: 1342801407} - component: {fileID: 1342801406} m_Layer: 5 - m_Name: Text (Legacy) (1) + m_Name: AI title m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -992,7 +994,7 @@ MonoBehaviour: m_Calls: [] m_FontData: m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 14 + m_FontSize: 16 m_FontStyle: 0 m_BestFit: 0 m_MinSize: 10 @@ -1049,8 +1051,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 10.375999, y: 87.00699} - m_SizeDelta: {x: 294.42, y: 95.9957} + m_AnchoredPosition: {x: 10.375977, y: 87.00699} + m_SizeDelta: {x: 400, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1966107897 MonoBehaviour: @@ -1259,10 +1261,10 @@ RectTransform: - {fileID: 887085509} m_Father: {fileID: 158550917} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 10.375977, y: -110.75391} - m_SizeDelta: {x: -781.57996, y: -493.27884} + m_SizeDelta: {x: 400, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2091685448 MonoBehaviour: diff --git a/VERSION b/VERSION new file mode 100644 index 00000000..7dea76ed --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +1.0.1 diff --git a/VERSION.meta b/VERSION.meta new file mode 100644 index 00000000..9a6d4847 --- /dev/null +++ b/VERSION.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e73550046e9b28a4286e228a75e6f91c +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json index f3df500f..c2b51889 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ai.undream.llmunity", - "version": "1.0.0", + "version": "1.0.1", "displayName": "LLMUnity", "description": "LLMUnity allows to run and distribute LLM models in the Unity engine.", "unity": "2022.3", @@ -42,4 +42,4 @@ "email": "antonis@undream.ai", "url": "https://undream.ai" } -} \ No newline at end of file +}