Spaces:
Runtime error
Runtime error
Commit
·
9ed883a
1
Parent(s):
adce112
Add T2S func
Browse files- app.py +29 -2
- requirements.txt +2 -1
app.py
CHANGED
|
@@ -17,6 +17,8 @@ from langchain.tools import DuckDuckGoSearchRun
|
|
| 17 |
from langchain.utilities import WikipediaAPIWrapper
|
| 18 |
from langchain.python import PythonREPL
|
| 19 |
from langchain.chains import LLMMathChain
|
|
|
|
|
|
|
| 20 |
|
| 21 |
import pinecone
|
| 22 |
from pinecone.core.client.configuration import Configuration as OpenApiConfiguration
|
|
@@ -44,6 +46,12 @@ from langchain.document_loaders import (
|
|
| 44 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 45 |
from langchain.docstore.document import Document
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
# Custom document loaders
|
| 48 |
class MyElmLoader(UnstructuredEmailLoader):
|
| 49 |
"""Wrapper to fallback to text/plain when default does not work"""
|
|
@@ -200,6 +208,24 @@ class DB_Search(BaseTool):
|
|
| 200 |
def _arun(self, query: str):
|
| 201 |
raise NotImplementedError("N/A")
|
| 202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 203 |
|
| 204 |
|
| 205 |
Wikipedia = WikipediaAPIWrapper()
|
|
@@ -249,7 +275,7 @@ math_tool = Tool(
|
|
| 249 |
description ='Useful for when you need to answer questions about math.'
|
| 250 |
)
|
| 251 |
|
| 252 |
-
tools = [DB_Search(), duckduckgo_tool, wikipedia_tool, python_tool, math_tool]
|
| 253 |
|
| 254 |
# tools = load_tools(["Vector Database Search","Wikipedia Search","Python REPL","llm-math"], llm=llm)
|
| 255 |
|
|
@@ -275,7 +301,8 @@ Vector Database Search: This is the internal database to search information firs
|
|
| 275 |
Duckduckgo Internet Search: Useful to search information in internet when it is not available in other tools.
|
| 276 |
Wikipedia Search: Useful to search a topic, country or person when there is no availble information in vector database
|
| 277 |
Python REPL: Useful when you need python to answer questions. You should input python code.
|
| 278 |
-
Calculator: Useful for when you need to answer questions about math.
|
|
|
|
| 279 |
|
| 280 |
FORMAT_INSTRUCTIONS = """Use the following format:
|
| 281 |
|
|
|
|
| 17 |
from langchain.utilities import WikipediaAPIWrapper
|
| 18 |
from langchain.python import PythonREPL
|
| 19 |
from langchain.chains import LLMMathChain
|
| 20 |
+
import azure.cognitiveservices.speech as speechsdk
|
| 21 |
+
|
| 22 |
|
| 23 |
import pinecone
|
| 24 |
from pinecone.core.client.configuration import Configuration as OpenApiConfiguration
|
|
|
|
| 46 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 47 |
from langchain.docstore.document import Document
|
| 48 |
|
| 49 |
+
speech_config = speechsdk.SpeechConfig(subscription=os.getenv('SPEECH_KEY'), region=os.getenv('SPEECH_REGION'))
|
| 50 |
+
audio_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True)
|
| 51 |
+
speech_config.speech_synthesis_voice_name='en-US-JennyNeural'
|
| 52 |
+
global speech_synthesizer
|
| 53 |
+
speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config)
|
| 54 |
+
|
| 55 |
# Custom document loaders
|
| 56 |
class MyElmLoader(UnstructuredEmailLoader):
|
| 57 |
"""Wrapper to fallback to text/plain when default does not work"""
|
|
|
|
| 208 |
def _arun(self, query: str):
|
| 209 |
raise NotImplementedError("N/A")
|
| 210 |
|
| 211 |
+
def Text2Sound(text):
|
| 212 |
+
global speech_synthesizer
|
| 213 |
+
speech_synthesis_result = speech_synthesizer.speak_text_async(text).get()
|
| 214 |
+
if speech_synthesis_result.reason == speechsdk.ResultReason.SynthesizingAudioCompleted:
|
| 215 |
+
print("Speech synthesized for text [{}]".format(text))
|
| 216 |
+
elif speech_synthesis_result.reason == speechsdk.ResultReason.Canceled:
|
| 217 |
+
cancellation_details = speech_synthesis_result.cancellation_details
|
| 218 |
+
print("Speech synthesis canceled: {}".format(cancellation_details.reason))
|
| 219 |
+
if cancellation_details.reason == speechsdk.CancellationReason.Error:
|
| 220 |
+
if cancellation_details.error_details:
|
| 221 |
+
print("Error details: {}".format(cancellation_details.error_details))
|
| 222 |
+
print("Did you set the speech resource key and region values?")
|
| 223 |
+
|
| 224 |
+
Text2Sound_tool = Tool(
|
| 225 |
+
name = "Text To Sound",
|
| 226 |
+
func = Text2Sound.run,
|
| 227 |
+
description = "Useful when you need to convert text into sound file."
|
| 228 |
+
)
|
| 229 |
|
| 230 |
|
| 231 |
Wikipedia = WikipediaAPIWrapper()
|
|
|
|
| 275 |
description ='Useful for when you need to answer questions about math.'
|
| 276 |
)
|
| 277 |
|
| 278 |
+
tools = [DB_Search(), duckduckgo_tool, wikipedia_tool, python_tool, math_tool, Text2Sound_tool]
|
| 279 |
|
| 280 |
# tools = load_tools(["Vector Database Search","Wikipedia Search","Python REPL","llm-math"], llm=llm)
|
| 281 |
|
|
|
|
| 301 |
Duckduckgo Internet Search: Useful to search information in internet when it is not available in other tools.
|
| 302 |
Wikipedia Search: Useful to search a topic, country or person when there is no availble information in vector database
|
| 303 |
Python REPL: Useful when you need python to answer questions. You should input python code.
|
| 304 |
+
Calculator: Useful for when you need to answer questions about math.
|
| 305 |
+
Text To Sound: Useful when you need to convert text into sound file."""
|
| 306 |
|
| 307 |
FORMAT_INSTRUCTIONS = """Use the following format:
|
| 308 |
|
requirements.txt
CHANGED
|
@@ -5,4 +5,5 @@ gradio
|
|
| 5 |
pinecone-client
|
| 6 |
wikipedia
|
| 7 |
duckduckgo-search
|
| 8 |
-
tiktoken
|
|
|
|
|
|
| 5 |
pinecone-client
|
| 6 |
wikipedia
|
| 7 |
duckduckgo-search
|
| 8 |
+
tiktoken
|
| 9 |
+
azure-cognitiveservices-speech
|