Bubble-Blower/addons/ai_assistant_hub/llm_apis/llm_interface.gd

36 lines
948 B
GDScript3
Raw Normal View History

2025-01-25 21:40:19 +01:00
@tool
class_name LLMInterface
# The intention of this class is to serve as a base class for any LLM API
# to be implemented in this plugin. It is mainly to have a clear definition
# of what properties or functions should be used by other classes.
const INVALID_RESPONSE := "[INVALID_RESPONSE]"
var model: String
var override_temperature: bool
var temperature: float
func get_full_response(body:PackedByteArray) -> Dictionary:
var json := JSON.new()
json.parse(body.get_string_from_utf8())
return json.get_data()
## All methods below should be overriden by child classes, see for example OllamaAPI
func send_get_models_request(http_request:HTTPRequest) -> bool:
return false
func read_models_response(body:PackedByteArray) -> Array[String]:
return [INVALID_RESPONSE]
func send_chat_request(http_request:HTTPRequest, content:Array) -> bool:
return false
func read_response(body:PackedByteArray) -> String:
return INVALID_RESPONSE