mirror of
https://github.com/hwchase17/langchain
synced 2024-11-18 09:25:54 +00:00
Add Steamship Image Generation Tool (#4580)
Co-authored-by: Enias Cailliau <enias@steamship.com>
This commit is contained in:
parent
739c297c94
commit
d96f6a106b
302
docs/use_cases/agents/multi_modal_output_agent.ipynb
Normal file
302
docs/use_cases/agents/multi_modal_output_agent.ipynb
Normal file
File diff suppressed because one or more lines are too long
257
docs/use_cases/multi_modal/image_agent.ipynb
Normal file
257
docs/use_cases/multi_modal/image_agent.ipynb
Normal file
File diff suppressed because one or more lines are too long
@ -46,3 +46,4 @@ Specific examples of agents include:
|
|||||||
- [Plug-and-PlAI (Plugins Database)](agents/custom_agent_with_plugin_retrieval_using_plugnplai.ipynb): an implementation of an agent that is designed to be able to use all AI Plugins retrieved from PlugNPlAI.
|
- [Plug-and-PlAI (Plugins Database)](agents/custom_agent_with_plugin_retrieval_using_plugnplai.ipynb): an implementation of an agent that is designed to be able to use all AI Plugins retrieved from PlugNPlAI.
|
||||||
- [Wikibase Agent](agents/wikibase_agent.ipynb): an implementation of an agent that is designed to interact with Wikibase.
|
- [Wikibase Agent](agents/wikibase_agent.ipynb): an implementation of an agent that is designed to interact with Wikibase.
|
||||||
- [Sales GPT](agents/sales_agent_with_context.ipynb): This notebook demonstrates an implementation of a Context-Aware AI Sales agent.
|
- [Sales GPT](agents/sales_agent_with_context.ipynb): This notebook demonstrates an implementation of a Context-Aware AI Sales agent.
|
||||||
|
- [Multi-Modal Output Agent](agents/multi_modal_output_agent.ipynb): an implementation of a multi-modal output agent that can generate text and images.
|
||||||
|
@ -36,6 +36,7 @@ from langchain.tools.playwright import (
|
|||||||
from langchain.tools.plugin import AIPluginTool
|
from langchain.tools.plugin import AIPluginTool
|
||||||
from langchain.tools.scenexplain.tool import SceneXplainTool
|
from langchain.tools.scenexplain.tool import SceneXplainTool
|
||||||
from langchain.tools.shell.tool import ShellTool
|
from langchain.tools.shell.tool import ShellTool
|
||||||
|
from langchain.tools.steamship_image_generation import SteamshipImageGenerationTool
|
||||||
from langchain.tools.vectorstore.tool import (
|
from langchain.tools.vectorstore.tool import (
|
||||||
VectorStoreQATool,
|
VectorStoreQATool,
|
||||||
VectorStoreQAWithSourcesTool,
|
VectorStoreQAWithSourcesTool,
|
||||||
@ -63,6 +64,7 @@ __all__ = [
|
|||||||
"ExtractTextTool",
|
"ExtractTextTool",
|
||||||
"FileSearchTool",
|
"FileSearchTool",
|
||||||
"GetElementsTool",
|
"GetElementsTool",
|
||||||
|
"SteamshipImageGenerationTool",
|
||||||
"GmailCreateDraft",
|
"GmailCreateDraft",
|
||||||
"GmailGetMessage",
|
"GmailGetMessage",
|
||||||
"GmailGetThread",
|
"GmailGetThread",
|
||||||
|
5
langchain/tools/steamship_image_generation/__init__.py
Normal file
5
langchain/tools/steamship_image_generation/__init__.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
"""Tool to generate an image."""
|
||||||
|
|
||||||
|
from langchain.tools.steamship_image_generation.tool import SteamshipImageGenerationTool
|
||||||
|
|
||||||
|
__all__ = ["SteamshipImageGenerationTool"]
|
127
langchain/tools/steamship_image_generation/tool.py
Normal file
127
langchain/tools/steamship_image_generation/tool.py
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
"""This tool allows agents to generate images using Steamship.
|
||||||
|
|
||||||
|
Steamship offers access to different third party image generation APIs
|
||||||
|
using a single API key.
|
||||||
|
|
||||||
|
Today the following models are supported:
|
||||||
|
- Dall-E
|
||||||
|
- Stable Diffusion
|
||||||
|
|
||||||
|
To use this tool, you must first set as environment variables:
|
||||||
|
STEAMSHIP_API_KEY
|
||||||
|
```
|
||||||
|
"""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from enum import Enum
|
||||||
|
from typing import TYPE_CHECKING, Dict, Optional
|
||||||
|
|
||||||
|
from pydantic import root_validator
|
||||||
|
|
||||||
|
from langchain.callbacks.manager import (
|
||||||
|
AsyncCallbackManagerForToolRun,
|
||||||
|
CallbackManagerForToolRun,
|
||||||
|
)
|
||||||
|
from langchain.tools import BaseTool
|
||||||
|
from langchain.tools.steamship_image_generation.utils import make_image_public
|
||||||
|
from langchain.utils import get_from_dict_or_env
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ModelName(str, Enum):
|
||||||
|
"""Supported Image Models for generation."""
|
||||||
|
|
||||||
|
DALL_E = "dall-e"
|
||||||
|
STABLE_DIFFUSION = "stable-diffusion"
|
||||||
|
|
||||||
|
|
||||||
|
SUPPORTED_IMAGE_SIZES = {
|
||||||
|
ModelName.DALL_E: ("256x256", "512x512", "1024x1024"),
|
||||||
|
ModelName.STABLE_DIFFUSION: ("512x512", "768x768"),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class SteamshipImageGenerationTool(BaseTool):
|
||||||
|
try:
|
||||||
|
from steamship import Steamship
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
"""Tool used to generate images from a text-prompt."""
|
||||||
|
model_name: ModelName
|
||||||
|
size: Optional[str] = "512x512"
|
||||||
|
steamship: Steamship
|
||||||
|
return_urls: Optional[bool] = False
|
||||||
|
|
||||||
|
name = "GenerateImage"
|
||||||
|
description = (
|
||||||
|
"Useful for when you need to generate an image."
|
||||||
|
"Input: A detailed text-2-image prompt describing an image"
|
||||||
|
"Output: the UUID of a generated image"
|
||||||
|
)
|
||||||
|
|
||||||
|
@root_validator(pre=True)
|
||||||
|
def validate_size(cls, values: Dict) -> Dict:
|
||||||
|
if "size" in values:
|
||||||
|
size = values["size"]
|
||||||
|
model_name = values["model_name"]
|
||||||
|
if size not in SUPPORTED_IMAGE_SIZES[model_name]:
|
||||||
|
raise RuntimeError(f"size {size} is not supported by {model_name}")
|
||||||
|
|
||||||
|
return values
|
||||||
|
|
||||||
|
@root_validator(pre=True)
|
||||||
|
def validate_environment(cls, values: Dict) -> Dict:
|
||||||
|
"""Validate that api key and python package exists in environment."""
|
||||||
|
steamship_api_key = get_from_dict_or_env(
|
||||||
|
values, "steamship_api_key", "STEAMSHIP_API_KEY"
|
||||||
|
)
|
||||||
|
|
||||||
|
try:
|
||||||
|
from steamship import Steamship
|
||||||
|
except ImportError:
|
||||||
|
raise ImportError(
|
||||||
|
"steamship is not installed. "
|
||||||
|
"Please install it with `pip install steamship`"
|
||||||
|
)
|
||||||
|
|
||||||
|
steamship = Steamship(
|
||||||
|
api_key=steamship_api_key,
|
||||||
|
)
|
||||||
|
values["steamship"] = steamship
|
||||||
|
if "steamship_api_key" in values:
|
||||||
|
del values["steamship_api_key"]
|
||||||
|
|
||||||
|
return values
|
||||||
|
|
||||||
|
def _run(
|
||||||
|
self,
|
||||||
|
query: str,
|
||||||
|
run_manager: Optional[CallbackManagerForToolRun] = None,
|
||||||
|
) -> str:
|
||||||
|
"""Use the tool."""
|
||||||
|
|
||||||
|
image_generator = self.steamship.use_plugin(
|
||||||
|
plugin_handle=self.model_name.value, config={"n": 1, "size": self.size}
|
||||||
|
)
|
||||||
|
|
||||||
|
task = image_generator.generate(text=query, append_output_to_file=True)
|
||||||
|
task.wait()
|
||||||
|
blocks = task.output.blocks
|
||||||
|
if len(blocks) > 0:
|
||||||
|
if self.return_urls:
|
||||||
|
return make_image_public(self.steamship, blocks[0])
|
||||||
|
else:
|
||||||
|
return blocks[0].id
|
||||||
|
|
||||||
|
raise RuntimeError(f"[{self.name}] Tool unable to generate image!")
|
||||||
|
|
||||||
|
async def _arun(
|
||||||
|
self,
|
||||||
|
query: str,
|
||||||
|
run_manager: Optional[AsyncCallbackManagerForToolRun] = None,
|
||||||
|
) -> str:
|
||||||
|
"""Use the tool asynchronously."""
|
||||||
|
raise NotImplementedError("GenerateImageTool does not support async")
|
47
langchain/tools/steamship_image_generation/utils.py
Normal file
47
langchain/tools/steamship_image_generation/utils.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
"""Steamship Utils."""
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import uuid
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from steamship import Block, Steamship
|
||||||
|
|
||||||
|
|
||||||
|
def make_image_public(client: Steamship, block: Block) -> str:
|
||||||
|
"""Upload a block to a signed URL and return the public URL."""
|
||||||
|
try:
|
||||||
|
from steamship.data.workspace import SignedUrl
|
||||||
|
from steamship.utils.signed_urls import upload_to_signed_url
|
||||||
|
except ImportError:
|
||||||
|
raise ValueError(
|
||||||
|
"The make_image_public function requires the steamship"
|
||||||
|
" package to be installed. Please install steamship"
|
||||||
|
" with `pip install --upgrade steamship`"
|
||||||
|
)
|
||||||
|
|
||||||
|
filepath = str(uuid.uuid4())
|
||||||
|
signed_url = (
|
||||||
|
client.get_workspace()
|
||||||
|
.create_signed_url(
|
||||||
|
SignedUrl.Request(
|
||||||
|
bucket=SignedUrl.Bucket.PLUGIN_DATA,
|
||||||
|
filepath=filepath,
|
||||||
|
operation=SignedUrl.Operation.WRITE,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.signed_url
|
||||||
|
)
|
||||||
|
read_signed_url = (
|
||||||
|
client.get_workspace()
|
||||||
|
.create_signed_url(
|
||||||
|
SignedUrl.Request(
|
||||||
|
bucket=SignedUrl.Bucket.PLUGIN_DATA,
|
||||||
|
filepath=filepath,
|
||||||
|
operation=SignedUrl.Operation.READ,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.signed_url
|
||||||
|
)
|
||||||
|
upload_to_signed_url(signed_url, block.raw())
|
||||||
|
return read_signed_url
|
139
poetry.lock
generated
139
poetry.lock
generated
@ -1934,6 +1934,21 @@ files = [
|
|||||||
{file = "flatbuffers-23.3.3.tar.gz", hash = "sha256:cabd87c4882f37840f6081f094b2c5bc28cefc2a6357732746936d055ab45c3d"},
|
{file = "flatbuffers-23.3.3.tar.gz", hash = "sha256:cabd87c4882f37840f6081f094b2c5bc28cefc2a6357732746936d055ab45c3d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fluent-logger"
|
||||||
|
version = "0.10.0"
|
||||||
|
description = "A Python logging handler for Fluentd event collector"
|
||||||
|
category = "main"
|
||||||
|
optional = true
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "fluent-logger-0.10.0.tar.gz", hash = "sha256:678bda90c513ff0393964b64544ce41ef25669d2089ce6c3b63d9a18554b9bfa"},
|
||||||
|
{file = "fluent_logger-0.10.0-py2.py3-none-any.whl", hash = "sha256:543637e5e62ec3fc3c92b44e5a4e148a3cea88a0f8ca4fae26c7e60fda7564c1"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
msgpack = ">1.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fqdn"
|
name = "fqdn"
|
||||||
version = "1.5.1"
|
version = "1.5.1"
|
||||||
@ -2848,6 +2863,18 @@ zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""}
|
|||||||
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
|
||||||
testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
|
testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "inflection"
|
||||||
|
version = "0.5.1"
|
||||||
|
description = "A port of Ruby on Rails inflector to Python"
|
||||||
|
category = "main"
|
||||||
|
optional = true
|
||||||
|
python-versions = ">=3.5"
|
||||||
|
files = [
|
||||||
|
{file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"},
|
||||||
|
{file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iniconfig"
|
name = "iniconfig"
|
||||||
version = "2.0.0"
|
version = "2.0.0"
|
||||||
@ -4085,6 +4112,79 @@ portalocker = [
|
|||||||
{version = ">=1.6,<3", markers = "python_version >= \"3.5\" and platform_system == \"Windows\""},
|
{version = ">=1.6,<3", markers = "python_version >= \"3.5\" and platform_system == \"Windows\""},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "msgpack"
|
||||||
|
version = "1.0.5"
|
||||||
|
description = "MessagePack serializer"
|
||||||
|
category = "main"
|
||||||
|
optional = true
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:525228efd79bb831cf6830a732e2e80bc1b05436b086d4264814b4b2955b2fa9"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4f8d8b3bf1ff2672567d6b5c725a1b347fe838b912772aa8ae2bf70338d5a198"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdc793c50be3f01106245a61b739328f7dccc2c648b501e237f0699fe1395b81"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cb47c21a8a65b165ce29f2bec852790cbc04936f502966768e4aae9fa763cb7"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e42b9594cc3bf4d838d67d6ed62b9e59e201862a25e9a157019e171fbe672dd3"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:55b56a24893105dc52c1253649b60f475f36b3aa0fc66115bffafb624d7cb30b"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:1967f6129fc50a43bfe0951c35acbb729be89a55d849fab7686004da85103f1c"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20a97bf595a232c3ee6d57ddaadd5453d174a52594bf9c21d10407e2a2d9b3bd"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d25dd59bbbbb996eacf7be6b4ad082ed7eacc4e8f3d2df1ba43822da9bfa122a"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-win32.whl", hash = "sha256:382b2c77589331f2cb80b67cc058c00f225e19827dbc818d700f61513ab47bea"},
|
||||||
|
{file = "msgpack-1.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:4867aa2df9e2a5fa5f76d7d5565d25ec76e84c106b55509e78c1ede0f152659a"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9f5ae84c5c8a857ec44dc180a8b0cc08238e021f57abdf51a8182e915e6299f0"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9e6ca5d5699bcd89ae605c150aee83b5321f2115695e741b99618f4856c50898"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5494ea30d517a3576749cad32fa27f7585c65f5f38309c88c6d137877fa28a5a"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ab2f3331cb1b54165976a9d976cb251a83183631c88076613c6c780f0d6e45a"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28592e20bbb1620848256ebc105fc420436af59515793ed27d5c77a217477705"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe5c63197c55bce6385d9aee16c4d0641684628f63ace85f73571e65ad1c1e8d"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ed40e926fa2f297e8a653c954b732f125ef97bdd4c889f243182299de27e2aa9"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b2de4c1c0538dcb7010902a2b97f4e00fc4ddf2c8cda9749af0e594d3b7fa3d7"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bf22a83f973b50f9d38e55c6aade04c41ddda19b00c4ebc558930d78eecc64ed"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-win32.whl", hash = "sha256:c396e2cc213d12ce017b686e0f53497f94f8ba2b24799c25d913d46c08ec422c"},
|
||||||
|
{file = "msgpack-1.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c4c68d87497f66f96d50142a2b73b97972130d93677ce930718f68828b382e2"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a2b031c2e9b9af485d5e3c4520f4220d74f4d222a5b8dc8c1a3ab9448ca79c57"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f837b93669ce4336e24d08286c38761132bc7ab29782727f8557e1eb21b2080"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1d46dfe3832660f53b13b925d4e0fa1432b00f5f7210eb3ad3bb9a13c6204a6"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:366c9a7b9057e1547f4ad51d8facad8b406bab69c7d72c0eb6f529cf76d4b85f"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:4c075728a1095efd0634a7dccb06204919a2f67d1893b6aa8e00497258bf926c"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:f933bbda5a3ee63b8834179096923b094b76f0c7a73c1cfe8f07ad608c58844b"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:36961b0568c36027c76e2ae3ca1132e35123dcec0706c4b7992683cc26c1320c"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-win32.whl", hash = "sha256:b5ef2f015b95f912c2fcab19c36814963b5463f1fb9049846994b007962743e9"},
|
||||||
|
{file = "msgpack-1.0.5-cp36-cp36m-win_amd64.whl", hash = "sha256:288e32b47e67f7b171f86b030e527e302c91bd3f40fd9033483f2cacc37f327a"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:137850656634abddfb88236008339fdaba3178f4751b28f270d2ebe77a563b6c"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c05a4a96585525916b109bb85f8cb6511db1c6f5b9d9cbcbc940dc6b4be944b"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56a62ec00b636583e5cb6ad313bbed36bb7ead5fa3a3e38938503142c72cba4f"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef8108f8dedf204bb7b42994abf93882da1159728a2d4c5e82012edd92c9da9f"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1835c84d65f46900920b3708f5ba829fb19b1096c1800ad60bae8418652a951d"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:e57916ef1bd0fee4f21c4600e9d1da352d8816b52a599c46460e93a6e9f17086"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:17358523b85973e5f242ad74aa4712b7ee560715562554aa2134d96e7aa4cbbf"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-win32.whl", hash = "sha256:cb5aaa8c17760909ec6cb15e744c3ebc2ca8918e727216e79607b7bbce9c8f77"},
|
||||||
|
{file = "msgpack-1.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:ab31e908d8424d55601ad7075e471b7d0140d4d3dd3272daf39c5c19d936bd82"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b72d0698f86e8d9ddf9442bdedec15b71df3598199ba33322d9711a19f08145c"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:379026812e49258016dd84ad79ac8446922234d498058ae1d415f04b522d5b2d"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:332360ff25469c346a1c5e47cbe2a725517919892eda5cfaffe6046656f0b7bb"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:476a8fe8fae289fdf273d6d2a6cb6e35b5a58541693e8f9f019bfe990a51e4ba"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9985b214f33311df47e274eb788a5893a761d025e2b92c723ba4c63936b69b1"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48296af57cdb1d885843afd73c4656be5c76c0c6328db3440c9601a98f303d87"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:addab7e2e1fcc04bd08e4eb631c2a90960c340e40dfc4a5e24d2ff0d5a3b3edb"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:916723458c25dfb77ff07f4c66aed34e47503b2eb3188b3adbec8d8aa6e00f48"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:821c7e677cc6acf0fd3f7ac664c98803827ae6de594a9f99563e48c5a2f27eb0"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-win32.whl", hash = "sha256:1c0f7c47f0087ffda62961d425e4407961a7ffd2aa004c81b9c07d9269512f6e"},
|
||||||
|
{file = "msgpack-1.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:bae7de2026cbfe3782c8b78b0db9cbfc5455e079f1937cb0ab8d133496ac55e1"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:20c784e66b613c7f16f632e7b5e8a1651aa5702463d61394671ba07b2fc9e025"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:266fa4202c0eb94d26822d9bfd7af25d1e2c088927fe8de9033d929dd5ba24c5"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18334484eafc2b1aa47a6d42427da7fa8f2ab3d60b674120bce7a895a0a85bdd"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57e1f3528bd95cc44684beda696f74d3aaa8a5e58c816214b9046512240ef437"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:586d0d636f9a628ddc6a17bfd45aa5b5efaf1606d2b60fa5d87b8986326e933f"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a740fa0e4087a734455f0fc3abf5e746004c9da72fbd541e9b113013c8dc3282"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:3055b0455e45810820db1f29d900bf39466df96ddca11dfa6d074fa47054376d"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a61215eac016f391129a013c9e46f3ab308db5f5ec9f25811e811f96962599a8"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:362d9655cd369b08fda06b6657a303eb7172d5279997abe094512e919cf74b11"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-win32.whl", hash = "sha256:ac9dd47af78cae935901a9a500104e2dea2e253207c924cc95de149606dc43cc"},
|
||||||
|
{file = "msgpack-1.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:06f5174b5f8ed0ed919da0e62cbd4ffde676a374aba4020034da05fab67b9164"},
|
||||||
|
{file = "msgpack-1.0.5.tar.gz", hash = "sha256:c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "multidict"
|
name = "multidict"
|
||||||
version = "6.0.4"
|
version = "6.0.4"
|
||||||
@ -7427,6 +7527,18 @@ dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"]
|
|||||||
doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"]
|
doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"]
|
||||||
test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
|
test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "semver"
|
||||||
|
version = "3.0.0"
|
||||||
|
description = "Python helper for Semantic Versioning (https://semver.org)"
|
||||||
|
category = "main"
|
||||||
|
optional = true
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "semver-3.0.0-py3-none-any.whl", hash = "sha256:ab4f69fb1d1ecfb5d81f96411403d7a611fa788c45d252cf5b408025df3ab6ce"},
|
||||||
|
{file = "semver-3.0.0.tar.gz", hash = "sha256:94df43924c4521ec7d307fc86da1531db6c2c33d9d5cdc3e64cca0eb68569269"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "send2trash"
|
name = "send2trash"
|
||||||
version = "1.8.2"
|
version = "1.8.2"
|
||||||
@ -8164,6 +8276,29 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"]
|
full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "steamship"
|
||||||
|
version = "2.16.9"
|
||||||
|
description = "The fastest way to add language AI to your product."
|
||||||
|
category = "main"
|
||||||
|
optional = true
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "steamship-2.16.9-py3-none-any.whl", hash = "sha256:02ed613363d912e1deb2811f86753cf398b3035f6afa5b1eb6e5884da61a7c3c"},
|
||||||
|
{file = "steamship-2.16.9.tar.gz", hash = "sha256:34732b45e470f31ecdeefcbc06a98ac7d7c37d062394e598ec285d2f3faa1b14"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
aiohttp = ">=3.8.4,<3.9.0"
|
||||||
|
click = ">=8.1.3,<8.2.0"
|
||||||
|
fluent-logger = ">=0.10.0,<0.11.0"
|
||||||
|
inflection = ">=0.5.1,<0.6.0"
|
||||||
|
pydantic = ">=1.10.2,<1.11.0"
|
||||||
|
requests = ">=2.28.1,<2.29.0"
|
||||||
|
semver = ">=3.0.0,<3.1.0"
|
||||||
|
tiktoken = ">=0.3.3,<0.4.0"
|
||||||
|
toml = ">=0.10.2,<0.11.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stringcase"
|
name = "stringcase"
|
||||||
version = "1.2.0"
|
version = "1.2.0"
|
||||||
@ -8689,7 +8824,7 @@ testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"]
|
|||||||
name = "toml"
|
name = "toml"
|
||||||
version = "0.10.2"
|
version = "0.10.2"
|
||||||
description = "Python Library for Tom's Obvious, Minimal Language"
|
description = "Python Library for Tom's Obvious, Minimal Language"
|
||||||
category = "dev"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||||
files = [
|
files = [
|
||||||
@ -9873,4 +10008,4 @@ qdrant = ["qdrant-client"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.8.1,<4.0"
|
python-versions = ">=3.8.1,<4.0"
|
||||||
content-hash = "302163050738bb858c34c066dbf684aab5940a430756999940dc9ba66a4f24a6"
|
content-hash = "62b7e066979d91e6baf921af79ac1fd0f44d9c0809b697dd511ac7c0fb3a09cc"
|
||||||
|
@ -77,6 +77,7 @@ pexpect = {version = "^4.8.0", optional = true}
|
|||||||
pyvespa = {version = "^0.33.0", optional = true}
|
pyvespa = {version = "^0.33.0", optional = true}
|
||||||
O365 = {version = "^2.0.26", optional = true}
|
O365 = {version = "^2.0.26", optional = true}
|
||||||
jq = {version = "^1.4.1", optional = true}
|
jq = {version = "^1.4.1", optional = true}
|
||||||
|
steamship = {version = "^2.16.9", optional = true}
|
||||||
pdfminer-six = {version = "^20221105", optional = true}
|
pdfminer-six = {version = "^20221105", optional = true}
|
||||||
docarray = {version="^0.31.0", optional=true}
|
docarray = {version="^0.31.0", optional=true}
|
||||||
protobuf = {version="3.19", optional=true}
|
protobuf = {version="3.19", optional=true}
|
||||||
|
@ -39,6 +39,7 @@ _EXPECTED = [
|
|||||||
"ReadFileTool",
|
"ReadFileTool",
|
||||||
"SceneXplainTool",
|
"SceneXplainTool",
|
||||||
"ShellTool",
|
"ShellTool",
|
||||||
|
"SteamshipImageGenerationTool",
|
||||||
"StructuredTool",
|
"StructuredTool",
|
||||||
"Tool",
|
"Tool",
|
||||||
"VectorStoreQATool",
|
"VectorStoreQATool",
|
||||||
|
Loading…
Reference in New Issue
Block a user