From 15b1127b315154865ec92b7c606769e076d16c21 Mon Sep 17 00:00:00 2001 From: Franklin Lindemberg Guimaraes Date: Tue, 23 Jul 2024 14:31:36 -0400 Subject: [PATCH 1/3] add demo for multilingual agent --- ai-services/multilingual-agent/.gitignore | 5 + ai-services/multilingual-agent/app.py | 61 ++++++++++ ai-services/multilingual-agent/assistant.py | 31 +++++ ai-services/multilingual-agent/cli.py | 109 ++++++++++++++++++ .../multilingual-agent/event_handler.py | 44 +++++++ .../multilingual-agent/requirements.txt | 4 + 6 files changed, 254 insertions(+) create mode 100644 ai-services/multilingual-agent/.gitignore create mode 100644 ai-services/multilingual-agent/app.py create mode 100644 ai-services/multilingual-agent/assistant.py create mode 100644 ai-services/multilingual-agent/cli.py create mode 100644 ai-services/multilingual-agent/event_handler.py create mode 100644 ai-services/multilingual-agent/requirements.txt diff --git a/ai-services/multilingual-agent/.gitignore b/ai-services/multilingual-agent/.gitignore new file mode 100644 index 00000000..acc8a432 --- /dev/null +++ b/ai-services/multilingual-agent/.gitignore @@ -0,0 +1,5 @@ +*.log + +.idea/ + +.env diff --git a/ai-services/multilingual-agent/app.py b/ai-services/multilingual-agent/app.py new file mode 100644 index 00000000..ed516485 --- /dev/null +++ b/ai-services/multilingual-agent/app.py @@ -0,0 +1,61 @@ +import os +import logging + +from dotenv import load_dotenv +from openai import AzureOpenAI +from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer, AutoDetectSourceLanguageConfig, SpeechSynthesizer +from azure.cognitiveservices.speech.audio import AudioOutputConfig +from azure.ai.translation.text import TextTranslationClient, TranslatorCredential + +from cli import Cli +from assistant import create_assistant + +load_dotenv() + +logger = logging.getLogger(__name__) + + +if __name__ == "__main__": + try: + logging.basicConfig(filename='app.log', level=logging.INFO) + + speech_key = os.getenv("SPEECH_API_KEY") + speech_region = os.getenv("SPEECH_REGION") + translation_key = os.getenv("TRANSLATION_KEY") + translation_region = os.getenv("TRANSLATION_REGION") + + openai_client = AzureOpenAI( + api_key=os.getenv("OPENAI_KEY"), + api_version="2024-07-01-preview", + azure_endpoint=os.getenv("OPENAI_ENDPOINT"), + default_headers={"X-Ms-Enable-Preview": "true"} + ) + + assistant_id = os.getenv("ASSISTANT_ID") + + if assistant_id is None or assistant_id == "": + assistant_id = create_assistant(openai_client).id + logger.debug("created new assistant with id {}".format(assistant_id)) + + speech_config = SpeechConfig(subscription=speech_key, region=speech_region) + + auto_detect_config = AutoDetectSourceLanguageConfig(languages=["en-US", "fr-FR", "pt-BR"]) + speech_recognizer = SpeechRecognizer(speech_config=speech_config, auto_detect_source_language_config=auto_detect_config) + + audio_config = AudioOutputConfig(use_default_speaker=True) + speech_synthesizer = SpeechSynthesizer(speech_config=speech_config, audio_config=audio_config) + + translator_credential = TranslatorCredential(key=translation_key, region=translation_region) + text_translator = TextTranslationClient(credential=translator_credential) + + runner = Cli( + openai_client=openai_client, + assistant_id=assistant_id, + speech_recognizer=speech_recognizer, + speech_synthesizer=speech_synthesizer, + text_translator=text_translator + ) + + runner.run() + except Exception as error: + raise error diff --git a/ai-services/multilingual-agent/assistant.py b/ai-services/multilingual-agent/assistant.py new file mode 100644 index 00000000..a035b3d0 --- /dev/null +++ b/ai-services/multilingual-agent/assistant.py @@ -0,0 +1,31 @@ +import os + +from openai import AzureOpenAI + + +def create_assistant(client: AzureOpenAI): + return client.beta.assistants.create( + name="Travel planner copilot", + instructions=''' +You are travel planner that helps people plan trips across the world. +The user might give you constraints like: +- destination +- weather preference +- attractions preference +- date preference +When asked for up-to-date information, you should use the browser tool. +You should try to give a plan in the following format: +- city +- start and end date +- cost breakdown +- weather forecast +- attractions and any useful information about tickets. + ''', + tools=[{ + "type": "browser", + "browser": { + "bing_resource_id": os.getenv("BING_RESOURCE_ID") + } + }], + model="gpt-4-1106-preview", + ) diff --git a/ai-services/multilingual-agent/cli.py b/ai-services/multilingual-agent/cli.py new file mode 100644 index 00000000..88e5dc81 --- /dev/null +++ b/ai-services/multilingual-agent/cli.py @@ -0,0 +1,109 @@ +import logging + +from openai import AzureOpenAI +from azure.cognitiveservices.speech import SpeechRecognizer, SpeechSynthesizer, ResultReason, CancellationReason, PropertyId +from azure.ai.translation.text import TextTranslationClient +from azure.ai.translation.text.models import InputTextItem + +from event_handler import EventHandler + + +logger = logging.getLogger(__name__) + +base_language = 'en' + + +class Cli: + def __init__(self, + openai_client: AzureOpenAI, + assistant_id: str, + speech_recognizer: SpeechRecognizer, + speech_synthesizer: SpeechSynthesizer, + text_translator: TextTranslationClient): + self.openai_client = openai_client + self.assistant_id = assistant_id + self.speech_recognizer = speech_recognizer + self.speech_synthesizer = speech_synthesizer + self.text_translator = text_translator + self.language = '' + self.thread_id = '' + + def run(self): + thread = self.openai_client.beta.threads.create() + self.thread_id = thread.id + + print("Say something...") + + while True: + try: + user_input = self.recognize() + + base_language_text = user_input + if not self.language.startswith(base_language): + base_language_text = self.translate(text=user_input, language=base_language) + + output_text = self.assistant(content=base_language_text) + + if not self.language.startswith(base_language): + output_text = self.translate(text=output_text, language=self.language) + + self.synthesize(output_text) + except Exception as e: + logger.error("failure: {}".format(e)) + continue + + def recognize(self) -> str: + response = self.speech_recognizer.recognize_once() + + reason = response.reason + if reason != ResultReason.RecognizedSpeech: + error = 'Failed to recognize speech.' + if reason == ResultReason.NoMatch: + error = "No speech could be recognized: {}".format(response.no_match_details) + elif reason == ResultReason.Canceled: + cancellation_details = response.cancellation_details + error = "Speech Recognition canceled: {}".format(cancellation_details.reason) + if cancellation_details.reason == CancellationReason.Error: + error += "Error details: {}".format(cancellation_details.error_details) + raise Exception("Speech recognition failed with error: {}".format(error)) + + self.language = response.properties[PropertyId.SpeechServiceConnection_AutoDetectSourceLanguageResult] + logger.info("Recognized (language={}): {}".format(self.language, response.text)) + + return response.text + + def synthesize(self, text: str) -> None: + response = self.speech_synthesizer.speak_text(text) + + if response.reason != ResultReason.SynthesizingAudioCompleted: + cancellation_details = response.cancellation_details + error = "Speech synthesis canceled: {}".format(cancellation_details.reason) + if cancellation_details.reason == CancellationReason.Error: + if cancellation_details.error_details: + error += "Error details: {}".format(cancellation_details.error_details) + raise Exception("Speech synthesis failed with error: {}".format(error)) + + logger.info("Speech synthesized for text [{}]".format(text)) + + def translate(self, text: str, language: str) -> str: + content = InputTextItem(text=text) + translation = self.text_translator.translate(content=[content], to=[language]) + if len(translation) == 0 or len(translation[0].translations) == 0: + raise Exception("Failed to translate to {} text: {}".format(language, text)) + + logger.info("Translated [{}] to [{}]".format(text, translation[0].translations[0].text)) + return translation[0].translations[0].text + + def assistant(self, content: str) -> str: + self.openai_client.beta.threads.messages.create( + thread_id=self.thread_id, + role="user", + content=content + ) + + event_handler = EventHandler() + with self.openai_client.beta.threads.runs.stream(assistant_id=self.assistant_id, thread_id=self.thread_id, + event_handler=event_handler) as stream: + stream.until_done() + + return event_handler.get_result() diff --git a/ai-services/multilingual-agent/event_handler.py b/ai-services/multilingual-agent/event_handler.py new file mode 100644 index 00000000..2e98815d --- /dev/null +++ b/ai-services/multilingual-agent/event_handler.py @@ -0,0 +1,44 @@ +import logging + +from openai import AssistantEventHandler +from openai.types.beta.threads.runs import ToolCall +from openai.types.beta.threads import Text + + +logger = logging.getLogger(__name__) + + +class EventHandler(AssistantEventHandler): + def __init__(self): + super().__init__() + self.result = '' + + def on_exception(self, exception: Exception) -> None: + logger.error("please try again. an exception occurred: {}".format(exception)) + + def on_tool_call_created(self, tool_call: ToolCall): + logger.info("started calling tool {}".format(tool_call['type'])) + + def on_tool_call_done(self, tool_call: ToolCall) -> None: + logger.info("completed calling tool {}".format(tool_call['type'])) + + def on_text_done(self, text: Text) -> None: + self.result = text.value + + is_first_url_citation = True + for annotation in text.annotations: + if annotation.type == "url_citation": + if is_first_url_citation: + self.result += "\nUrl citations: \n" + title = annotation.model_extra['url_citation']['title'] + url = annotation.model_extra['url_citation']['url'] + self.result += "* {} - [{}]({})\n".format(annotation.text, title, url) + + def on_timeout(self) -> None: + logger.warning("timeout occurred. please try again") + + def on_end(self) -> None: + logger.info("completed conversation with assistant") + + def get_result(self) -> str: + return self.result \ No newline at end of file diff --git a/ai-services/multilingual-agent/requirements.txt b/ai-services/multilingual-agent/requirements.txt new file mode 100644 index 00000000..62470e90 --- /dev/null +++ b/ai-services/multilingual-agent/requirements.txt @@ -0,0 +1,4 @@ +azure.cognitiveservices.speech==1.38.0 +azure-ai-translation-text==1.0.0b1 +openai==1.30.1 +python-dotenv From 26d79f9ba2bacaeb42dc63676b2a64c936f8080e Mon Sep 17 00:00:00 2001 From: Franklin Lindemberg Guimaraes Date: Tue, 23 Jul 2024 14:33:48 -0400 Subject: [PATCH 2/3] add env example file --- ai-services/multilingual-agent/.env | 7 +++++++ ai-services/multilingual-agent/event_handler.py | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 ai-services/multilingual-agent/.env diff --git a/ai-services/multilingual-agent/.env b/ai-services/multilingual-agent/.env new file mode 100644 index 00000000..83fcedfe --- /dev/null +++ b/ai-services/multilingual-agent/.env @@ -0,0 +1,7 @@ +SPEECH_API_KEY="" +SPEECH_REGION="" +TRANSLATION_KEY="" +TRANSLATION_REGION="" +OPENAI_KEY="" +OPENAI_ENDPOINT="" +ASSISTANT_ID="" diff --git a/ai-services/multilingual-agent/event_handler.py b/ai-services/multilingual-agent/event_handler.py index 2e98815d..ba2568f9 100644 --- a/ai-services/multilingual-agent/event_handler.py +++ b/ai-services/multilingual-agent/event_handler.py @@ -41,4 +41,4 @@ def on_end(self) -> None: logger.info("completed conversation with assistant") def get_result(self) -> str: - return self.result \ No newline at end of file + return self.result From 57358f186f961ac959d2b7139e2dee321144a463 Mon Sep 17 00:00:00 2001 From: Franklin Lindemberg Guimaraes Date: Wed, 31 Jul 2024 09:15:47 -0400 Subject: [PATCH 3/3] fix --- .gitignore | 4 +- ai-services/multilingual-agent/LICENSE | 21 ++++ ai-services/multilingual-agent/README.md | 105 ++++++++++++++++++ .../media/multilingual-agent.jpg | Bin 0 -> 67510 bytes 4 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 ai-services/multilingual-agent/LICENSE create mode 100644 ai-services/multilingual-agent/README.md create mode 100644 ai-services/multilingual-agent/media/multilingual-agent.jpg diff --git a/.gitignore b/.gitignore index 89929d7e..f8fb36aa 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ appsettings.json __pycache__ -.cache \ No newline at end of file +.cache + +.idea/ \ No newline at end of file diff --git a/ai-services/multilingual-agent/LICENSE b/ai-services/multilingual-agent/LICENSE new file mode 100644 index 00000000..6401c462 --- /dev/null +++ b/ai-services/multilingual-agent/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Chris Ayers + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/ai-services/multilingual-agent/README.md b/ai-services/multilingual-agent/README.md new file mode 100644 index 00000000..67e8f293 --- /dev/null +++ b/ai-services/multilingual-agent/README.md @@ -0,0 +1,105 @@ +# AI-in-a-Box Multilingual Agent + + +||| +|:---| ---:| +|This solution is part of the the AI-in-a-Box framework developed by the team of Microsoft Customer Engineers and Architects to accelerate the deployment of AI and ML solutions. Our goal is to simplify the adoption of AI technologies by providing ready-to-use accelerators that ensure quality, efficiency, and rapid deployment.| AI-in-a-box Logo: Description | + +## User Story +![multilingual-agent](./media/multilingual-agent.jpg) + + +This is the WHY + +Insert a image here that tells an interesting story about the solution being delivered + +Describe how this solution can help a user's organization, including examples on how this solution could help specific industries + +Describe what makes this solution and other reasons why someone would want to deploy this. Here's some ideas that you may wish to consider: + +- **Speed and Efficiency**: How does this solution accelerate the deployment of AI/ML solutions? +- **Cost-Effectiveness**: In what ways does it help save on development costs? +- **Quality and Reliability**: What measures are in place to ensure the high quality and reliability of your solution? +- **Competitive Edge**: How does it give users a competitive advantage in their domain? + +## What's in the Box + +- CLI (command line interface) that allows users to talk with the assistant by voice +- Orchestrator that is responsible for + 1. Capture and convert the user's voice to text + 2. Translate the text to the language of the assistant (english) + 3. Send the text to the assistant + 4. Translate the response to the user's language + 5. Convert the text to voice and play it to the user +- Deployment of all azure resources needed: + - Azure AI Services (we will be using Speech and Language services) + - Azure OpenAI +- Creation of Open AI Assistant + - Integrated with File Search tool + + +This is WHAT they get when they deploy the solution + +Describe any helpful technical benefits of this solution (for example, deploys key vault for storing keys securely, UAMI for easy and secure integration) + +Describe what Azure Resources are deployed + +Include Architecture Diagrams including inputs and outputs + +Provide links to any associated blogs about this solution (any FTA blogs you wrote that provide more details) + +## Thinking Outside of the Box + +This is a WHY and a WHAT + +Describe ways users can customize and enahance the solution for use inside their organization + +## Deploy the Solution + +Provide instructions on how to deploy the solutione: + +1. **Prerequisites**: List any requirements for using this solution (e.g., software, accounts). +2. **Installation**: Step-by-step instructions for deploying the solution to Azure. +3. **Post Deployment**: Include any instructions that the user may need to do after the resources have been deployed; for example, upload files to blob storage, create an ML or an AI Services project + +## Run the Solution + +Include instructions on how they can run and test the solution + +## Customize the Solution + +Describe different ideas on how to enhance or customize for their use cases + +## How to Contribute + +This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit + +When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq) or contact with any additional questions or comments. +## Key Contacts & Contributors + +Highlight the main contacts for the project and acknowledge contributors. You can adapt the structure from AI-in-a-Box: + +| Contact | GitHub ID | Email | +|---------|-----------|-------| +| Your Name | @YourGitHub | your.email@example.com | + +## Acknowledgments + +If applicable, offer thanks to individuals, organizations, or projects that helped inspire or support your project. + +## License + +This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies. + +--- + +This project is part of the AI-in-a-Box series, aimed at providing the technical community with tools and accelerators to implement AI/ML solutions efficiently and effectively. \ No newline at end of file diff --git a/ai-services/multilingual-agent/media/multilingual-agent.jpg b/ai-services/multilingual-agent/media/multilingual-agent.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a43308e3490fc92e5a234b3a43f4d60cb9b37c0 GIT binary patch literal 67510 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