From 7eb9dfde384e656b1ef16de8d73c8446685c8610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Tue, 4 Jun 2024 12:14:25 -0700 Subject: [PATCH] pyproject: include langchain-community and langchain-openai --- .../07b-interruptible-langchain.py | 27 ++-- linux-py3.10-requirements.txt | 133 +++++++++++++++--- pyproject.toml | 4 +- 3 files changed, 129 insertions(+), 35 deletions(-) diff --git a/examples/foundational/07b-interruptible-langchain.py b/examples/foundational/07b-interruptible-langchain.py index bda1d92fc..767877dff 100644 --- a/examples/foundational/07b-interruptible-langchain.py +++ b/examples/foundational/07b-interruptible-langchain.py @@ -4,15 +4,11 @@ # SPDX-License-Identifier: BSD 2-Clause License # - import asyncio import os import sys import aiohttp -from dotenv import load_dotenv -from loguru import logger -from runner import configure from pipecat.frames.frames import LLMMessagesFrame from pipecat.pipeline.pipeline import Pipeline @@ -25,20 +21,19 @@ from pipecat.services.elevenlabs import ElevenLabsTTSService from pipecat.transports.services.daily import DailyParams, DailyTransport from pipecat.vad.silero import SileroVADAnalyzer +from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder +from langchain_community.chat_message_histories import ChatMessageHistory +from langchain_core.chat_history import BaseChatMessageHistory +from langchain_core.runnables.history import RunnableWithMessageHistory +from langchain_openai import ChatOpenAI + +from loguru import logger + +from runner import configure + +from dotenv import load_dotenv load_dotenv(override=True) -try: - from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder - from langchain_community.chat_message_histories import ChatMessageHistory - from langchain_core.chat_history import BaseChatMessageHistory - from langchain_core.runnables.history import RunnableWithMessageHistory - from langchain_openai import ChatOpenAI - -except ModuleNotFoundError as e: - logger.exception( - "In order to run this example you need to `pip install pipecat-ai[langchain] langchain-community langchain-openai. Also, be sure to set `OPENAI_API_KEY` in the environment variable." - ) - raise Exception(f"Missing module: {e}") logger.remove(0) logger.add(sys.stderr, level="DEBUG") diff --git a/linux-py3.10-requirements.txt b/linux-py3.10-requirements.txt index d3687c17e..6a6bf2d92 100644 --- a/linux-py3.10-requirements.txt +++ b/linux-py3.10-requirements.txt @@ -5,7 +5,11 @@ # pip-compile --all-extras pyproject.toml # aiohttp==3.9.5 - # via pipecat-ai (pyproject.toml) + # via + # cartesia + # langchain + # langchain-community + # pipecat-ai (pyproject.toml) aiosignal==1.3.1 # via aiohttp annotated-types==0.7.0 @@ -18,10 +22,12 @@ anyio==4.4.0 # httpx # openai async-timeout==4.0.3 - # via aiohttp + # via + # aiohttp + # langchain attrs==23.2.0 # via aiohttp -av==12.0.0 +av==12.1.0 # via faster-whisper azure-cognitiveservices-speech==1.37.0 # via pipecat-ai (pyproject.toml) @@ -29,11 +35,15 @@ blinker==1.8.2 # via flask cachetools==5.3.3 # via google-auth -certifi==2024.2.2 +cartesia==0.1.1 + # via pipecat-ai (pyproject.toml) +certifi==2024.6.2 # via # httpcore # httpx # requests +cffi==1.16.0 + # via sounddevice charset-normalizer==3.3.2 # via requests click==8.1.7 @@ -44,6 +54,8 @@ ctranslate2==4.2.1 # via faster-whisper daily-python==0.9.1 # via pipecat-ai (pyproject.toml) +dataclasses-json==0.6.6 + # via langchain-community distro==1.9.0 # via # anthropic @@ -51,7 +63,9 @@ distro==1.9.0 einops==0.8.0 # via pipecat-ai (pyproject.toml) exceptiongroup==1.2.1 - # via anyio + # via + # anyio + # pytest fal-client==0.4.0 # via pipecat-ai (pyproject.toml) faster-whisper==1.0.2 @@ -75,7 +89,7 @@ frozenlist==1.4.1 # via # aiohttp # aiosignal -fsspec==2024.5.0 +fsspec==2024.6.0 # via # huggingface-hub # torch @@ -88,7 +102,7 @@ google-api-core[grpc]==2.19.0 # google-ai-generativelanguage # google-api-python-client # google-generativeai -google-api-python-client==2.131.0 +google-api-python-client==2.132.0 # via google-generativeai google-auth==2.29.0 # via @@ -101,11 +115,13 @@ google-auth-httplib2==0.2.0 # via google-api-python-client google-generativeai==0.5.4 # via pipecat-ai (pyproject.toml) -googleapis-common-protos==1.63.0 +googleapis-common-protos==1.63.1 # via # google-api-core # grpcio-status -grpcio==1.64.0 +greenlet==3.0.3 + # via sqlalchemy +grpcio==1.64.1 # via # google-api-core # grpcio-status @@ -123,6 +139,7 @@ httplib2==0.22.0 httpx==0.27.0 # via # anthropic + # cartesia # fal-client # openai httpx-sse==0.4.0 @@ -141,29 +158,62 @@ idna==3.7 # httpx # requests # yarl +iniconfig==2.0.0 + # via pytest itsdangerous==2.2.0 # via flask jinja2==3.1.4 # via # flask # torch +jsonpatch==1.33 + # via langchain-core +jsonpointer==2.4 + # via jsonpatch +langchain==0.2.1 + # via + # langchain-community + # pipecat-ai (pyproject.toml) +langchain-community==0.2.1 + # via pipecat-ai (pyproject.toml) +langchain-core==0.2.3 + # via + # langchain + # langchain-community + # langchain-openai + # langchain-text-splitters +langchain-openai==0.1.8 + # via pipecat-ai (pyproject.toml) +langchain-text-splitters==0.2.0 + # via langchain +langsmith==0.1.69 + # via + # langchain + # langchain-community + # langchain-core loguru==0.7.2 # via pipecat-ai (pyproject.toml) markupsafe==2.1.5 # via # jinja2 # werkzeug +marshmallow==3.21.2 + # via dataclasses-json mpmath==1.3.0 # via sympy multidict==6.0.5 # via # aiohttp # yarl +mypy-extensions==1.0.0 + # via typing-inspect networkx==3.3 # via torch numpy==1.26.4 # via # ctranslate2 + # langchain + # langchain-community # onnxruntime # pipecat-ai (pyproject.toml) # pyloudnorm @@ -204,16 +254,25 @@ nvidia-nvtx-cu12==12.1.105 onnxruntime==1.18.0 # via faster-whisper openai==1.26.0 - # via pipecat-ai (pyproject.toml) -packaging==24.0 + # via + # langchain-openai + # pipecat-ai (pyproject.toml) +orjson==3.10.3 + # via langsmith +packaging==23.2 # via # huggingface-hub + # langchain-core + # marshmallow # onnxruntime + # pytest # transformers pillow==10.3.0 # via # pipecat-ai (pyproject.toml) # torchvision +pluggy==1.5.0 + # via pytest proto-plus==1.23.0 # via # google-ai-generativelanguage @@ -237,12 +296,17 @@ pyasn1-modules==0.4.0 # via google-auth pyaudio==0.2.14 # via pipecat-ai (pyproject.toml) -pydantic==2.7.2 +pycparser==2.22 + # via cffi +pydantic==2.7.3 # via # anthropic # google-generativeai + # langchain + # langchain-core + # langsmith # openai -pydantic-core==2.18.3 +pydantic-core==2.18.4 # via pydantic pyht==0.0.28 # via pipecat-ai (pyproject.toml) @@ -250,21 +314,35 @@ pyloudnorm==0.1.1 # via pipecat-ai (pyproject.toml) pyparsing==3.1.2 # via httplib2 +pytest==8.2.2 + # via pytest-asyncio +pytest-asyncio==0.23.7 + # via cartesia python-dotenv==1.0.1 # via pipecat-ai (pyproject.toml) pyyaml==6.0.1 # via # ctranslate2 # huggingface-hub + # langchain + # langchain-community + # langchain-core # timm # transformers regex==2024.5.15 - # via transformers + # via + # tiktoken + # transformers requests==2.32.3 # via + # cartesia # google-api-core # huggingface-hub + # langchain + # langchain-community + # langsmith # pyht + # tiktoken # transformers rsa==4.9 # via google-auth @@ -280,10 +358,23 @@ sniffio==1.3.1 # anyio # httpx # openai -sympy==1.12 +sounddevice==0.4.7 + # via pipecat-ai (pyproject.toml) +sqlalchemy==2.0.30 + # via + # langchain + # langchain-community +sympy==1.12.1 # via # onnxruntime # torch +tenacity==8.3.0 + # via + # langchain + # langchain-community + # langchain-core +tiktoken==0.7.0 + # via langchain-openai timm==0.9.16 # via pipecat-ai (pyproject.toml) tokenizers==0.19.1 @@ -291,6 +382,8 @@ tokenizers==0.19.1 # anthropic # faster-whisper # transformers +tomli==2.0.1 + # via pytest torch==2.3.0 # via # pipecat-ai (pyproject.toml) @@ -311,7 +404,7 @@ transformers==4.40.2 # via pipecat-ai (pyproject.toml) triton==2.3.0 # via torch -typing-extensions==4.11.0 +typing-extensions==4.12.1 # via # anthropic # anyio @@ -321,13 +414,19 @@ typing-extensions==4.11.0 # pipecat-ai (pyproject.toml) # pydantic # pydantic-core + # sqlalchemy # torch + # typing-inspect +typing-inspect==0.9.0 + # via dataclasses-json uritemplate==4.1.1 # via google-api-python-client urllib3==2.2.1 # via requests websockets==12.0 - # via pipecat-ai (pyproject.toml) + # via + # cartesia + # pipecat-ai (pyproject.toml) werkzeug==3.0.3 # via flask yarl==1.9.4 diff --git a/pyproject.toml b/pyproject.toml index aa3558f87..31121d537 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ "Pillow~=10.3.0", "protobuf~=4.25.3", "pyloudnorm~=0.1.1", - "typing-extensions~=4.11.0", + "typing-extensions~=4.12.1", ] [project.urls] @@ -42,7 +42,7 @@ examples = [ "python-dotenv~=1.0.0", "flask~=3.0.3", "flask_cors~=4.0.1" ] fal = [ "fal-client~=0.4.0" ] google = [ "google-generativeai~=0.5.3" ] fireworks = [ "openai~=1.26.0" ] -langchain = [ "langchain~=0.2.1" ] +langchain = [ "langchain~=0.2.1", "langchain-community~=0.2.1", "langchain-openai~=0.1.8" ] local = [ "pyaudio~=0.2.0" ] moondream = [ "einops~=0.8.0", "timm~=0.9.16", "transformers~=4.40.2" ] openai = [ "openai~=1.26.0" ]