{"version":3,"file":"openai_whisper_audio.cjs","names":["BufferLoader","OpenAIClient","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,8CAAAA,aAAa;CACnD;CAEA;CAEA,YACE,gBACA,QAIA;AACA,QAAM,eAAe;AACrB,OAAK,eAAe,IAAIC,kBAAAA,aAAa,QAAQ,cAAc;AAC3D,OAAK,4BAA4B,QAAQ,6BAA6B,EAAE;;CAG1E,MAAgB,MACd,KACA,UACqB;EACrB,MAAM,WACJ,SAAS,WAAW,SAAS,SAAS,WAAW,SAAS;AAW5D,SAAO,CAJU,IAAIC,0BAAAA,SAAS;GAC5B,cANA,MAAM,KAAK,aAAa,MAAM,eAAe,OAAO;IAClD,MAAM,OAAA,GAAA,kBAAA,QAAa,KAAK,SAAS;IACjC,OAAO;IACP,GAAG,KAAK;IACT,CAA6D,EAE3B;GACnC;GACD,CAAC,CACe"}