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