From 74c7b799ef16a9987c5d13200b16f176b9d16ae1 Mon Sep 17 00:00:00 2001 From: Max Weng Date: Tue, 5 Dec 2023 12:27:54 +0800 Subject: [PATCH] migrate openai audio api (#13557) for issue https://github.com/langchain-ai/langchain/issues/13162 migrate openai audio api, as [openai v1.0.0 Migration Guide](https://github.com/openai/openai-python/discussions/742) --------- Co-authored-by: Double Max --- .../document_loaders/parsers/audio.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/libs/langchain/langchain/document_loaders/parsers/audio.py b/libs/langchain/langchain/document_loaders/parsers/audio.py index 073eb82ea08..737cfd147a3 100644 --- a/libs/langchain/langchain/document_loaders/parsers/audio.py +++ b/libs/langchain/langchain/document_loaders/parsers/audio.py @@ -6,6 +6,7 @@ from langchain_core.documents import Document from langchain.document_loaders.base import BaseBlobParser from langchain.document_loaders.blob_loaders import Blob +from langchain.utils.openai import is_openai_v1 logger = logging.getLogger(__name__) @@ -36,9 +37,13 @@ class OpenAIWhisperParser(BaseBlobParser): "pydub package not found, please install it with " "`pip install pydub`" ) - # Set the API key if provided - if self.api_key: - openai.api_key = self.api_key + if is_openai_v1(): + # api_key optional, defaults to `os.environ['OPENAI_API_KEY']` + client = openai.OpenAI(api_key=self.api_key) + else: + # Set the API key if provided + if self.api_key: + openai.api_key = self.api_key # Audio file from disk audio = AudioSegment.from_file(blob.path) @@ -63,7 +68,12 @@ class OpenAIWhisperParser(BaseBlobParser): attempts = 0 while attempts < 3: try: - transcript = openai.Audio.transcribe("whisper-1", file_obj) + if is_openai_v1(): + transcript = client.audio.transcriptions.create( + model="whisper-1", file=file_obj + ) + else: + transcript = openai.Audio.transcribe("whisper-1", file_obj) break except Exception as e: attempts += 1