From ca819e27fb56b25ead3ef490f3a4c52b04ec9dee Mon Sep 17 00:00:00 2001 From: Sarah Wooders Date: Thu, 21 Nov 2024 17:34:02 -0800 Subject: [PATCH] cleanup lock --- examples/crewai_tool_usage.py | 80 -------------------------------- poetry.lock | 86 +++++++++++++++++------------------ pyproject.toml | 23 +++------- 3 files changed, 50 insertions(+), 139 deletions(-) delete mode 100644 examples/crewai_tool_usage.py diff --git a/examples/crewai_tool_usage.py b/examples/crewai_tool_usage.py deleted file mode 100644 index 58e0199117..0000000000 --- a/examples/crewai_tool_usage.py +++ /dev/null @@ -1,80 +0,0 @@ -# Note: deprecated, recommended to use composio/langchain instead -# import json -# import uuid -# -# from letta import create_client -# from letta.schemas.embedding_config import EmbeddingConfig -# from letta.schemas.llm_config import LLMConfig -# from letta.schemas.memory import ChatMemory -# -# """ -# This example show how you can add CrewAI tools . -# -# First, make sure you have CrewAI and some of the extras downloaded. -# ``` -## from pypi -# pip install 'letta[external-tools]' -# -## from source -# poetry install --extras "external-tools" -# ``` -# then setup letta with `letta configure`. -# """ -# -# -# def main(): -# from crewai_tools import ScrapeWebsiteTool -# -# crewai_tool = ScrapeWebsiteTool(website_url="https://www.example.com") -# -# # Create a `LocalClient` (you can also use a `RESTClient`, see the letta_rest_client.py example) -# client = create_client() -# client.set_default_llm_config(LLMConfig.default_config("gpt-4o-mini")) -# client.set_default_embedding_config(EmbeddingConfig.default_config(provider="openai")) -# -# # create tool -# example_website_scrape_tool = client.load_crewai_tool(crewai_tool) -# tool_name = example_website_scrape_tool.name -# -# # Confirm that the tool is in -# tools = client.list_tools() -# assert example_website_scrape_tool.name in [t.name for t in tools] -# -# # Generate uuid for agent name for this example -# namespace = uuid.NAMESPACE_DNS -# agent_uuid = str(uuid.uuid5(namespace, "letta-crewai-tooling-example")) -# -# # Clear all agents -# for agent_state in client.list_agents(): -# if agent_state.name == agent_uuid: -# client.delete_agent(agent_id=agent_state.id) -# print(f"Deleted agent: {agent_state.name} with ID {str(agent_state.id)}") -# -# # google search persona -# persona = f""" -# -# My name is Letta. -# -# I am a personal assistant who answers a user's questions about a website `example.com`. When a user asks me a question about `example.com`, I will use a tool called {tool_name} which will search `example.com` and answer the relevant question. -# -# Don’t forget - inner monologue / inner thoughts should always be different than the contents of send_message! send_message is how you communicate with the user, whereas inner thoughts are your own personal inner thoughts. -# """ -# -# # Create an agent -# agent_state = client.create_agent(name=agent_uuid, memory=ChatMemory(human="My name is Matt.", persona=persona), tools=[tool_name]) -# print(f"Created agent: {agent_state.name} with ID {str(agent_state.id)}") -# -# # Send a message to the agent -# send_message_response = client.user_message(agent_id=agent_state.id, message="What's on the example.com website?") -# for message in send_message_response.messages: -# response_json = json.dumps(message.model_dump(), indent=4) -# print(f"{response_json}\n") -# -# # Delete agent -# client.delete_agent(agent_id=agent_state.id) -# print(f"Deleted agent: {agent_state.name} with ID {str(agent_state.id)}") -# -# -# if __name__ == "__main__": -# main() -# diff --git a/poetry.lock b/poetry.lock index 6fa70455b0..5e88ba7b18 100644 --- a/poetry.lock +++ b/poetry.lock @@ -398,7 +398,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "blinker" version = "1.9.0" description = "Fast, simple object-to-object and broadcast signaling" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc"}, @@ -409,7 +409,7 @@ files = [ name = "brotli" version = "1.1.0" description = "Python bindings for the Brotli compression library" -optional = false +optional = true python-versions = "*" files = [ {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"}, @@ -889,7 +889,7 @@ test = ["pytest"] name = "composio-core" version = "0.5.44" description = "Core package to act as a bridge between composio platform and other services." -optional = false +optional = true python-versions = "<4,>=3.9" files = [ {file = "composio_core-0.5.44-py3-none-any.whl", hash = "sha256:bb125794035a3c3c98dab1e72b45024068019c5eb3f29b9cc4eafc845320774b"}, @@ -925,7 +925,7 @@ tools = ["diskcache", "flake8", "networkx", "pathspec", "pygments", "ruff", "tra name = "composio-langchain" version = "0.5.44" description = "Use Composio to get an array of tools with your LangChain agent." -optional = false +optional = true python-versions = "<4,>=3.9" files = [ {file = "composio_langchain-0.5.44-py3-none-any.whl", hash = "sha256:4cb05d5b92faea32bc02c04e49b5dfae5858abe2f6469a81c673d7f754402375"}, @@ -943,7 +943,7 @@ pydantic = ">=2.6.4" name = "configargparse" version = "1.7" description = "A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables." -optional = false +optional = true python-versions = ">=3.5" files = [ {file = "ConfigArgParse-1.7-py3-none-any.whl", hash = "sha256:d249da6591465c6c26df64a9f73d2536e743be2f244eb3ebe61114af2f94f86b"}, @@ -958,7 +958,7 @@ yaml = ["PyYAML"] name = "cryptography" version = "43.0.3" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, @@ -1385,7 +1385,7 @@ vw = ["scikit-learn", "vowpalwabbit (>=8.10.0,<9.0.0)"] name = "flask" version = "3.1.0" description = "A simple framework for building complex web applications." -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "flask-3.1.0-py3-none-any.whl", hash = "sha256:d667207822eb83f1c4b50949b1623c8fc8d51f2341d65f72e1a1815397551136"}, @@ -1407,7 +1407,7 @@ dotenv = ["python-dotenv"] name = "flask-cors" version = "5.0.0" description = "A Flask extension adding a decorator for CORS support" -optional = false +optional = true python-versions = "*" files = [ {file = "Flask_Cors-5.0.0-py2.py3-none-any.whl", hash = "sha256:b9e307d082a9261c100d8fb0ba909eec6a228ed1b60a8315fd85f783d61910bc"}, @@ -1421,7 +1421,7 @@ Flask = ">=0.9" name = "flask-login" version = "0.6.3" description = "User authentication and session management for Flask." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "Flask-Login-0.6.3.tar.gz", hash = "sha256:5e23d14a607ef12806c699590b89d0f0e0d67baeec599d75947bf9c147330333"}, @@ -1590,7 +1590,7 @@ tqdm = ["tqdm"] name = "gevent" version = "24.11.1" description = "Coroutine-based network library" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "gevent-24.11.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:92fe5dfee4e671c74ffaa431fd7ffd0ebb4b339363d24d0d944de532409b935e"}, @@ -1650,7 +1650,7 @@ test = ["cffi (>=1.17.1)", "coverage (>=5.0)", "dnspython (>=1.16.0,<2.0)", "idn name = "geventhttpclient" version = "2.3.1" description = "HTTP client library for gevent" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "geventhttpclient-2.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:da22ab7bf5af4ba3d07cffee6de448b42696e53e7ac1fe97ed289037733bf1c2"}, @@ -2269,7 +2269,7 @@ type = ["pytest-mypy"] name = "inflection" version = "0.5.1" description = "A port of Ruby on Rails inflector to Python" -optional = false +optional = true python-versions = ">=3.5" files = [ {file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"}, @@ -2390,7 +2390,7 @@ colors = ["colorama (>=0.4.6)"] name = "itsdangerous" version = "2.2.0" description = "Safely pass data to untrusted environments and back." -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, @@ -2530,7 +2530,7 @@ files = [ name = "jsonpatch" version = "1.33" description = "Apply JSON-Patches (RFC 6902)" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" files = [ {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, @@ -2544,7 +2544,7 @@ jsonpointer = ">=1.9" name = "jsonpointer" version = "3.0.0" description = "Identify specific nodes in a JSON document (RFC 6901)" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, @@ -2555,7 +2555,7 @@ files = [ name = "jsonref" version = "1.1.0" description = "jsonref is a library for automatic dereferencing of JSON Reference objects for Python." -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9"}, @@ -2566,7 +2566,7 @@ files = [ name = "jsonschema" version = "4.23.0" description = "An implementation of JSON Schema validation for Python" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, @@ -2587,7 +2587,7 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "jsonschema-specifications" version = "2024.10.1" description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "jsonschema_specifications-2024.10.1-py3-none-any.whl", hash = "sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf"}, @@ -2670,7 +2670,7 @@ adal = ["adal (>=1.0.2)"] name = "langchain" version = "0.3.7" description = "Building applications with LLMs through composability" -optional = false +optional = true python-versions = "<4.0,>=3.9" files = [ {file = "langchain-0.3.7-py3-none-any.whl", hash = "sha256:cf4af1d5751dacdc278df3de1ff3cbbd8ca7eb55d39deadccdd7fb3d3ee02ac0"}, @@ -2697,7 +2697,7 @@ tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10" name = "langchain-community" version = "0.3.7" description = "Community contributed LangChain integrations." -optional = false +optional = true python-versions = "<4.0,>=3.9" files = [ {file = "langchain_community-0.3.7-py3-none-any.whl", hash = "sha256:048f89d9a54b0720a0f865d5d469494e088cb9970a2397b19446ce0d84867141"}, @@ -2725,7 +2725,7 @@ tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10" name = "langchain-core" version = "0.3.19" description = "Building applications with LLMs through composability" -optional = false +optional = true python-versions = "<4.0,>=3.9" files = [ {file = "langchain_core-0.3.19-py3-none-any.whl", hash = "sha256:562b7cc3c15dfaa9270cb1496990c1f3b3e0b660c4d6a3236d7f693346f2a96c"}, @@ -2748,7 +2748,7 @@ typing-extensions = ">=4.7" name = "langchain-openai" version = "0.2.9" description = "An integration package connecting OpenAI and LangChain" -optional = false +optional = true python-versions = "<4.0,>=3.9" files = [ {file = "langchain_openai-0.2.9-py3-none-any.whl", hash = "sha256:2723015e56879f9e5edfcb175fdbec6c296c1b3bf65caad28579ce9c4d1bd652"}, @@ -2764,7 +2764,7 @@ tiktoken = ">=0.7,<1" name = "langchain-text-splitters" version = "0.3.2" description = "LangChain text splitting utilities" -optional = false +optional = true python-versions = "<4.0,>=3.9" files = [ {file = "langchain_text_splitters-0.3.2-py3-none-any.whl", hash = "sha256:0db28c53f41d1bc024cdb3b1646741f6d46d5371e90f31e7e7c9fbe75d01c726"}, @@ -2778,7 +2778,7 @@ langchain-core = ">=0.3.15,<0.4.0" name = "langchainhub" version = "0.1.21" description = "The LangChain Hub API client" -optional = false +optional = true python-versions = "<4.0,>=3.8.1" files = [ {file = "langchainhub-0.1.21-py3-none-any.whl", hash = "sha256:1cc002dc31e0d132a776afd044361e2b698743df5202618cf2bad399246b895f"}, @@ -2794,7 +2794,7 @@ types-requests = ">=2.31.0.2,<3.0.0.0" name = "langsmith" version = "0.1.144" description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." -optional = false +optional = true python-versions = "<4.0,>=3.8.1" files = [ {file = "langsmith-0.1.144-py3-none-any.whl", hash = "sha256:08ffb975bff2e82fc6f5428837c64c074ea25102d08a25e256361a80812c6100"}, @@ -3121,7 +3121,7 @@ pydantic = "!=2.10" name = "locust" version = "2.32.3" description = "Developer-friendly load testing framework" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "locust-2.32.3-py3-none-any.whl", hash = "sha256:ebfce96f82b0b31418a498ae97724fdba9a41754e88471de56920339f3974347"}, @@ -3466,7 +3466,7 @@ tests = ["pytest (>=4.6)"] name = "msgpack" version = "1.1.0" description = "MessagePack serializer" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "msgpack-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7ad442d527a7e358a469faf43fda45aaf4ac3249c8310a82f0ccff9164e5dccd"}, @@ -4208,7 +4208,7 @@ xml = ["lxml (>=4.9.2)"] name = "paramiko" version = "3.5.0" description = "SSH2 protocol library" -optional = false +optional = true python-versions = ">=3.6" files = [ {file = "paramiko-3.5.0-py3-none-any.whl", hash = "sha256:1fedf06b085359051cd7d0d270cebe19e755a8a921cc2ddbfa647fb0cd7d68f9"}, @@ -5179,7 +5179,7 @@ model = ["milvus-model (>=0.1.0)"] name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" -optional = false +optional = true python-versions = ">=3.6" files = [ {file = "PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1"}, @@ -5227,7 +5227,7 @@ image = ["Pillow (>=8.0.0)"] name = "pyperclip" version = "1.9.0" description = "A cross-platform clipboard module for Python. (Only handles plain text for now.)" -optional = false +optional = true python-versions = "*" files = [ {file = "pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310"}, @@ -5292,7 +5292,7 @@ nodejs = ["nodejs-wheel-binaries"] name = "pysher" version = "1.0.8" description = "Pusher websocket client for python, based on Erik Kulyk's PythonPusherClient" -optional = false +optional = true python-versions = "*" files = [ {file = "Pysher-1.0.8.tar.gz", hash = "sha256:7849c56032b208e49df67d7bd8d49029a69042ab0bb45b2ed59fa08f11ac5988"}, @@ -5699,7 +5699,7 @@ prompt_toolkit = ">=2.0,<=3.0.36" name = "referencing" version = "0.35.1" description = "JSON Referencing + Python" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "referencing-0.35.1-py3-none-any.whl", hash = "sha256:eda6d3234d62814d1c64e305c1331c9a3a6132da475ab6382eaa997b21ee75de"}, @@ -5856,7 +5856,7 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "requests-toolbelt" version = "1.0.0" description = "A utility belt for advanced users of python-requests" -optional = false +optional = true python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, @@ -5889,7 +5889,7 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rpds-py" version = "0.21.0" description = "Python bindings to Rust's persistent data structures (rpds)" -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "rpds_py-0.21.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a017f813f24b9df929674d0332a374d40d7f0162b326562daae8066b502d0590"}, @@ -6016,7 +6016,7 @@ asn1crypto = ">=1.5.1" name = "semver" version = "3.0.2" description = "Python helper for Semantic Versioning (https://semver.org)" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "semver-3.0.2-py3-none-any.whl", hash = "sha256:b1ea4686fe70b981f85359eda33199d60c53964284e0cfb4977d243e37cf4bf4"}, @@ -6027,7 +6027,7 @@ files = [ name = "sentry-sdk" version = "2.19.0" description = "Python client for Sentry (https://sentry.io)" -optional = false +optional = true python-versions = ">=3.6" files = [ {file = "sentry_sdk-2.19.0-py2.py3-none-any.whl", hash = "sha256:7b0b3b709dee051337244a09a30dbf6e95afe0d34a1f8b430d45e0982a7c125b"}, @@ -6664,7 +6664,7 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6. name = "types-requests" version = "2.32.0.20241016" description = "Typing stubs for requests" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "types-requests-2.32.0.20241016.tar.gz", hash = "sha256:0d9cad2f27515d0e3e3da7134a1b6f28fb97129d86b867f24d9c726452634d95"}, @@ -7119,7 +7119,7 @@ files = [ name = "werkzeug" version = "3.1.3" description = "The comprehensive WSGI web application library." -optional = false +optional = true python-versions = ">=3.9" files = [ {file = "werkzeug-3.1.3-py3-none-any.whl", hash = "sha256:54b78bf3716d19a65be4fceccc0d1d7b89e608834989dfae50ea87564639213e"}, @@ -7476,7 +7476,7 @@ type = ["pytest-mypy"] name = "zope-event" version = "5.0" description = "Very basic event publishing system" -optional = false +optional = true python-versions = ">=3.7" files = [ {file = "zope.event-5.0-py3-none-any.whl", hash = "sha256:2832e95014f4db26c47a13fdaef84cef2f4df37e66b59d8f1f4a8f319a632c26"}, @@ -7494,7 +7494,7 @@ test = ["zope.testrunner"] name = "zope-interface" version = "7.1.1" description = "Interfaces for Python" -optional = false +optional = true python-versions = ">=3.8" files = [ {file = "zope.interface-7.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6650bd56ef350d37c8baccfd3ee8a0483ed6f8666e641e4b9ae1a1827b79f9e5"}, @@ -7545,9 +7545,9 @@ test = ["coverage[toml]", "zope.event", "zope.testing"] testing = ["coverage[toml]", "zope.event", "zope.testing"] [extras] -all = ["autoflake", "black", "composio-core", "composio-langchain", "datasets", "docker", "fastapi", "isort", "langchain", "langchain-community", "llama-index-embeddings-ollama", "pexpect", "pg8000", "pgvector", "pre-commit", "psycopg2", "psycopg2-binary", "pyright", "pytest-asyncio", "pytest-order", "uvicorn", "websockets", "wikipedia"] +all = ["autoflake", "black", "composio-core", "composio-langchain", "datasets", "docker", "fastapi", "isort", "langchain", "langchain-community", "llama-index-embeddings-ollama", "locust", "pexpect", "pg8000", "pgvector", "pre-commit", "psycopg2", "psycopg2-binary", "pyright", "pytest-asyncio", "pytest-order", "uvicorn", "websockets", "wikipedia"] autogen = ["pyautogen"] -dev = ["autoflake", "black", "datasets", "isort", "pexpect", "pre-commit", "pyright", "pytest-asyncio", "pytest-order"] +dev = ["autoflake", "black", "datasets", "isort", "locust", "pexpect", "pre-commit", "pyright", "pytest-asyncio", "pytest-order"] external-tools = ["composio-core", "composio-langchain", "docker", "langchain", "langchain-community", "wikipedia"] milvus = ["pymilvus"] ollama = ["llama-index-embeddings-ollama"] @@ -7559,4 +7559,4 @@ tests = ["wikipedia"] [metadata] lock-version = "2.0" python-versions = "<3.13,>=3.10" -content-hash = "4847d98ce49e07e94329ad1c3d4216a40bfa4605992ab3ccd81ca195b7ac8db4" +content-hash = "608f7d3ec8dd286bf1bacaf0b05647d6020e5c0e7a97fc0e255325e3a72ecd17" diff --git a/pyproject.toml b/pyproject.toml index 09fb5fa430..55f439eaa4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,6 @@ chromadb = ">=0.4.24,<0.5.0" sqlalchemy-json = "^0.7.0" fastapi = {version = "^0.104.1", optional = true} uvicorn = {version = "^0.24.0.post1", optional = true} -#pydantic = "^2.7.4" pydantic = ">=2.7.4,<2.10.0" pyautogen = {version = "0.2.22", optional = true} html2text = "^2020.1.16" @@ -51,9 +50,6 @@ pymilvus = {version ="^2.4.3", optional = true} python-box = "^7.1.1" sqlmodel = "^0.0.16" autoflake = {version = "^2.3.0", optional = true} -#llama-index-embeddings-huggingface = {version = "^0.2.0", optional = true} -#llama-index-embeddings-azure-openai = "^0.1.6" -#llama-index-embeddings-ollama = {version = "^0.1.2", optional = true} python-multipart = "^0.0.9" sqlalchemy-utils = "^0.41.2" pytest-order = {version = "^1.2.0", optional = true} @@ -61,35 +57,30 @@ pytest-asyncio = {version = "^0.23.2", optional = true} pydantic-settings = "^2.2.1" httpx-sse = "^0.4.0" isort = { version = "^5.13.2", optional = true } -#crewai = {version = "^0.41.1", optional = true} -#crewai-tools = {version = "^0.8.3", optional = true} docker = {version = "^7.1.0", optional = true} tiktoken = "^0.7.0" nltk = "^3.8.1" jinja2 = "^3.1.4" -locust = "^2.31.5" +locust = {version = "^2.31.5", optional = true} llama-index = "^0.11.9" llama-index-embeddings-openai = "^0.2.5" llama-index-embeddings-ollama = "^0.3.1" -#llama-index-embeddings-huggingface = {version = "^0.2.0", optional = true} wikipedia = {version = "^1.4.0", optional = true} -#langchain = {version = "^0.2.16", optional = true} -#langchain-community = {version = "^0.2.17", optional = true} -composio-langchain = "^0.5.28" -composio-core = "^0.5.34" +composio-langchain = {version = "^0.5.28", optional = true} +composio-core = {version = "^0.5.34", optional = true} alembic = "^1.13.3" pyhumps = "^3.8.0" psycopg2 = "^2.9.10" psycopg2-binary = "^2.9.10" pathvalidate = "^3.2.1" -langchain-community = "^0.3.7" -langchain = "^0.3.7" +langchain-community = {version = "^0.3.7", optional = true} +langchain = {version = "^0.3.7", optional = true} [tool.poetry.extras] #local = ["llama-index-embeddings-huggingface"] postgres = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2"] milvus = ["pymilvus"] -dev = ["pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake", "isort"] +dev = ["pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake", "isort", "locust"] server = ["websockets", "fastapi", "uvicorn"] autogen = ["pyautogen"] qdrant = ["qdrant-client"] @@ -97,7 +88,7 @@ ollama = ["llama-index-embeddings-ollama"] #external-tools = ["crewai", "docker", "crewai-tools", "langchain", "wikipedia", "langchain-community", "composio-core", "composio-langchain"] external-tools = ["docker", "langchain", "wikipedia", "langchain-community", "composio-core", "composio-langchain"] tests = ["wikipedia"] -all = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2", "pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake", "isort", "websockets", "fastapi", "uvicorn", "llama-index-embeddings-ollama", "docker", "langchain", "wikipedia", "langchain-community", "composio-core", "composio-langchain"] +all = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2", "pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "datasets", "pyright", "pytest-order", "autoflake", "isort", "websockets", "fastapi", "uvicorn", "llama-index-embeddings-ollama", "docker", "langchain", "wikipedia", "langchain-community", "composio-core", "composio-langchain", "locust"] [tool.poetry.group.dev.dependencies] black = "^24.4.2"