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 Embeddings()
const = 0;
66 virtual FString Speech()
const = 0;
67 virtual FString AudioTranscriptions()
const = 0;
68 virtual FString AudioTranslations()
const = 0;
69 virtual FString AudioVoices()
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 virtual FString Videos()
const = 0;
77 virtual FString Evals()
const = 0;
78 virtual FString VectorStores()
const = 0;
79 virtual FString ChatKitSessions()
const = 0;
80 virtual FString ChatKitThreads()
const = 0;
81 virtual FString Skills()
const = 0;
82 virtual FString RealtimeClientSecrets()
const = 0;
83 virtual FString RealtimeCalls()
const = 0;
88class OpenAIAPI :
public IAPI
91 OpenAIAPI(
const FString& BaseURL =
"https://api.openai.com") : API_URL(BaseURL) {}
92 virtual FString BaseURL()
const override {
return API_URL; }
94 virtual FString Models()
const override {
return API_URL +
"/v1/models"; }
95 virtual FString Completion()
const override {
return API_URL +
"/v1/completions"; }
96 virtual FString ChatCompletion()
const override {
return API_URL +
"/v1/chat/completions"; }
97 virtual FString ImageGenerations()
const override {
return API_URL +
"/v1/images/generations"; }
98 virtual FString ImageEdits()
const override {
return API_URL +
"/v1/images/edits"; }
99 virtual FString Embeddings()
const override {
return API_URL +
"/v1/embeddings"; }
100 virtual FString Speech()
const override {
return API_URL +
"/v1/audio/speech"; }
101 virtual FString AudioTranscriptions()
const override {
return API_URL +
"/v1/audio/transcriptions"; }
102 virtual FString AudioTranslations()
const override {
return API_URL +
"/v1/audio/translations"; }
103 virtual FString AudioVoices()
const override {
return API_URL +
"/v1/audio/voices"; }
104 virtual FString Files()
const override {
return API_URL +
"/v1/files"; }
105 virtual FString FineTuningJobs()
const override {
return API_URL +
"/v1/fine_tuning/jobs"; }
106 virtual FString Moderations()
const override {
return API_URL +
"/v1/moderations"; }
107 virtual FString Batches()
const override {
return API_URL +
"/v1/batches"; }
108 virtual FString Uploads()
const override {
return API_URL +
"/v1/uploads"; }
109 virtual FString Assistants()
const override {
return API_URL +
"/v1/assistants"; }
110 virtual FString Videos()
const override {
return API_URL +
"/v1/videos"; }
111 virtual FString Evals()
const override {
return API_URL +
"/v1/evals"; }
112 virtual FString VectorStores()
const override {
return API_URL +
"/v1/vector_stores"; }
113 virtual FString ChatKitSessions()
const override {
return API_URL +
"/v1/chatkit/sessions"; }
114 virtual FString ChatKitThreads()
const override {
return API_URL +
"/v1/chatkit/threads"; }
115 virtual FString Skills()
const override {
return API_URL +
"/v1/skills"; }
116 virtual FString RealtimeClientSecrets()
const override {
return API_URL +
"/v1/realtime/client_secrets"; }
117 virtual FString RealtimeCalls()
const override {
return API_URL +
"/v1/realtime/calls"; }
120 const FString API_URL;
155 GenericAPI(
const FOpenAIEndpoints& Endpoints) : OpenAIEndpoints(Endpoints) {}
157 virtual FString Models()
const override {
return OpenAIEndpoints.Models; }
158 virtual FString Completion()
const override {
return OpenAIEndpoints.Completions; }
159 virtual FString ChatCompletion()
const override {
return OpenAIEndpoints.ChatCompletions; }
160 virtual FString ImageGenerations()
const override {
return OpenAIEndpoints.ImageGenerations; }
161 virtual FString ImageEdits()
const override {
return OpenAIEndpoints.ImageEdits; }
162 virtual FString Embeddings()
const override {
return OpenAIEndpoints.Embeddings; }
163 virtual FString Speech()
const override {
return OpenAIEndpoints.Speech; }
164 virtual FString AudioTranscriptions()
const override {
return OpenAIEndpoints.AudioTranscriptions; }
165 virtual FString AudioTranslations()
const override {
return OpenAIEndpoints.AudioTranslations; }
166 virtual FString AudioVoices()
const override {
return OpenAIEndpoints.AudioVoices; }
167 virtual FString Files()
const override {
return OpenAIEndpoints.Files; }
168 virtual FString FineTuningJobs()
const override {
return OpenAIEndpoints.FineTuningJobs; }
169 virtual FString Moderations()
const override {
return OpenAIEndpoints.Moderations; }
170 virtual FString Batches()
const override {
return OpenAIEndpoints.Batches; }
171 virtual FString Uploads()
const override {
return OpenAIEndpoints.Uploads; }
172 virtual FString Assistants()
const override {
return OpenAIEndpoints.Assistants; }
173 virtual FString Videos()
const override {
return OpenAIEndpoints.Videos; }
174 virtual FString Evals()
const override {
return OpenAIEndpoints.Evals; }
175 virtual FString VectorStores()
const override {
return OpenAIEndpoints.VectorStores; }
176 virtual FString ChatKitSessions()
const override {
return OpenAIEndpoints.ChatKitSessions; }
177 virtual FString ChatKitThreads()
const override {
return OpenAIEndpoints.ChatKitThreads; }
178 virtual FString Skills()
const override {
return OpenAIEndpoints.Skills; }
179 virtual FString RealtimeClientSecrets()
const override {
return OpenAIEndpoints.RealtimeClientSecrets; }
180 virtual FString RealtimeCalls()
const override {
return OpenAIEndpoints.RealtimeCalls; }
185 virtual FString BaseURL()
const override {
return {}; }