57 virtual ~IAPI() =
default;
58 virtual FString BaseURL()
const = 0;
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;
89class OpenAIAPI :
public IAPI
92 OpenAIAPI(
const FString& BaseURL =
"https://api.openai.com") : API_URL(BaseURL) {}
93 virtual FString BaseURL()
const override {
return API_URL; }
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"; }
122 const FString API_URL;
158 GenericAPI(
const FOpenAIEndpoints& Endpoints) : OpenAIEndpoints(Endpoints) {}
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; }
189 virtual FString BaseURL()
const override {
return {}; }