Unreal OpenAI API 1.0.0
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 const FString& GetEffectiveURL() const override { return EffectiveURL; }
27 virtual EHttpRequestStatus::Type GetStatus() const override { return EHttpRequestStatus::Type::Succeeded; }
28 virtual EHttpFailureReason GetFailureReason() const override { return EHttpFailureReason::None; }
29 virtual FUtf8StringView GetContentAsUtf8StringView() const override { return FUtf8StringView{}; }
30
31private:
32 FString ReponseData;
33 FString EffectiveURL;
34 FString _URL;
35};
36
37class FFakeHttpRequest : public IHttpRequest
38{
39public:
40 FFakeHttpRequest(const FString& ResponseStr) : ReponseData(ResponseStr) {}
41 virtual const FString& GetURL() const override { return _URL; }
42 virtual FHttpRequestWillRetryDelegate& OnRequestWillRetry() override { return HttpRequestWillRetryDelegate; }
43 virtual FString GetURLParameter(const FString& ParameterName) const override { return FString(); }
44 virtual FString GetHeader(const FString& HeaderName) const override { return FString(); }
45 virtual TArray<FString> GetAllHeaders() const override { return TArray<FString>(); }
46 virtual FString GetContentType() const override { return FString(); }
47 virtual uint64 GetContentLength() const override { return uint64(); }
48 virtual const TArray<uint8>& GetContent() const override
49 {
50 static TArray<uint8> None;
51 return None;
52 }
53 virtual FString GetVerb() const override { return FString{}; }
54 virtual void SetVerb(const FString& Verb) override {}
55 virtual void SetURL(const FString& URL) override {}
56 virtual void SetContent(const TArray<uint8>& ContentPayload) override {}
57 virtual void SetContent(TArray<uint8>&& ContentPayload) override {}
58 virtual void SetContentAsString(const FString& ContentString) override {}
59 virtual bool SetContentAsStreamedFile(const FString& Filename) override { return false; }
60 virtual bool SetContentFromStream(TSharedRef<FArchive, ESPMode::ThreadSafe> Stream) override { return false; }
61 virtual void SetHeader(const FString& HeaderName, const FString& HeaderValue) override {}
62 virtual void AppendToHeader(const FString& HeaderName, const FString& AdditionalHeaderValue) override {}
63 virtual void SetTimeout(float InTimeoutSecs) override {}
64 virtual void ClearTimeout() override {}
65 virtual TOptional<float> GetTimeout() const override { return TOptional<float>(); }
66 virtual bool ProcessRequest() override
67 {
68 HttpRequestCompleteDelegate.Execute(SharedThis(this), GetResponse(), true);
69 return true;
70 }
71 virtual FHttpRequestCompleteDelegate& OnProcessRequestComplete() override { return HttpRequestCompleteDelegate; }
72 virtual FHttpRequestHeaderReceivedDelegate& OnHeaderReceived() override { return HttpHeaderReceivedDelegate; }
73 virtual FHttpRequestProgressDelegate64& OnRequestProgress64() override { return HttpRequestProgressDelegate64; }
74 virtual FHttpRequestStatusCodeReceivedDelegate& OnStatusCodeReceived() override { return HttpRequestStatusCodeReceivedDelegate; }
75 virtual void CancelRequest() override {}
76 virtual EHttpRequestStatus::Type GetStatus() const override { return EHttpRequestStatus::Type::NotStarted; }
77 virtual const FHttpResponsePtr GetResponse() const override { return MakeShareable(new FFakeHttpResponse(ReponseData)); }
78 virtual void Tick(float DeltaSeconds) override {}
79 virtual float GetElapsedTime() const override { return float{}; }
80 virtual bool SetResponseBodyReceiveStream(TSharedRef<FArchive> Stream) override { return false; }
81 virtual void SetDelegateThreadPolicy(EHttpRequestDelegateThreadPolicy InThreadPolicy) override {}
82 virtual EHttpRequestDelegateThreadPolicy GetDelegateThreadPolicy() const override
83 {
84 return EHttpRequestDelegateThreadPolicy::CompleteOnGameThread;
85 }
86 virtual const FString& GetEffectiveURL() const override { return EffectiveURL; }
87 virtual EHttpFailureReason GetFailureReason() const override { return EHttpFailureReason::None; }
88 virtual void ProcessRequestUntilComplete() override {}
89 virtual void SetActivityTimeout(float InTimeoutSecs) override {}
90 virtual FString GetOption(const FName Option) const override { return {}; }
91 virtual void SetOption(const FName Option, const FString& OptionValue) override {}
92 virtual void ResetTimeoutStatus() override {}
93
94public:
95 FHttpRequestProgressDelegate HttpRequestProgressDelegate;
96 FHttpRequestProgressDelegate64 HttpRequestProgressDelegate64;
97 FHttpRequestCompleteDelegate HttpRequestCompleteDelegate;
98 FHttpRequestHeaderReceivedDelegate HttpHeaderReceivedDelegate;
99 FHttpRequestWillRetryDelegate HttpRequestWillRetryDelegate;
100 FHttpRequestStatusCodeReceivedDelegate HttpRequestStatusCodeReceivedDelegate;
101
102private:
103 FString ReponseData;
104 FString EffectiveURL;
105 FString _URL;
106};
107
108UCLASS()
109class OPENAITESTRUNNER_API UOpenAIProviderFake : public UOpenAIProvider
110{
111 GENERATED_BODY()
112
113public:
114 void SetResponse(const FString& ResponseStr) { ReponseData = ResponseStr; };
115
116private:
117 FString ReponseData;
118
119 virtual TSharedRef<IHttpRequest, ESPMode::ThreadSafe> CreateRequest() const override
120 { //
121 return MakeShareable(new FFakeHttpRequest(ReponseData));
122 }
123};
Definition: OpenAIProviderFake.h:38
Definition: OpenAIProviderFake.h:10
Definition: OpenAIProviderFake.h:110
Definition: OpenAIProvider.h:45