diff --git a/src/apis/audio.ts b/src/apis/audio.ts new file mode 100644 index 0000000..0269d6c --- /dev/null +++ b/src/apis/audio.ts @@ -0,0 +1,97 @@ +import { TranscriptionCreateParams } from "openai/resources/audio/transcriptions"; +import { ApiClientInterface } from "../_types/generalTypes"; +import { ApiResource } from "../apiResource"; +import { RequestOptions } from "../baseClient"; +import { OPEN_AI_API_KEY } from "../constants"; +import { defaultHeadersBuilder, finalResponse, overrideConfig } from "../utils"; +import { createHeaders } from "./createHeaders"; +import OpenAI from "openai"; +import { TranslationCreateParams } from "openai/resources/audio/translations"; +import { SpeechCreateParams } from "openai/resources/audio/speech"; + +export class Audio extends ApiResource { + transcriptions: transcriptions; + translations: translations; + speech: speech; + + constructor(client: any) { + super(client); + this.transcriptions = new transcriptions(client); + this.translations = new translations(client); + this.speech = new speech(client); + } +} + +export class transcriptions extends ApiResource{ + async create( + _body: TranscriptionCreateParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): Promise { + const body: TranscriptionCreateParams = _body; + if (params) { + const config = overrideConfig(this.client.config, params.config); + this.client.customHeaders = { + ...this.client.customHeaders, + ...createHeaders({ ...params, config }), + }; + } + const OAIclient = new OpenAI({ + apiKey: OPEN_AI_API_KEY, + baseURL: this.client.baseURL, + defaultHeaders: defaultHeadersBuilder(this.client), + }); + const response = await OAIclient.audio.transcriptions.create(body, opts).withResponse(); + return finalResponse(response); + } +} + + +export class translations extends ApiResource{ + async create( + _body: TranslationCreateParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): Promise { + const body: TranslationCreateParams = _body; + if (params) { + const config = overrideConfig(this.client.config, params.config); + this.client.customHeaders = { + ...this.client.customHeaders, + ...createHeaders({ ...params, config }), + }; + } + const OAIclient = new OpenAI({ + apiKey: OPEN_AI_API_KEY, + baseURL: this.client.baseURL, + defaultHeaders: defaultHeadersBuilder(this.client), + }); + const response = await OAIclient.audio.translations.create(body, opts).withResponse(); + return finalResponse(response); + } +} + + +export class speech extends ApiResource{ + async create( + _body: SpeechCreateParams, + params?: ApiClientInterface, + opts?: RequestOptions + ): Promise { + const body: SpeechCreateParams = _body; + if (params) { + const config = overrideConfig(this.client.config, params.config); + this.client.customHeaders = { + ...this.client.customHeaders, + ...createHeaders({ ...params, config }), + }; + } + const OAIclient = new OpenAI({ + apiKey: OPEN_AI_API_KEY, + baseURL: this.client.baseURL, + defaultHeaders: defaultHeadersBuilder(this.client), + }); + const response = await OAIclient.audio.speech.create(body, opts).withResponse(); + return finalResponse(response); + } +} diff --git a/src/apis/index.ts b/src/apis/index.ts index 4bb9e98..63dd659 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -13,5 +13,6 @@ export { Models } from "./models"; export { Batches } from "./batches"; export { FineTuning } from "./fineTuning" export { Moderations } from "./moderations" +export { Audio } from "./audio" export { VectorStores } from "./vectorStores" export { BetaChat } from "./betaChat" diff --git a/src/client.ts b/src/client.ts index 25021d7..0dd0bd8 100644 --- a/src/client.ts +++ b/src/client.ts @@ -72,6 +72,7 @@ export class Portkey extends ApiClient { batches = new API.Batches(this); fineTuning = new API.FineTuning(this); moderations = new API.Moderations(this); + audio = new API.audio(this); beta = { assistants: new API.Assistants(this), threads: new API.Threads(this),