Unreal OpenAI API 1.0.0
API.h
1// OpenAI, Copyright LifeEXE. All Rights Reserved.
2
3/*
4 ___ ___ ________ _______
5|\ \ |\ \|\ _____\\ ___ \
6\ \ \ \ \ \ \ \__/\ \ __/|
7 \ \ \ \ \ \ \ __\\ \ \_|/__
8 \ \ \____\ \ \ \ \_| \ \ \_|\ \
9 \ \_______\ \__\ \__\ \ \_______\
10 \|_______|\|__|\|__| \|_______|
11
12
13
14 _______ ___ ___ _______
15|\ ___ \ |\ \ / /|\ ___ \
16\ \ __/| \ \ \/ / | \ __/|
17 \ \ \_|/__ \ \ / / \ \ \_|/__
18 \ \ \_|\ \ / \/ \ \ \_|\ \
19 \ \_______\/ /\ \ \ \_______\
20 \|_______/__/ /\ __\ \|_______|
21 |__|/ \|__|
22
23Watch:
24https://youtube.com/@LifeEXECode
25
26Code:
27https://github.com/life-exe
28
29Support:
30https://boosty.to/life-exe
31https://patreon.com/lifeexecode
32
33Wiki:
34https://lifeexe-art.gitbook.io/lifeexe
35
36Medium:
37https://medium.com/@lifeexe
38
39Itch:
40https://life-exe.itch.io
41
42X:
43https://x.com/lifeExeCode
44
45*/
46
47#pragma once
48
49// https://platform.openai.com/docs/api-reference
50
51namespace OpenAI
52{
53
54class IAPI
55{
56public:
57 virtual ~IAPI() = default;
58 virtual FString BaseURL() const = 0;
59
60 virtual FString Models() const = 0;
61 virtual FString Completion() const = 0;
62 virtual FString ChatCompletion() const = 0;
63 virtual FString ImageGenerations() const = 0;
64 virtual FString ImageEdits() const = 0;
65 virtual FString ImageVariations() const = 0;
66 virtual FString Embeddings() const = 0;
67 virtual FString Speech() const = 0;
68 virtual FString AudioTranscriptions() const = 0;
69 virtual FString AudioTranslations() const = 0;
70 virtual FString Files() const = 0;
71 virtual FString FineTuningJobs() const = 0;
72 virtual FString Moderations() const = 0;
73 virtual FString Batches() const = 0;
74 virtual FString Uploads() const = 0;
75 virtual FString Assistants() const = 0;
76};
77
78namespace V1
79{
80class OpenAIAPI : public IAPI
81{
82public:
83 OpenAIAPI(const FString& BaseURL = "https://api.openai.com") : API_URL(BaseURL) {}
84 virtual FString BaseURL() const override { return API_URL; }
85
86 virtual FString Models() const override { return API_URL + "/v1/models"; }
87 virtual FString Completion() const override { return API_URL + "/v1/completions"; }
88 virtual FString ChatCompletion() const override { return API_URL + "/v1/chat/completions"; }
89 virtual FString ImageGenerations() const override { return API_URL + "/v1/images/generations"; }
90 virtual FString ImageEdits() const override { return API_URL + "/v1/images/edits"; }
91 virtual FString ImageVariations() const override { return API_URL + "/v1/images/variations"; }
92 virtual FString Embeddings() const override { return API_URL + "/v1/embeddings"; }
93 virtual FString Speech() const override { return API_URL + "/v1/audio/speech"; }
94 virtual FString AudioTranscriptions() const override { return API_URL + "/v1/audio/transcriptions"; }
95 virtual FString AudioTranslations() const override { return API_URL + "/v1/audio/translations"; }
96 virtual FString Files() const override { return API_URL + "/v1/files"; }
97 virtual FString FineTuningJobs() const override { return API_URL + "/v1/fine_tuning/jobs"; }
98 virtual FString Moderations() const override { return API_URL + "/v1/moderations"; }
99 virtual FString Batches() const override { return API_URL + "/v1/batches"; }
100 virtual FString Uploads() const override { return API_URL + "/v1/uploads"; }
101 virtual FString Assistants() const override { return API_URL + "/v1/assistants"; }
102
103private:
104 const FString API_URL;
105};
106
107//
109{
110 FString Models;
111 FString Completions;
112 FString ChatCompletions;
113 FString ImageGenerations;
114 FString ImageEdits;
115 FString ImageVariations;
116 FString Embeddings;
117 FString Speech;
118 FString AudioTranscriptions;
119 FString AudioTranslations;
120 FString Files;
121 FString FineTuningJobs;
122 FString Moderations;
123 FString Batches;
124 FString Uploads;
125 FString Assistants;
126};
127
129{
130public:
131 GenericAPI(const FOpenAIEndpoints& Endpoints) : OpenAIEndpoints(Endpoints) {}
132
133 virtual FString Models() const override { return OpenAIEndpoints.Models; }
134 virtual FString Completion() const override { return OpenAIEndpoints.Completions; }
135 virtual FString ChatCompletion() const override { return OpenAIEndpoints.ChatCompletions; }
136 virtual FString ImageGenerations() const override { return OpenAIEndpoints.ImageGenerations; }
137 virtual FString ImageEdits() const override { return OpenAIEndpoints.ImageEdits; }
138 virtual FString ImageVariations() const override { return OpenAIEndpoints.ImageVariations; }
139 virtual FString Embeddings() const override { return OpenAIEndpoints.Embeddings; }
140 virtual FString Speech() const override { return OpenAIEndpoints.Speech; }
141 virtual FString AudioTranscriptions() const override { return OpenAIEndpoints.AudioTranscriptions; }
142 virtual FString AudioTranslations() const override { return OpenAIEndpoints.AudioTranslations; }
143 virtual FString Files() const override { return OpenAIEndpoints.Files; }
144 virtual FString FineTuningJobs() const override { return OpenAIEndpoints.FineTuningJobs; }
145 virtual FString Moderations() const override { return OpenAIEndpoints.Moderations; }
146 virtual FString Batches() const override { return OpenAIEndpoints.Batches; }
147 virtual FString Uploads() const override { return OpenAIEndpoints.Uploads; }
148 virtual FString Assistants() const override { return OpenAIEndpoints.Assistants; }
149
150private:
151 const FOpenAIEndpoints OpenAIEndpoints;
152 const FString API_URL;
153
154 virtual FString BaseURL() const override { return {}; }
155};
156
157} // namespace V1
158} // namespace OpenAI
Definition: API.h:55
Definition: API.h:129
Definition: API.h:81
Definition: OpenAI.Build.cs:6
Definition: API.h:109