{"version":3,"file":"openai_whisper_audio.cjs","names":["BufferLoader","filePathOrBlob: string | Blob","fields?: {\n      clientOptions?: ClientOptions;\n      transcriptionCreateParams?: Partial<OpenAIClient.Audio.TranscriptionCreateParams>;\n    }","OpenAIClient","raw: Buffer","metadata: Record<string, string>","Document"],"sources":["../../../src/document_loaders/fs/openai_whisper_audio.ts"],"sourcesContent":["import { type ClientOptions, OpenAIClient, toFile } from \"@langchain/openai\";\n\nimport { Document } from \"@langchain/core/documents\";\nimport { BufferLoader } from \"@langchain/classic/document_loaders/fs/buffer\";\n\nconst MODEL_NAME = \"whisper-1\";\n\n/**\n * @example\n * ```typescript\n * const loader = new OpenAIWhisperAudio(\n *   \"./src/document_loaders/example_data/test.mp3\",\n * );\n * const docs = await loader.load();\n * console.log(docs);\n * ```\n */\nexport class OpenAIWhisperAudio extends BufferLoader {\n  private readonly openAIClient: OpenAIClient;\n\n  private readonly transcriptionCreateParams?: Partial<OpenAIClient.Audio.TranscriptionCreateParams>;\n\n  constructor(\n    filePathOrBlob: string | Blob,\n    fields?: {\n      clientOptions?: ClientOptions;\n      transcriptionCreateParams?: Partial<OpenAIClient.Audio.TranscriptionCreateParams>;\n    }\n  ) {\n    super(filePathOrBlob);\n    this.openAIClient = new OpenAIClient(fields?.clientOptions);\n    this.transcriptionCreateParams = fields?.transcriptionCreateParams ?? {};\n  }\n\n  protected async parse(\n    raw: Buffer,\n    metadata: Record<string, string>\n  ): Promise<Document[]> {\n    const fileName =\n      metadata.source === \"blob\" ? metadata.blobType : metadata.source;\n    const transcriptionResponse =\n      await this.openAIClient.audio.transcriptions.create({\n        file: await toFile(raw, fileName),\n        model: MODEL_NAME,\n        ...this.transcriptionCreateParams,\n      } as OpenAIClient.Audio.TranscriptionCreateParamsNonStreaming);\n    const document = new Document({\n      pageContent: transcriptionResponse.text,\n      metadata,\n    });\n    return [document];\n  }\n}\n"],"mappings":";;;;;;;;AAKA,MAAM,aAAa;;;;;;;;;;;AAYnB,IAAa,qBAAb,cAAwCA,4DAAa;CACnD,AAAiB;CAEjB,AAAiB;CAEjB,YACEC,gBACAC,QAIA;EACA,MAAM,eAAe;EACrB,KAAK,eAAe,IAAIC,gCAAa,QAAQ;EAC7C,KAAK,4BAA4B,QAAQ,6BAA6B,CAAE;CACzE;CAED,MAAgB,MACdC,KACAC,UACqB;EACrB,MAAM,WACJ,SAAS,WAAW,SAAS,SAAS,WAAW,SAAS;EAC5D,MAAM,wBACJ,MAAM,KAAK,aAAa,MAAM,eAAe,OAAO;GAClD,MAAM,qCAAa,KAAK,SAAS;GACjC,OAAO;GACP,GAAG,KAAK;EACT,EAA6D;EAChE,MAAM,WAAW,IAAIC,oCAAS;GAC5B,aAAa,sBAAsB;GACnC;EACD;AACD,SAAO,CAAC,QAAS;CAClB;AACF"}