-
-
Notifications
You must be signed in to change notification settings - Fork 86
Expand file tree
/
Copy pathN2CLLMTypes.h
More file actions
66 lines (52 loc) · 2.09 KB
/
N2CLLMTypes.h
File metadata and controls
66 lines (52 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (c) 2025 Nick McClure (Protospatial). All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "N2CLLMTypes.generated.h"
/** Delegate for receiving LLM responses */
DECLARE_DELEGATE_OneParam(FOnLLMResponseReceived, const FString& /* Response */);
/** Delegate for receiving parsed translation responses */
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnTranslationResponseReceived, const FN2CTranslationResponse&, Response, bool, bSuccess);
/** Delegate for when a translation request is sent */
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnTranslationRequestSent);
/** Available LLM providers */
UENUM(BlueprintType)
enum class EN2CLLMProvider : uint8
{
OpenAI UMETA(DisplayName = "OpenAI"),
Anthropic UMETA(DisplayName = "Anthropic"),
Gemini UMETA(DisplayName = "Gemini"),
Ollama UMETA(DisplayName = "Ollama"),
DeepSeek UMETA(DisplayName = "DeepSeek"),
LMStudio UMETA(DisplayName = "LM Studio"),
xAI UMETA(DisplayName = "xAI"),
};
/** Status of the Node to Code system */
UENUM(BlueprintType)
enum class EN2CSystemStatus : uint8
{
Idle UMETA(DisplayName = "Idle"),
Processing UMETA(DisplayName = "Processing Request"),
Error UMETA(DisplayName = "Error"),
Initializing UMETA(DisplayName = "Initializing")
};
/**
* @struct FN2CLLMConfig
* @brief Configuration settings for LLM integration
*/
USTRUCT(BlueprintType)
struct FN2CLLMConfig
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
EN2CLLMProvider Provider = EN2CLLMProvider::Anthropic;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
FString ApiEndpoint;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
FString ApiKey;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
float TimeoutSeconds = 3600.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
bool bUseSystemPrompts = true;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "LLM Integration")
FString Model;
};