Bubble-Blower/addons/ai_assistant_hub/ai_conversation.gd
Marvin Dalheimer 0ab65e1df6
Init
2025-01-25 21:40:19 +01:00

57 lines
1.2 KiB
GDScript

@tool
class_name AIConversation
var _chat_history:= []
var _system_msg: String
func set_system_message(message:String) -> void:
_system_msg = message
# If your models don't mark the code with ```gdscript, the plugin won't wort well,
# consider giving it an instruction like the one in the comment below, either in the
# _system_msg or as part of the bot initial request.
#
#_system_msg = "%s. Any code you write you should identify with the programming language, for example for GDScript you must use prefix \"```gdscript\" and suffix \"```\"." % message
#
func add_user_prompt(prompt:String) -> void:
_chat_history.append(
{
"role": "user",
"content": prompt
}
)
func add_assistant_response(response:String) -> void:
_chat_history.append(
{
"role": "assistant",
"content": response
}
)
func build() -> Array:
var messages := []
messages.append(
{
"role": "system",
"content": _system_msg
}
)
messages.append_array(_chat_history)
return messages
func forget_last_prompt() -> void:
_chat_history.pop_back()
func clone_chat() -> Array:
return _chat_history.duplicate(true)
func overwrite_chat(new_chat:Array) -> void:
_chat_history = new_chat