Unreal OpenAI API 1.0.0
Loading...
Searching...
No Matches
OpenAIProviderFake.h
1// OpenAI, Copyright LifeEXE. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Provider/OpenAIProvider.h"
7#include "OpenAIProviderFake.generated.h"
8
9class FFakeHttpResponse : public IHttpResponse
10{
11public:
12 FFakeHttpResponse(const FString& ResponseStr) : ReponseData(ResponseStr) {}
13 virtual int32 GetResponseCode() const override { return static_cast<int32>(EHttpResponseCodes::Ok); }
14 virtual FString GetContentAsString() const override { return ReponseData; }
15 virtual const FString& GetURL() const override { return _URL; }
16 virtual FString GetURLParameter(const FString& ParameterName) const override { return FString(); }
17 virtual FString GetHeader(const FString& HeaderName) const override { return FString(); }
18 virtual TArray<FString> GetAllHeaders() const override { return TArray<FString>(); }
19 virtual FString GetContentType() const override { return FString(); }
20 virtual uint64 GetContentLength() const override { return uint64(); }
21 virtual const TArray<uint8>& GetContent() const override
22 {
23 static TArray<uint8> None;
24 return None;
25 }
26 virtual TArray<uint8> TakeContent() override { return TArray<uint8>(); }
27 virtual const FString& GetEffectiveURL() const override { return EffectiveURL; }
28 virtual EHttpRequestStatus::Type GetStatus() const override { return EHttpRequestStatus::Type::Succeeded; }
29 virtual EHttpFailureReason GetFailureReason() const override { return EHttpFailureReason::None; }
30 virtual FUtf8StringView GetContentAsUtf8StringView() const override { return FUtf8StringView{}; }
31
32private:
33 FString ReponseData;
34 FString EffectiveURL;
35 FString _URL;
36};
37
38class FFakeHttpRequest : public IHttpRequest
39{
40public:
41 FFakeHttpRequest(const FString& ResponseStr) : ReponseData(ResponseStr) {}
42 virtual const FString& GetURL() const override { return _URL; }
43 virtual FHttpRequestWillRetryDelegate& OnRequestWillRetry() override { return HttpRequestWillRetryDelegate; }
44 virtual FString GetURLParameter(const FString& ParameterName) const override { return FString(); }
45 virtual FString GetHeader(const FString& HeaderName) const override { return FString(); }
46 virtual TArray<FString> GetAllHeaders() const override { return TArray<FString>(); }
47 virtual FString GetContentType() const override { return FString(); }
48 virtual uint64 GetContentLength() const override { return uint64(); }
49 virtual const TArray<uint8>& GetContent() const override
50 {
51 static TArray<uint8> None;
52 return None;
53 }
54 virtual FString GetVerb() const override { return FString{}; }
55 virtual void SetVerb(const FString& Verb) override {}
56 virtual void SetURL(const FString& URL) override {}
57 virtual void SetContent(const TArray<uint8>& ContentPayload) override {}
58 virtual void SetContent(TArray<uint8>&& ContentPayload) override {}
59 virtual void SetContentAsString(const FString& ContentString) override {}
60 virtual bool SetContentAsStreamedFile(const FString& Filename) override { return false; }
61 virtual bool SetContentFromStream(TSharedRef<FArchive, ESPMode::ThreadSafe> Stream) override { return false; }
62 virtual void SetHeader(const FString& HeaderName, const FString& HeaderValue) override {}
63 virtual void AppendToHeader(const FString& HeaderName, const FString& AdditionalHeaderValue) override {}
64 virtual void SetTimeout(float InTimeoutSecs) override {}
65 virtual void ClearTimeout() override {}
66 virtual TOptional<float> GetTimeout() const override { return TOptional<float>(); }
67 virtual bool ProcessRequest() override
68 {
69 HttpRequestCompleteDelegate.Execute(SharedThis(this), GetResponse(), true);
70 return true;
71 }
72 virtual FHttpRequestCompleteDelegate& OnProcessRequestComplete() override { return HttpRequestCompleteDelegate; }
73 virtual FHttpRequestHeaderReceivedDelegate& OnHeaderReceived() override { return HttpHeaderReceivedDelegate; }
74 virtual FHttpRequestProgressDelegate64& OnRequestProgress64() override { return HttpRequestProgressDelegate64; }
75 virtual FHttpRequestStatusCodeReceivedDelegate& OnStatusCodeReceived() override { return HttpRequestStatusCodeReceivedDelegate; }
76 virtual void CancelRequest() override {}
77 virtual EHttpRequestStatus::Type GetStatus() const override { return EHttpRequestStatus::Type::NotStarted; }
78 virtual const FHttpResponsePtr GetResponse() const override { return MakeShareable(new FFakeHttpResponse(ReponseData)); }
79 virtual void Tick(float DeltaSeconds) override {}
80 virtual float GetElapsedTime() const override { return float{}; }
81 virtual bool SetResponseBodyReceiveStream(TSharedRef<FArchive> Stream) override { return false; }
82 virtual void SetDelegateThreadPolicy(EHttpRequestDelegateThreadPolicy InThreadPolicy) override {}
83 virtual EHttpRequestDelegateThreadPolicy GetDelegateThreadPolicy() const override
84 {
85 return EHttpRequestDelegateThreadPolicy::CompleteOnGameThread;
86 }
87 virtual const FString& GetEffectiveURL() const override { return EffectiveURL; }
88 virtual EHttpFailureReason GetFailureReason() const override { return EHttpFailureReason::None; }
89 virtual void ProcessRequestUntilComplete() override {}
90 virtual void SetActivityTimeout(float InTimeoutSecs) override {}
91 virtual FString GetOption(const FName Option) const override { return {}; }
92 virtual void SetOption(const FName Option, const FString& OptionValue) override {}
93 virtual void ResetTimeoutStatus() override {}
94 virtual void SetPriority(EHttpRequestPriority InPriority) override { Priority = InPriority; }
95 virtual EHttpRequestPriority GetPriority() const override { return Priority; }
96
97public:
98 FHttpRequestProgressDelegate HttpRequestProgressDelegate;
99 FHttpRequestProgressDelegate64 HttpRequestProgressDelegate64;
100 FHttpRequestCompleteDelegate HttpRequestCompleteDelegate;
101 FHttpRequestHeaderReceivedDelegate HttpHeaderReceivedDelegate;
102 FHttpRequestWillRetryDelegate HttpRequestWillRetryDelegate;
103 FHttpRequestStatusCodeReceivedDelegate HttpRequestStatusCodeReceivedDelegate;
104
105private:
106 FString ReponseData;
107 FString EffectiveURL;
108 FString _URL;
109 EHttpRequestPriority Priority = EHttpRequestPriority::Normal;
110};
111
112UCLASS()
113class OPENAITESTRUNNER_API UOpenAIProviderFake : public UOpenAIProvider
114{
115 GENERATED_BODY()
116
117public:
118 void SetResponse(const FString& ResponseStr) { ReponseData = ResponseStr; };
119
120private:
121 FString ReponseData;
122
123 virtual TSharedRef<IHttpRequest, ESPMode::ThreadSafe> CreateRequest() const override
124 { //
125 return MakeShareable(new FFakeHttpRequest(ReponseData));
126 }
127};
Definition OpenAIProviderFake.h:39
Definition OpenAIProviderFake.h:10
Definition OpenAIProviderFake.h:114