Unreal OpenAI API 1.0.0
Loading...
Searching...
No Matches
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 AudioVoices() const = 0;
71 virtual FString Files() const = 0;
72 virtual FString FineTuningJobs() const = 0;
73 virtual FString Moderations() const = 0;
74 virtual FString Batches() const = 0;
75 virtual FString Uploads() const = 0;
76 virtual FString Assistants() const = 0;
77 virtual FString Videos() const = 0;
78 virtual FString Evals() const = 0;
79 virtual FString VectorStores() const = 0;
80 virtual FString ChatKitSessions() const = 0;
81 virtual FString ChatKitThreads() const = 0;
82 virtual FString Skills() const = 0;
83 virtual FString RealtimeClientSecrets() const = 0;
84 virtual FString RealtimeCalls() const = 0;
85};
86
87namespace V1
88{
89class OpenAIAPI : public IAPI
90{
91public:
92 OpenAIAPI(const FString& BaseURL = "https://api.openai.com") : API_URL(BaseURL) {}
93 virtual FString BaseURL() const override { return API_URL; }
94
95 virtual FString Models() const override { return API_URL + "/v1/models"; }
96 virtual FString Completion() const override { return API_URL + "/v1/completions"; }
97 virtual FString ChatCompletion() const override { return API_URL + "/v1/chat/completions"; }
98 virtual FString ImageGenerations() const override { return API_URL + "/v1/images/generations"; }
99 virtual FString ImageEdits() const override { return API_URL + "/v1/images/edits"; }
100 virtual FString ImageVariations() const override { return API_URL + "/v1/images/variations"; }
101 virtual FString Embeddings() const override { return API_URL + "/v1/embeddings"; }
102 virtual FString Speech() const override { return API_URL + "/v1/audio/speech"; }
103 virtual FString AudioTranscriptions() const override { return API_URL + "/v1/audio/transcriptions"; }
104 virtual FString AudioTranslations() const override { return API_URL + "/v1/audio/translations"; }
105 virtual FString AudioVoices() const override { return API_URL + "/v1/audio/voices"; }
106 virtual FString Files() const override { return API_URL + "/v1/files"; }
107 virtual FString FineTuningJobs() const override { return API_URL + "/v1/fine_tuning/jobs"; }
108 virtual FString Moderations() const override { return API_URL + "/v1/moderations"; }
109 virtual FString Batches() const override { return API_URL + "/v1/batches"; }
110 virtual FString Uploads() const override { return API_URL + "/v1/uploads"; }
111 virtual FString Assistants() const override { return API_URL + "/v1/assistants"; }
112 virtual FString Videos() const override { return API_URL + "/v1/videos"; }
113 virtual FString Evals() const override { return API_URL + "/v1/evals"; }
114 virtual FString VectorStores() const override { return API_URL + "/v1/vector_stores"; }
115 virtual FString ChatKitSessions() const override { return API_URL + "/v1/chatkit/sessions"; }
116 virtual FString ChatKitThreads() const override { return API_URL + "/v1/chatkit/threads"; }
117 virtual FString Skills() const override { return API_URL + "/v1/skills"; }
118 virtual FString RealtimeClientSecrets() const override { return API_URL + "/v1/realtime/client_secrets"; }
119 virtual FString RealtimeCalls() const override { return API_URL + "/v1/realtime/calls"; }
120
121private:
122 const FString API_URL;
123};
124
125//
127{
128 FString Models;
129 FString Completions;
130 FString ChatCompletions;
131 FString ImageGenerations;
132 FString ImageEdits;
133 FString ImageVariations;
134 FString Embeddings;
135 FString Speech;
136 FString AudioTranscriptions;
137 FString AudioTranslations;
138 FString AudioVoices;
139 FString Files;
140 FString FineTuningJobs;
141 FString Moderations;
142 FString Batches;
143 FString Uploads;
144 FString Assistants;
145 FString Videos;
146 FString Evals;
147 FString VectorStores;
148 FString ChatKitSessions;
149 FString ChatKitThreads;
150 FString Skills;
151 FString RealtimeClientSecrets;
152 FString RealtimeCalls;
153};
154
155class GenericAPI : public OpenAI::IAPI
156{
157public:
158 GenericAPI(const FOpenAIEndpoints& Endpoints) : OpenAIEndpoints(Endpoints) {}
159
160 virtual FString Models() const override { return OpenAIEndpoints.Models; }
161 virtual FString Completion() const override { return OpenAIEndpoints.Completions; }
162 virtual FString ChatCompletion() const override { return OpenAIEndpoints.ChatCompletions; }
163 virtual FString ImageGenerations() const override { return OpenAIEndpoints.ImageGenerations; }
164 virtual FString ImageEdits() const override { return OpenAIEndpoints.ImageEdits; }
165 virtual FString ImageVariations() const override { return OpenAIEndpoints.ImageVariations; }
166 virtual FString Embeddings() const override { return OpenAIEndpoints.Embeddings; }
167 virtual FString Speech() const override { return OpenAIEndpoints.Speech; }
168 virtual FString AudioTranscriptions() const override { return OpenAIEndpoints.AudioTranscriptions; }
169 virtual FString AudioTranslations() const override { return OpenAIEndpoints.AudioTranslations; }
170 virtual FString AudioVoices() const override { return OpenAIEndpoints.AudioVoices; }
171 virtual FString Files() const override { return OpenAIEndpoints.Files; }
172 virtual FString FineTuningJobs() const override { return OpenAIEndpoints.FineTuningJobs; }
173 virtual FString Moderations() const override { return OpenAIEndpoints.Moderations; }
174 virtual FString Batches() const override { return OpenAIEndpoints.Batches; }
175 virtual FString Uploads() const override { return OpenAIEndpoints.Uploads; }
176 virtual FString Assistants() const override { return OpenAIEndpoints.Assistants; }
177 virtual FString Videos() const override { return OpenAIEndpoints.Videos; }
178 virtual FString Evals() const override { return OpenAIEndpoints.Evals; }
179 virtual FString VectorStores() const override { return OpenAIEndpoints.VectorStores; }
180 virtual FString ChatKitSessions() const override { return OpenAIEndpoints.ChatKitSessions; }
181 virtual FString ChatKitThreads() const override { return OpenAIEndpoints.ChatKitThreads; }
182 virtual FString Skills() const override { return OpenAIEndpoints.Skills; }
183 virtual FString RealtimeClientSecrets() const override { return OpenAIEndpoints.RealtimeClientSecrets; }
184 virtual FString RealtimeCalls() const override { return OpenAIEndpoints.RealtimeCalls; }
185
186private:
187 const FOpenAIEndpoints OpenAIEndpoints;
188
189 virtual FString BaseURL() const override { return {}; }
190};
191
192} // namespace V1
193} // namespace OpenAI
Definition API.h:55
Definition API.h:127