@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 2.62 kB
Source Map (JSON)
{"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"}