Skip to content

Commit

Permalink
minor UI changes, plugin now properly adds/removes from bottom bar
Browse files Browse the repository at this point in the history
  • Loading branch information
adammikulis committed May 9, 2024
1 parent 4d1978f commit cc78da3
Show file tree
Hide file tree
Showing 11 changed files with 97 additions and 90 deletions.
10 changes: 5 additions & 5 deletions MindGame.csproj
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<Project Sdk="Godot.NET.Sdk/4.3.0-dev.5">
<Project Sdk="Godot.NET.Sdk/4.3.0-dev.6">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<RootNamespace>MindGame</RootNamespace>
<Title>MindGame</Title>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<RootNamespace>MindGame</RootNamespace>
<Title>MindGame</Title>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="LLamaSharp" Version="0.11.2" />
<PackageReference Include="LLamaSharp.Backend.Cuda12" Version="0.11.2" />
</ItemGroup>
<ItemGroup>
<TrimmerRootAssembly Include="GodotSharp" />
<TrimmerRootAssembly Include="GodotSharp" />
<TrimmerRootAssembly Include="$(TargetName)" />
</ItemGroup>
</Project>
12 changes: 0 additions & 12 deletions MindGame.csproj.old

This file was deleted.

4 changes: 4 additions & 0 deletions addons/mind_game/assets/themes/background_panel_theme.tres
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://di4hk4lax1dfs"]

[resource]
bg_color = Color(0.308777, 0.403237, 0.472183, 1)
74 changes: 38 additions & 36 deletions addons/mind_game/controllers/MindManagerController.tscn
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
[gd_scene load_steps=9 format=3 uid="uid://cfvr575wuu42a"]
[gd_scene load_steps=11 format=3 uid="uid://cfvr575wuu42a"]

[ext_resource type="Script" path="res://addons/mind_game/scripts/controllers/MindManagerController.cs" id="1_h6wpt"]
[ext_resource type="Theme" uid="uid://brptib3mp8h1o" path="res://addons/mind_game/assets/themes/config_header_theme.tres" id="2_rmdwv"]
[ext_resource type="Texture2D" uid="uid://dnp0lvxevsc4m" path="res://addons/mind_game/assets/game_icons/PNG/White/1x/plus.png" id="3_smjaw"]
[ext_resource type="Texture2D" uid="uid://5ga0x3yawju4" path="res://addons/mind_game/assets/game_icons/PNG/White/1x/trashcan.png" id="4_gqbp7"]

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5gu4u"]
bg_color = Color(0.318487, 0.312277, 0.317023, 1)

[sub_resource type="LabelSettings" id="LabelSettings_osrau"]
font_size = 24

[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pcrja"]
bg_color = Color(0.419813, 0.419813, 0.419813, 1)

Expand Down Expand Up @@ -36,6 +42,7 @@ anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_5gu4u")

[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
Expand All @@ -48,6 +55,7 @@ layout_mode = 2
size_flags_horizontal = 3
theme = ExtResource("2_rmdwv")
text = "Model Manager"
label_settings = SubResource("LabelSettings_osrau")
horizontal_alignment = 1

[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer"]
Expand Down Expand Up @@ -92,73 +100,67 @@ unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3

[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"]
[node name="AddDeleteConfigHBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"]
layout_mode = 2

[node name="AddNewConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/HBoxContainer"]
[node name="AddNewConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/AddDeleteConfigHBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
icon = ExtResource("3_smjaw")
icon_alignment = 1

[node name="DeleteConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/HBoxContainer"]
[node name="DeleteConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/AddDeleteConfigHBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
icon = ExtResource("4_gqbp7")
icon_alignment = 1

[node name="SavedConfigsMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"]
[node name="BackLoadUnloadBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 5
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5

[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer"]
[node name="BackButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
size_flags_horizontal = 3
text = "Back"
icon_alignment = 1

[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer"]
[node name="LoadConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
horizontal_scroll_mode = 0
size_flags_horizontal = 3
text = "Load Config"

[node name="SavedConfigsItemList" type="ItemList" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer/ScrollContainer"]
[node name="UnloadConfigButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/NewSaveDeleteMarginContainer/VBoxContainer/BackLoadUnloadBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Unload Config"

[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"]
[node name="SavedConfigsMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/margin_left = 5
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5

[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer"]
layout_mode = 2

[node name="BackButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"]
unique_name_in_owner = true
[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Back"
icon_alignment = 1
size_flags_vertical = 3

[node name="LoadModelsButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"]
unique_name_in_owner = true
[node name="ScrollContainer" type="ScrollContainer" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Load Model(s)"
horizontal_scroll_mode = 0

[node name="UnloadModelsButton" type="Button" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/MarginContainer/HBoxContainer"]
[node name="SavedConfigsItemList" type="ItemList" parent="PanelContainer/VBoxContainer/HBoxContainer/SavedConfigsMarginContainer/PanelContainer/SavedConfigsVBoxContainer/SavedConfigsMarginContainer/PanelContainer/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Unload Model(s)"
size_flags_vertical = 3
item_count = 1
item_0/text = "phi3"

[node name="ModelConfigMarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
Expand Down Expand Up @@ -210,7 +212,7 @@ columns = 3
auto_translate_mode = 1
layout_mode = 2
size_flags_vertical = 8
text = "Chat Context Size:"
text = "Context Size:"

[node name="ChatContextSizeHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/ChatModelPanelContainer/MarginContainer/ChatModelVBoxContainer/ChatGridContainer"]
unique_name_in_owner = true
Expand All @@ -235,7 +237,7 @@ horizontal_alignment = 1
auto_translate_mode = 1
layout_mode = 2
size_flags_vertical = 8
text = "Num Layers to Load to GPU:"
text = "Num GPU Layers:"

[node name="ChatModelGpuLayerCountHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/ChatModelPanelContainer/MarginContainer/ChatModelVBoxContainer/ChatGridContainer"]
unique_name_in_owner = true
Expand Down Expand Up @@ -336,7 +338,7 @@ columns = 3
auto_translate_mode = 1
layout_mode = 2
size_flags_vertical = 8
text = "Embedder Context Size:"
text = "Context Size:"

[node name="EmbedderContextSizeHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/EmbedderModelPanelContainer/MarginContainer/EmbeddingModelVBoxContainer/EmbedderGridContainer"]
unique_name_in_owner = true
Expand All @@ -361,7 +363,7 @@ horizontal_alignment = 1
auto_translate_mode = 1
layout_mode = 2
size_flags_vertical = 8
text = "Num Layers to Load to GPU:"
text = "Num GPU Layers:"

[node name="EmbedderGpuLayerCountHSlider" type="HSlider" parent="PanelContainer/VBoxContainer/HBoxContainer/ModelConfigMarginContainer/ModelConfigVBoxContainer/EmbedderModelPanelContainer/MarginContainer/EmbeddingModelVBoxContainer/EmbedderGridContainer"]
unique_name_in_owner = true
Expand Down
35 changes: 23 additions & 12 deletions addons/mind_game/controllers/SingleAgentChatController.tscn
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[gd_scene load_steps=4 format=3 uid="uid://bew4jlihie8s0"]
[gd_scene load_steps=5 format=3 uid="uid://bew4jlihie8s0"]

[ext_resource type="Script" path="res://addons/mind_game/scripts/controllers/SingleAgentChatController.cs" id="1_48rj6"]
[ext_resource type="Script" path="res://addons/mind_game/scripts/model_classes/MindAgent.cs" id="2_4a0p2"]
[ext_resource type="PackedScene" uid="uid://cfvr575wuu42a" path="res://addons/mind_game/controllers/MindManagerController.tscn" id="3_7pvjl"]
[ext_resource type="StyleBox" uid="uid://di4hk4lax1dfs" path="res://addons/mind_game/assets/themes/background_panel_theme.tres" id="4_rgt6s"]

[node name="SingleAgentChatController" type="Control"]
layout_mode = 3
Expand All @@ -13,41 +14,51 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_48rj6")

[node name="VBoxContainer" type="VBoxContainer" parent="."]
[node name="MindAgent" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("2_4a0p2")

[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_styles/panel = ExtResource("4_rgt6s")

[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"]
layout_mode = 2
theme_override_constants/margin_left = 5
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5

[node name="ModelOutputRichTextLabel" type="RichTextLabel" parent="VBoxContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer"]
layout_mode = 2

[node name="ModelOutputRichTextLabel" type="RichTextLabel" parent="PanelContainer/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
scroll_following = true

[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2

[node name="ModelInputLineEdit" type="LineEdit" parent="VBoxContainer/HBoxContainer"]
[node name="ModelInputLineEdit" type="LineEdit" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Type your prompt and hit Enter"
placeholder_text = "Load a model to chat!"

[node name="ConfigAndLoadModelsButton" type="Button" parent="VBoxContainer/HBoxContainer"]
[node name="ConfigAndLoadModelsButton" type="Button" parent="PanelContainer/MarginContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Config and
Load Models"

[node name="MindAgent" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("2_4a0p2")

[node name="MindManagerController" parent="." instance=ExtResource("3_7pvjl")]
unique_name_in_owner = true
visible = false
layout_mode = 1
2 changes: 1 addition & 1 deletion addons/mind_game/plugin.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
name="Mind Game"
description="An editor tool to run GPT models locally."
author="Adam Mikulis"
version="0.2.0-dev"
version="0.2.0"
script="scripts/MindGameEditorPlugin.cs"
6 changes: 3 additions & 3 deletions addons/mind_game/scripts/MindGameEditorPlugin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public override void _EnterTree()
{
PackedScene singleAgentChatControllerScene = (PackedScene)GD.Load("res://addons/mind_game/controllers/SingleAgentChatController.tscn");
singleAgentChatScene = singleAgentChatControllerScene.Instantiate<Control>();
// AddControlToBottomPanel(singleAgentChatScene, "Mind Game");
AddControlToBottomPanel(singleAgentChatScene, "Mind Game");

AddCustomType("MindAgent", "Node", mindAgentScript, mindAgentIcon);

Expand All @@ -45,8 +45,8 @@ public override void _Process(double delta)

public override void _ExitTree()
{
// RemoveControlFromBottomPanel(editorInterface);
// editorInterface.QueueFree();
RemoveControlFromBottomPanel(singleAgentChatScene);
singleAgentChatScene.QueueFree();
}
}
#endif
16 changes: 8 additions & 8 deletions addons/mind_game/scripts/controllers/MindManagerController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public partial class MindManagerController : Control
private string modelConfigListPath = "res://addons/mind_game/model_configs.tres";

// UI elements
private Button addNewConfigButton, deleteConfigButton, selectChatPathButton, clearChatPathButton, selectEmbedderPathButton, clearEmbedderPathButton, selectClipPathButton, clearClipPathButton, backButton, loadModelsButton, unloadModelsButton;
private Button addNewConfigButton, deleteConfigButton, selectChatPathButton, clearChatPathButton, selectEmbedderPathButton, clearEmbedderPathButton, selectClipPathButton, clearClipPathButton, backButton, loadConfigButton, unloadConfigButton;
private Label chatContextSizeLabel, chatGpuLayerCountLabel, embedderContextSizeLabel, embedderGpuLayerCountLabel, chatCurrentModelPathLabel, embedderCurrentModelPathLabel, clipCurrentModelPathLabel;
private FileDialog selectChatPathFileDialog, selectClipPathFileDialog, selectEmbedderPathFileDialog;
private HSlider chatContextSizeHSlider, chatGpuLayerCountHSlider, embedderContextSizeHSlider, embedderGpuLayerCountHSlider;
Expand Down Expand Up @@ -91,8 +91,8 @@ private void InitializeNodeRefs()
addNewConfigButton = GetNode<Button>("%AddNewConfigButton");
deleteConfigButton = GetNode<Button>("%DeleteConfigButton");
backButton = GetNode<Button>("%BackButton");
loadModelsButton = GetNode<Button>("%LoadModelsButton");
unloadModelsButton = GetNode<Button>("%UnloadModelsButton");
loadConfigButton = GetNode<Button>("%LoadConfigButton");
unloadConfigButton = GetNode<Button>("%UnloadConfigButton");

// Chat param nodes
chatContextSizeHSlider = GetNode<HSlider>("%ChatContextSizeHSlider");
Expand Down Expand Up @@ -137,8 +137,8 @@ private void InitializeSignals()
addNewConfigButton.Pressed += OnAddNewConfigPressed;
deleteConfigButton.Pressed += OnDeleteConfigPressed;
backButton.Pressed += OnBackPressed;
loadModelsButton.Pressed += OnLoadModelsPressed;
unloadModelsButton.Pressed += OnUnloadModelsPressed;
loadConfigButton.Pressed += OnLoadConfigPressed;
unloadConfigButton.Pressed += OnUnloadConfigPressed;

clearChatPathButton.Pressed += OnClearChatPathPressed;
clearClipPathButton.Pressed += OnClearClipPathPressed;
Expand All @@ -162,12 +162,12 @@ private void InitializeSignals()

}

private void OnUnloadModelsPressed()
private async void OnUnloadConfigPressed()
{
throw new NotImplementedException();
await mm.DisposeExecutorAsync();
}

private async void OnLoadModelsPressed()
private async void OnLoadConfigPressed()
{
if (config != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

namespace MindGame
{
[Tool]
public partial class SingleAgentChatController : Control
{
private MindGame.MindManager mindManager;
Expand Down Expand Up @@ -52,7 +53,15 @@ private async void OnModelInputTextSubmitted(string newText)

private void OnChatSessionStatusUpdate(bool isLoaded)
{
modelOutputRichTextLabel.Text += $"Chat session loaded: {isLoaded}";
modelInputLineEdit.Editable = isLoaded;
if (isLoaded)
{
modelInputLineEdit.PlaceholderText = $"Type prompt and hit Enter";
}
else
{
modelInputLineEdit.PlaceholderText = $"Load a model to chat!";
}
}
}
}
Loading

0 comments on commit cc78da3

Please sign in to comment.