Langchain YouTube audio loader duplicating transcripts

uemypmqf  于 3个月前  发布在  其他
关注(0)|答案(2)|浏览(51)

检查其他资源

  • 我为这个问题添加了一个非常描述性的标题。
  • 我在集成搜索中搜索了LangChain文档。
  • 我使用GitHub搜索找到了一个类似的问题,但没有找到。
  • 我确信这是LangChain中的一个bug,而不是我的代码。
  • 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决这个bug。

示例代码

youtube_url = 'https://youtu.be/RXQ5AtjUMAw'

loader = GenericLoader(
  YoutubeAudioLoader(
      [youtube_url],
      './videos'
  ),
  OpenAIWhisperParser(
      api_key=key,
      language='en'
  )
)

loader.load()

错误信息和堆栈跟踪(如果适用)

Transcribing part 1!
Transcribing part 2!
Transcribing part 1!
Transcribing part 1!
Transcribing part 3!
Transcribing part 3!

描述

  • 我正在使用Langchain为YouTube视频生成字幕,但我注意到我的api_key的使用率很高。经过仔细检查,我发现OpenAIWhisperParser在多次转录相同的部分。

  • 有时它会经过1,2,3等部分,然后返回到1并重复
  • 我注意到即使指定了语言,第一个片段始终是原始语言,就好像参数没有传递给第一个请求一样
  • 我尝试不使用语言参数,但问题仍然存在

系统信息

系统信息:
Python 3.11.9 在PyCharm虚拟环境中运行
langchain==0.2.1
langchain-community==0.2.1
langchain-core==0.2.1
langchain-openai==0.1.7
langchain-text-splitters==0.2.0
langgraph==0.0.55
langsmith==0.1.63

6za6bjd0

6za6bjd01#

你好,

我已经在相同版本的Python和PyCharm中的相同版本库中复制了你的代码。实际上,我并没有遇到过像你遇到的那样的问题。

这是我的完整代码:

from langchain_community.document_loaders.blob_loaders.youtube_audio import (
    YoutubeAudioLoader,
)
from langchain_community.document_loaders.generic import GenericLoader
from langchain_community.document_loaders.parsers import OpenAIWhisperParser

OPENAI_API_KEY = '...'

youtube_url = 'https://youtu.be/RXQ5AtjUMAw'

loader = GenericLoader(
    YoutubeAudioLoader(
        [youtube_url],
        './videos'
    ),
    OpenAIWhisperParser(
        api_key=OPENAI_API_KEY,
        language='fr'
    )
)

docs = loader.load()
print(docs)

这是我的完整依赖列表,因为我们还需要安装pydubyt_dlp:

aiohttp==3.9.5
aiosignal==1.3.1
annotated-types==0.7.0
anyio==4.4.0
attrs==23.2.0
Brotli==1.1.0
certifi==2024.6.2
charset-normalizer==3.3.2
dataclasses-json==0.6.7
distro==1.9.0
frozenlist==1.4.1
greenlet==3.0.3
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
idna==3.7
jsonpatch==1.33
jsonpointer==3.0.0
langchain==0.2.1
langchain-community==0.2.1
langchain-core==0.2.1
langchain-openai==0.1.7
langchain-text-splitters==0.2.0
langgraph==0.0.55
langsmith==0.1.63
marshmallow==3.21.3
multidict==6.0.5
mutagen==1.47.0
mypy-extensions==1.0.0
numpy==1.26.4
openai==1.34.0
orjson==3.10.5
packaging==23.2
pycryptodomex==3.20.0
pydantic==2.7.4
pydantic_core==2.18.4
pydub==0.25.1
PyYAML==6.0.1
regex==2024.5.15
requests==2.32.3
sniffio==1.3.1
SQLAlchemy==2.0.30
tenacity==8.3.0
tiktoken==0.7.0
tqdm==4.66.4
typing-inspect==0.9.0
typing_extensions==4.12.2
urllib3==2.2.1
uuid6==2024.1.12
websockets==12.0
yarl==1.9.4
yt-dlp==2024.5.27

此外,我想提到,我尝试多次运行代码并为language参数使用不同的值,所以每次我得到相同的输出:

ca1c2owp

ca1c2owp2#

我观察到的是这样的情况只发生在时长超过60分钟的视频中,所以这可能有助于诊断。

相关问题