Fix linters

This commit is contained in:
mateusz.wosinski 2023-08-31 16:04:38 +02:00
parent 800fe4a73f
commit c6149aacef
3 changed files with 22 additions and 28 deletions

View File

@ -285,6 +285,7 @@ def _get_dataforseo_api_search(**kwargs: Any) -> BaseTool:
def _get_dataforseo_api_search_json(**kwargs: Any) -> BaseTool: def _get_dataforseo_api_search_json(**kwargs: Any) -> BaseTool:
return DataForSeoAPISearchResults(api_wrapper=DataForSeoAPIWrapper(**kwargs)) return DataForSeoAPISearchResults(api_wrapper=DataForSeoAPIWrapper(**kwargs))
def _get_eleven_labs_text2speech() -> BaseTool: def _get_eleven_labs_text2speech() -> BaseTool:
return ElevenLabsText2SpeechTool() return ElevenLabsText2SpeechTool()
@ -344,9 +345,7 @@ _EXTRA_OPTIONAL_TOOLS: Dict[str, Tuple[Callable[[KwArg(Any)], BaseTool], List[st
_get_dataforseo_api_search_json, _get_dataforseo_api_search_json,
["api_login", "api_password", "aiosession"], ["api_login", "api_password", "aiosession"],
), ),
"eleven_labs_text2speech": ( "eleven_labs_text2speech": (_get_eleven_labs_text2speech, ["eleven_api_key"]),
_get_eleven_labs_text2speech, ["eleven_api_key"]
)
} }

View File

@ -1,8 +1,5 @@
"""Eleven Labs Services Tools.""" """Eleven Labs Services Tools."""
from langchain.tools.eleven_labs.text2speech import ( from langchain.tools.eleven_labs.text2speech import ElevenLabsText2SpeechTool
ElevenLabsText2SpeechTool
)
__all__ = [ElevenLabsText2SpeechTool] __all__ = [ElevenLabsText2SpeechTool]

View File

@ -12,23 +12,22 @@ class ElevenLabsText2SpeechTool(BaseTool):
In order to set this up, follow instructions at: In order to set this up, follow instructions at:
https://docs.elevenlabs.io/welcome/introduction https://docs.elevenlabs.io/welcome/introduction
""" """
name: str = "eleven_labs_text2speech" name: str = "eleven_labs_text2speech"
description: str = ( description: str = (
"A wrapper around Eleven Labs Text2Speech. " "A wrapper around Eleven Labs Text2Speech. "
"Useful for when you need to convert text to speech. " "Useful for when you need to convert text to speech. "
"It supports multiple languages, including English, German, Polish, Spanish, Italian, French, Portuguese, and Hindi. " "It supports multiple languages, including English, German, Polish, "
"Spanish, Italian, French, Portuguese, and Hindi. "
) )
@root_validator(pre=True) @root_validator(pre=True)
def validate_environment(cls, values: Dict) -> Dict: def validate_environment(cls, values: Dict) -> Dict:
"""Validate that api key exists in environment.""" """Validate that api key exists in environment."""
_ = get_from_dict_or_env( _ = get_from_dict_or_env(values, "eleven_api_key", "ELEVEN_API_KEY")
values, "eleven_api_key", "ELEVEN_API_KEY"
)
return values return values
def _text2speech(self, text: str) -> str: def _text2speech(self, text: str) -> str:
try: try:
from elevenlabs import generate from elevenlabs import generate
@ -38,14 +37,12 @@ class ElevenLabsText2SpeechTool(BaseTool):
"elevenlabs is not installed. " "elevenlabs is not installed. "
"Run `pip install elevenlabs` to install." "Run `pip install elevenlabs` to install."
) )
speech = generate(text=text, model='eleven_multilingual_v1') speech = generate(text=text, model="eleven_multilingual_v1")
with tempfile.NamedTemporaryFile( with tempfile.NamedTemporaryFile(mode="bx", suffix=".wav", delete=False) as f:
mode="bx", suffix=".wav", delete=False
) as f:
f.write(speech) f.write(speech)
return f.name return f.name
def _run(self, query: str) -> str: def _run(self, query: str) -> str:
"""Use the tool.""" """Use the tool."""
try: try:
@ -58,7 +55,7 @@ class ElevenLabsText2SpeechTool(BaseTool):
"""Play the text as speech.""" """Play the text as speech."""
try: try:
from elevenlabs import play from elevenlabs import play
except ImportError: except ImportError:
raise ImportError( raise ImportError(
"elevenlabs is not installed. " "elevenlabs is not installed. "
@ -68,19 +65,20 @@ class ElevenLabsText2SpeechTool(BaseTool):
speech = f.read() speech = f.read()
play(speech) play(speech)
def stream(self, query: str) -> None: def stream(self, query: str) -> None:
"""Stream the text as speech.""" """Stream the text as speech."""
try: try:
from elevenlabs import stream, generate from elevenlabs import generate, stream
except ImportError: except ImportError:
raise ImportError( raise ImportError(
"elevenlabs is not installed. " "elevenlabs is not installed. "
"Run `pip install elevenlabs` to install." "Run `pip install elevenlabs` to install."
) )
speech_stream = generate(text=query, model='eleven_multilingual_v1', stream=True) speech_stream = generate(
text=query, model="eleven_multilingual_v1", stream=True
)
stream(speech_stream) stream(speech_stream)