20class OPENAI_API UChatGPT : public UObject
28 void SetModel(
const FString& Model);
29 FString GetModel()
const;
30 void SetMaxTokens(int32 Tokens);
32 void SetLogEnabled(
bool Enabled);
34 bool RegisterService(
const TSubclassOf<UBaseService>& ServiceClass,
const OpenAI::ServiceSecrets& Secrets);
35 void UnRegisterService(
const TSubclassOf<UBaseService>& ServiceClass);
37 void AddMessage(
const FMessage& Message);
38 void SetAssistantMessage(
const FMessage& Message);
39 FMessage GetAssistantMessage()
const;
44 TArray<FMessage> GetHistory()
const;
46 FOnChatGPTRequestCompleted& OnRequestCompleted() {
return RequestCompleted; }
47 FOnChatGPTRequestUpdated& OnRequestUpdated() {
return RequestUpdated; }
51 TObjectPtr<UOpenAIProvider> Provider;
54 TArray<TObjectPtr<UBaseService>> Services;
58 int32 MaxCompletionTokens{100};
60 TArray<FMessage> ChatHistory;
64 FOnChatGPTRequestCompleted RequestCompleted;
65 FOnChatGPTRequestUpdated RequestUpdated;
67 void HandleRequestCompletion();
68 void UpdateAssistantMessage(
const FString& Message,
bool WasError =
false);
70 void HandleError(
const FString& Content);
71 bool HandleFunctionCall(
const FFunctionCommon& FunctionCall,
const FString& ID);