Repository: airtai/fastagency

Issue:
Switch the example to use Mesop UI instead of Console UI in adapter docs

Discussion:
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/airtai/fastagency/pull/465?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=airtai) Report
All modified and coverable lines are covered by tests :white_check_mark:

| [Files with missing lines](https://app.codecov.io/gh/airtai/fastagency/pull/465?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=airtai) | Coverage Δ | |
|---|---|---|
| [...docs\_src/user\_guide/runtimes/autogen/mesop/main.py](https://app.codecov.io/gh/airtai/fastagency/pull/465?src=pr&el=tree&filepath=docs%2Fdocs_src%2Fuser_guide%2Fruntimes%2Fautogen%2Fmesop%2Fmain.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=airtai#diff-ZG9jcy9kb2NzX3NyYy91c2VyX2d1aWRlL3J1bnRpbWVzL2F1dG9nZW4vbWVzb3AvbWFpbi5weQ==) | `53.84% <100.00%> (ø)` | |
| [.../runtimes/autogen/mesop/using\_non\_openai\_models.py](https://app.codecov.io/gh/airtai/fastagency/pull/465?src=pr&el=tree&filepath=docs%2Fdocs_src%2Fuser_guide%2Fruntimes%2Fautogen%2Fmesop%2Fusing_non_openai_models.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=airtai#diff-ZG9jcy9kb2NzX3NyYy91c2VyX2d1aWRlL3J1bnRpbWVzL2F1dG9nZW4vbWVzb3AvdXNpbmdfbm9uX29wZW5haV9tb2RlbHMucHk=) | `57.14% <100.00%> (ø)` | |

... and [2 files with indirect coverage changes](https://app.codecov.io/gh/airtai/fastagency/pull/465/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=airtai)


Patch:
diff --git a/.gitattributes b/.gitattributes
index c1aa6991..bdfa710e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,7 +1,6 @@
 *.jpg filter=lfs diff=lfs merge=lfs -text
 *.png filter=lfs diff=lfs merge=lfs -text
 *.pdf filter=lfs diff=lfs merge=lfs -text
-*.png filter=lfs diff=lfs merge=lfs -text
 app/public/public-banner.png filter=lfs diff=lfs merge=lfs -text
 docs/docs/en/tutorial/giphy/images/gifs.png filter=lfs diff=lfs merge=lfs -text
 docs/docs/en/tutorial/giphy/images/initial_message.png filter=lfs diff=lfs merge=lfs -text
diff --git a/.secrets.baseline b/.secrets.baseline
index 6e1e66e8..75e47d25 100644
--- a/.secrets.baseline
+++ b/.secrets.baseline
@@ -182,6 +182,26 @@
         "is_secret": false
       }
     ],
+    "docs/docs/en/user-guide/runtimes/autogen/index.md": [
+      {
+        "type": "Secret Keyword",
+        "filename": "docs/docs/en/user-guide/runtimes/autogen/index.md",
+        "hashed_secret": "73b01af8d354687c7c330d91a744f9906b9f30da",
+        "is_verified": false,
+        "line_number": 46,
+        "is_secret": false
+      }
+    ],
+    "docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md": [
+      {
+        "type": "Secret Keyword",
+        "filename": "docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md",
+        "hashed_secret": "29df8e701c64566b0035b6283fb2f7b41a0d65f2",
+        "is_verified": false,
+        "line_number": 55,
+        "is_secret": false
+      }
+    ],
     "docs/docs_src/getting_started/nats_n_fastapi/nats-server.conf": [
       {
         "type": "Secret Keyword",
diff --git a/docs/docs/en/getting-started/index.md b/docs/docs/en/getting-started/index.md
index e5c8d4c6..dcdb2456 100644
--- a/docs/docs/en/getting-started/index.md
+++ b/docs/docs/en/getting-started/index.md
@@ -393,11 +393,11 @@ Once everything is set up, you can run your FastAgency application using the fol
             ```
 
         !!! danger "Currently not working on **MacOS**"
-            The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362)).
+            The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362){target="_blank"}).
 
     2. Using [Gunicorn](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
 
-        The preferred way to run the Mesop application is using a Python WSGI HTTP server like [Gunicorn](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
+        The preferred way to run the [**Mesop**](https://google.github.io/mesop/){target="_blank"} application is using a Python WSGI HTTP server like [**Gunicorn**](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
 
         !!! note "Terminal (using [Gunicorn](https://gunicorn.org/){target="_blank"})"
             ```
diff --git a/docs/docs/en/tutorial/giphy/index.md b/docs/docs/en/tutorial/giphy/index.md
index e259ba3d..e8898588 100644
--- a/docs/docs/en/tutorial/giphy/index.md
+++ b/docs/docs/en/tutorial/giphy/index.md
@@ -170,11 +170,11 @@ There are two options of running a Mesop application:
         ```
 
     !!! danger "Currently not working on **MacOS**"
-        The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362)).
+        The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362){target="_blank"}).
 
 2. Using [Gunicorn](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
 
-    The preferred way to run the Mesop application is using a Python WSGI HTTP server like [Gunicorn](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
+    The preferred way to run the [**Mesop**](https://google.github.io/mesop/){target="_blank"} application is using a Python WSGI HTTP server like [**Gunicorn**](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
 
     !!! note "Terminal (using [Gunicorn](https://gunicorn.org/){target="_blank"})"
         ```
diff --git a/docs/docs/en/user-guide/runtimes/autogen/images/weather_chat.png b/docs/docs/en/user-guide/runtimes/autogen/images/weather_chat.png
new file mode 100644
index 00000000..1207afa2
--- /dev/null
+++ b/docs/docs/en/user-guide/runtimes/autogen/images/weather_chat.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e8039fbd2dcd6b6c15274bc5517118e486db10e4b4819d82e3fd2e891725f31
+size 74317
diff --git a/docs/docs/en/user-guide/runtimes/autogen/index.md b/docs/docs/en/user-guide/runtimes/autogen/index.md
index b291451a..57e74d6f 100644
--- a/docs/docs/en/user-guide/runtimes/autogen/index.md
+++ b/docs/docs/en/user-guide/runtimes/autogen/index.md
@@ -1,76 +1,112 @@
 # AutoGen in FastAgency
 
-The **AutoGen** runtime is a key component of FastAgency, empowering developers to create intelligent, multi-agent systems powered by large language models (LLMs). AutoGen allows agents to communicate, collaborate, and perform complex tasks autonomously while easily integrating with external APIs for real-time data and functionality.
+The [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime is a key component of FastAgency, empowering developers to create intelligent, [**multi-agent systems**](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat){target="_blank"} powered by [**large language models (LLMs)**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"}. It allows agents to communicate, collaborate, and perform complex tasks autonomously while easily integrating with external [**Rest APIs**](https://en.wikipedia.org/wiki/REST){target="_blank"} for real-time data and functionality.
 
-In this example, we will create a simple weather chatbot using **AutoGen** in FastAgency. The chatbot will enable a user to interact with a weather agent that fetches real-time weather information from an external API using OpenAPI specifications.
+In this example, we will create a simple weather [**chatbot**](https://en.wikipedia.org/wiki/Chatbot){target="_blank"} using [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime in FastAgency. The chatbot will enable a user to interact with a weather agent that fetches real-time weather information from an external REST API using [**OpenAPI specification**](https://en.wikipedia.org/wiki/OpenAPI_Specification){target="_blank"}.
 
 ## Installation
 
-Before getting started, make sure you have installed FastAgency with support for the AutoGen runtime by running the following command:
+Before getting started, make sure you have installed FastAgency with support for the [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime along with the [**mesop**](../../../api/fastagency/ui/mesop/MesopUI.md) and [**openapi**](../../../api/fastagency/api/openapi/OpenAPI.md) submodules by running the following command:
 
 ```bash
-pip install "fastagency[autogen,openapi]"
+pip install "fastagency[autogen,mesop,openapi]"
 ```
 
-This installation includes the AutoGen runtime, allowing you to build multi-agent workflows and integrate external APIs seamlessly.
+These components enable you to build  [**multi-agent workflows**](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat){target="_blank"} and seamlessly integrate with the external [**Rest APIs**](https://en.wikipedia.org/wiki/REST){target="_blank"}.
+
+## Prerequisites
+
+Before you begin this guide, ensure you have:
+
+- **OpenAI account and API Key**: This guide uses OpenAI's [**`gpt-4o-mini`**](https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/){target="_blank"} model, so you'll need access to it. Follow the steps in the section below to create your [**OpenAI**](https://openai.com){target="_blank"} account and obtain your API key.
+
+### Setting Up Your OpenAI Account and API Key
+
+**1. Create a OpenAI account:**
+
+- Go to <b><a href="https://platform.openai.com/signup" target="_blank">https://platform.openai.com/signup</a></b>.
+- Choose a **sign-up** option and follow the instructions to create your account.
+- If you already have an account, simply **log-in**.
+
+**2. Obtain your API Key:**
+
+- Go to <b><a href="https://platform.openai.com/account/api-keys" target="_blank">https://platform.openai.com/account/api-keys</a></b>.
+- Click **Create new secret key** button.
+- In the popup, provide a **Name** for the key, then click **Create secret key** button.
+- The key will be shown on the screen—click **Copy** button, and you're ready to go!
+
+#### Set Up Your API Keys in the Environment
+
+To securely use the API keys in your project, you should store it as an [**environment variable**](https://en.wikipedia.org/wiki/Environment_variable){target="_blank"}.
+
+Run the following command in the [**same terminal**](#running-the-application) where you will run the FastAgency application. This environment variable must be set for the application to function correctly; **skipping this step will cause the example application to crash**.
+
+=== "Linux/macOS"
+    ```bash
+    export OPENAI_API_KEY="your_open_api_key"
+    ```
+=== "Windows"
+    ```bash
+    set OPENAI_API_KEY="your_open_api_key"
+    ```
 
 ## Example: Integrating a Weather API with AutoGen
 
 ### Step-by-Step Breakdown
 
 #### 1. **Import Required Modules**
-The example starts by importing the necessary modules from **AutoGen** and **FastAgency**. These imports lay the foundation for building and running multi-agent workflows.
+The example starts by importing the necessary modules from [**AutoGen**](https://microsoft.github.io/autogen/){target="_blank"} and **FastAgency**. These imports lay the foundation for building and running [**multi-agent**](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat){target="_blank"} workflows.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:1-10] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:1-10] !}
 ```
 
 #### 2. **Configure the Language Model (LLM)**
-Here, the large language model is configured to use the `gpt-4o` model, and the API key is retrieved from the environment. This setup ensures that both the user and weather agents can interact effectively.
+Here, the [**large language model**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"} is configured to use the Open AI's [**`gpt-4o-mini`**](https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/){target="_blank"} model, and the [**API key**](https://en.wikipedia.org/wiki/API_key){target="_blank"} is retrieved from the environment. This setup ensures that both the user and weather agents can interact effectively.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:12-20] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:12-20] !}
 ```
 
 #### 3. **Set Up the Weather API**
-We define the OpenAPI specification URL for the weather service. This API will later be used by the weather agent to fetch real-time weather data.
+We define the [**OpenAPI specification**](https://en.wikipedia.org/wiki/OpenAPI_Specification){target="_blank"} URL for the weather service. This [**Rest APIs**](https://en.wikipedia.org/wiki/REST){target="_blank"} will later be used by the weather agent to fetch real-time weather data.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:22-24] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:22-24] !}
 ```
 
 #### 4. **Define the Workflow and Agents**
 In this step, we define two agents and specify the initial message that will be displayed to users when the workflow starts.
 
-- **UserProxyAgent**: This agent simulates the user interacting with the system.
+- [**`UserProxyAgent`**](https://microsoft.github.io/autogen/0.2/docs/reference/agentchat/user_proxy_agent/#userproxyagent){target="_blank"}: This agent simulates the user interacting with the system.
 
-- **ConversableAgent**: This agent acts as the weather agent, responsible for fetching weather data from the API.
+- [**`ConversableAgent`**](https://microsoft.github.io/autogen/0.2/docs/reference/agentchat/conversable_agent/#conversableagent){target="_blank"}: This agent acts as the weather agent, responsible for fetching weather data from the API.
 
 The workflow is registered using **[AutoGenWorkflows](../../../api/fastagency/runtimes/autogen/AutoGenWorkflows/)**.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:26-51] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:32-57] !}
 ```
 
 #### 5. **Register API Functions with the Agents**
-In this step, we register the weather API functions to ensure that the weather agent can call the correct functions, such as `get_daily_weather` and `get_daily_weather_weekly_get`, to retrieve the required weather data.
+In this step, we register the [**weather API**](https://weather.tools.fastagency.ai/docs){target="_blank"} functions to ensure that the weather agent can call the correct functions, such as `get_daily_weather` and `get_daily_weather_weekly_get`, to retrieve the required weather data.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:52-65] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:58-73] !}
 ```
 
 #### 6. **Enable Agent Interaction and Chat**
-Here, the user agent initiates a chat with the weather agent, which queries the API and returns the weather information. The conversation is summarized using a method provided by the LLM.
+Here, the user agent initiates a chat with the weather agent, which queries the [**weather API**](https://weather.tools.fastagency.ai/docs){target="_blank"} and returns the weather information. The conversation is summarized using a method provided by the [**LLM**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"}.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:67-74] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:73-82] !}
 ```
 
 #### 7. **Create and Run the Application**
-Finally, we create the FastAgency application and launch it using the console interface.
+Finally, we create the FastAgency application and launch it using the [**`mesop`**](../../../api/fastagency/ui/mesop/MesopUI.md) interface.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py [ln:77] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py [ln:84] !}
 ```
 
 ### Complete Application Code
@@ -78,55 +114,59 @@ Finally, we create the FastAgency application and launch it using the console in
 <details>
 <summary>main.py</summary>
 ```python
-{! docs_src/user_guide/runtimes/autogen/main.py!}
+{! docs_src/user_guide/runtimes/autogen/mesop/main.py!}
 ```
 </details>
 
 
 ### Running the Application
 
-```bash
-fastagency run
-```
+There are two options of running a Mesop application:
+
+1. Using [**`fastagency`**](../../cli/index.md) command:
+
+    !!! note "Terminal (using [**`fastagency`**](../../cli/index.md))"
+        ```
+        fastagency run
+        ```
+
+    !!! danger "Currently not working on **MacOS**"
+        The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362){target="_blank"}).
 
-Ensure you have set your OpenAI API key in the environment and that the weather API URL is accessible. The command will launch a console interface where users can input their requests and interact with the weather agent.
+2. Using [**Gunicorn**](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
+
+    The preferred way to run the [**Mesop**](https://google.github.io/mesop/){target="_blank"} application is using a Python WSGI HTTP server like [**Gunicorn**](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
+
+    !!! note "Terminal (using [**Gunicorn**](https://gunicorn.org/){target="_blank"})"
+        ```
+        pip install gunicorn
+        gunicorn main:app
+        ```
+
+    !!! danger "Currently not working on **Windows**"
+        The above command is currently not working on **Windows**, because gunicorn is not supported. Please use the alternative method below to start the application:
+        ```
+        pip install waitress
+        waitress-serve --listen=0.0.0.0:8000 main:app
+        ```
+
+Ensure you have set your [**OpenAI API key**](https://platform.openai.com/api-keys){target="_blank"} in the environment and that the [**weather API**](https://weather.tools.fastagency.ai/docs){target="_blank"} URL is accessible. The command will launch a [**`mesopUI`**](../../../api/fastagency/ui/mesop/MesopUI.md) interface where users can input their requests and interact with the weather agent.
 
 ### Output
 
-Once you run it, FastAgency automatically detects the appropriate app to execute and runs it. The application will then prompt you with: "I can help you with the weather. What would you like to know?".
+Once you run the command above, FastAgency will start a [**Mesop**](https://google.github.io/mesop/){target="_blank"} application. Below is the output from the terminal along with a partial screenshot of the Mesop application:
 
 ```console
-╭─ Python module file ─╮
-│                      │
-│  🐍 main.py          │
-│                      │
-╰──────────────────────╯
-
-
-╭─ Importable FastAgency app ─╮
-│                             │
-│  from main import app       │
-│                             │
-╰─────────────────────────────╯
-
-╭─ FastAgency -> user [workflow_started] ──────────────────────────────────────╮
-│                                                                              │
-│ {                                                                            │
-│   "name": "simple_weather",                                                  │
-│   "description": "Weather chat",                                             │
-│                                                                              │
-│ "params": {}                                                                 │
-│ }                                                                            │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ Workflow -> User [text_input] ──────────────────────────────────────────────╮
-│                                                                              │
-│ I can help you with the weather. What would you like to know?:               │
-╰──────────────────────────────────────────────────────────────────────────────╯
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Starting gunicorn 23.0.0
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Listening at: http://127.0.0.1:8000 (23635)
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Using worker: sync
+[2024-10-10 13:19:18 +0530] [23645] [INFO] Booting worker with pid: 23645
 ```
 
+![Initial message](./images/weather_chat.png)
+
 ---
 
-This example demonstrates the power of the **AutoGen** runtime within FastAgency, showing how easy it is to integrate LLM-powered agents with real-time API services. By leveraging FastAgency, developers can quickly create interactive, scalable applications that interact with external data sources in real-time.
+This example demonstrates the power of the [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime within FastAgency, showing how easy it is to integrate [**LLM**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"}-powered agents with real-time [**Rest API**](https://en.wikipedia.org/wiki/REST){target="_blank"} services. By leveraging FastAgency, developers can quickly create interactive, scalable applications that interact with external data sources in real-time.
 
-For more detailed documentation, visit the [AutoGen Reference](../../../api/fastagency/runtimes/autogen/AutoGenWorkflows/).
+For more detailed documentation, visit the [**AutoGen Reference**](../../../api/fastagency/runtimes/autogen/AutoGenWorkflows/).
diff --git a/docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md b/docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md
index 46975179..7f492be2 100644
--- a/docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md
+++ b/docs/docs/en/user-guide/runtimes/autogen/using_non_openai_models.md
@@ -1,84 +1,85 @@
 # Using Non-OpenAI Models with FastAgency
 
-FastAgency makes it simple to work with **non-OpenAI models** through AutoGen's runtime. You can do this in a couple of ways:
+FastAgency makes it simple to work with **non-OpenAI models** through its [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime. You can do this in a couple of ways:
 
-- via [proxy servers that provide an OpenAI-compatible API](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/about-using-nonopenai-models/#openai-compatible-api-proxy-server){target="_blank"}
-- by [using a custom model client class](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/about-using-nonopenai-models/#custom-model-client-class){target="_blank"}, which lets you define and load your own models.
+- Using a [**proxy server that provides an OpenAI-compatible API**](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/about-using-nonopenai-models/#openai-compatible-api-proxy-server){target="_blank"} or
+- By [**using a custom model client class**](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/about-using-nonopenai-models/#custom-model-client-class){target="_blank"}, which lets you define and load your own models.
 
 This flexibility allows you to **access a variety of models**, assign **tailored models to agents**, and **optimise inference costs**, among other advantages.
 
-To show how simple it is to use **non-OpenAI models**, we'll **rewrite** the [Weatherman chatbot](./index.md#example-integrating-a-weather-api-with-autogen) example. With just a **few changes**, we'll switch to the [Together AI](https://www.together.ai){target="_blank"} Cloud platform, utilizing their **Meta-Llama-3.1-70B-Instruct-Turbo** model. For a comprehensive list of models available through Together AI, please refer to their official [documentation](https://docs.together.ai/docs/chat-models){target="_blank"}.
+To show how simple it is to use **non-OpenAI models**, we'll **rewrite** the [**Weatherman chatbot**](./index.md#example-integrating-a-weather-api-with-autogen) example. With just a **few changes**, we'll switch to the [**Together AI**](https://www.together.ai){target="_blank"} Cloud platform, utilizing their **Meta-Llama-3.1-70B-Instruct-Turbo** model. For a comprehensive list of models available through Together AI, please refer to their official [**documentation**](https://docs.together.ai/docs/chat-models){target="_blank"}.
 
 Let’s dive in!
 
 ## Installation
 
-Before getting started, make sure you have installed FastAgency with **[autogen](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) and [openapi](../../../api/fastagency/api/openapi/OpenAPI.md) submodules** by running the following command:
+Before you get started, ensure that you have FastAgency installed. Run the following command:
 
 ```bash
-pip install "fastagency[autogen,openapi]"
+pip install "fastagency[autogen,mesop,openapi]"
 ```
 
-This installation includes the AutoGen runtime, allowing you to build multi-agent workflows and integrate external APIs seamlessly.
+This command installs the FastAgency library along with the  [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime and the [**mesop**](../../../api/fastagency/ui/mesop/MesopUI.md) and [**openapi**](../../../api/fastagency/api/openapi/OpenAPI.md) submodules. These components enable you to build  [**multi-agent workflows**](https://microsoft.github.io/autogen/0.2/docs/Use-Cases/agent_chat){target="_blank"} and seamlessly integrate with the external [**Rest APIs**](https://en.wikipedia.org/wiki/REST){target="_blank"}.
 
 ## Prerequisites
 
 Before you begin this guide, ensure you have:
 
-- **Together AI account and API Key**: To create a [Together AI](https://www.together.ai){target="_blank"} account and obtain your API key, follow the steps in the section below.
+- **Together AI account and API Key**: This guide uses [**Together AI's**](https://www.together.ai){target="_blank"} **Meta-Llama-3.1-70B-Instruct-Turbo** model, so you'll need access to it. Follow the steps in the section below to create your Together AI account and obtain your API key.
+
 
 ### Setting Up Your Together AI Account and API Key
 
 **1. Create a Together AI account:**
 
-- Go to <a href="https://api.together.ai" target="_blank">https://api.together.ai</a>.
-- Choose a sign-in option and follow the instructions to create your account.
-- If you already have an account, simply log in.
+- Go to <b><a href="https://api.together.ai" target="_blank">https://api.together.ai</a></b>.
+- Choose a **sign-in** option and follow the instructions to create your account.
+- If you already have an account, simply **log-in**.
 
 **2. Obtain your API Key:**
 
 - Once you complete the account creation process the API key will be displayed on the screen which you can copy.
 - Or you can do the following to view your API key:
-    - Tap on the person icon at the top right corner, and click [Settings](https://api.together.ai/settings/profile){target="_blank"}
-    - On the left side bar, navigate to [API Keys](https://api.together.ai/settings/api-keys){target="_blank"}
+    - Tap on the person icon at the top right corner, and click [**Settings**](https://api.together.ai/settings/profile){target="_blank"}
+    - On the left side bar, navigate to [**API Keys**](https://api.together.ai/settings/api-keys){target="_blank"}
     - **Copy your API key**, and you're ready to go!
 
 #### Set Up Your API Keys in the Environment
 
-To securely use the API keys in your project, you should store it in an environment variables.
+To securely use the API keys in your project, you should store it as an [**environment variable**](https://en.wikipedia.org/wiki/Environment_variable){target="_blank"}.
 
-You can set the together API key in your terminal as an environment variable:
+Run the following command in the [**same terminal**](#running-the-application) where you will run the FastAgency application. This environment variable must be set for the application to function correctly; **skipping this step will cause the example application to crash**.
 
 === "Linux/macOS"
     ```bash
-    export TOGETHER_API_KEY="your_together_api_key"  # pragma: allowlist secret
+    export TOGETHER_API_KEY="your_together_api_key"
     ```
 === "Windows"
     ```bash
-    set TOGETHER_API_KEY="your_together_api_key"  # pragma: allowlist secret
+    set TOGETHER_API_KEY="your_together_api_key"
     ```
 
 ## Example: Integrating a Weather API with AutoGen
 
 ### Code Walkthrough
 
-As we rewrite the existing [Weatherman chatbox](./index.md#example-integrating-a-weather-api-with-autogen) to use **non-OpenAI models**, most of the code remains unchanged. The only modifications to the original code are:
+As we rewrite the existing [**Weatherman chatbox**](./index.md#example-integrating-a-weather-api-with-autogen) to use **non-OpenAI models**, most of the code remains unchanged. The only modifications to the original code are:
 
 - **Configure the Language Model (LLM)**
 - **Update the System Message**
 
-Since the modifications are minor, **I will focus only on these differences in this guide**. For a **detailed explanation** of the original code, please refer to the original [guide](./index.md#example-integrating-a-weather-api-with-autogen).
+Since the modifications are minor, **I will focus only on these differences in this guide**. For a **detailed explanation** of the original code, please refer to the original [**guide**](./index.md#autogen-in-fastagency).
 
 #### 1. Configure the Language Model (LLM)
 
-First, update the LLM configuration to use **non-OpenAI models**. For our example, we'll use **meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo**, but you can choose any model from [Together AI](https://www.together.ai){target="_blank"} Cloud. For a complete list, refer to their official [documentation](https://docs.together.ai/docs/chat-models){target="_blank"}.
+First, update the [**LLM**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"} configuration to use **non-OpenAI models**. For our example, we'll use **meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo**, but you can choose any model from [**Together AI**](https://www.together.ai){target="_blank"} Cloud. For a complete list, refer to their official [**documentation**](https://docs.together.ai/docs/chat-models){target="_blank"}.
 
 
 Next, add two parameters: `api_type` and `hide_tools`.
 
 - `hide_tools`
 
-    The [hide_tools](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/local-ollama#reducing-repetitive-tool-calls){target="_blank"} in AutoGen controls when tools are visible during LLM conversations. It addresses a common issue where LLMs might **repeatedly recommend tool calls**, even after they've been executed, potentially creating an **endless loop** of tool invocations.
+    The [**`hide_tools`**](https://microsoft.github.io/autogen/0.2/docs/topics/non-openai-models/local-ollama#reducing-repetitive-tool-calls){target="_blank"} in [**AutoGen**](https://microsoft.github.io/autogen/){target="_blank"} controls when tools are visible during [**LLM**](https://en.wikipedia.org/wiki/Large_language_model){target="_blank"} conversations. It addresses a common issue where LLMs might **repeatedly recommend tool calls**, even after they've been executed, potentially creating an **endless loop** of tool invocations.
 
     This parameter offers three options to control tool visibility:
 
@@ -93,7 +94,7 @@ Next, add two parameters: `api_type` and `hide_tools`.
     Set the `api_type` to `together` to instruct FastAgency to use Together AI Cloud for model inference.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/using_non_openai_models.py [ln:12-22] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py [ln:12-22] !}
 ```
 
 #### 2. Update the System Message
@@ -101,7 +102,7 @@ Next, add two parameters: `api_type` and `hide_tools`.
 The system message has been adjusted to work optimally with the **meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo** model. You may need to experiment with the system prompt if you are using a different model.
 
 ```python
-{! docs_src/user_guide/runtimes/autogen/using_non_openai_models.py [ln:27-32] !}
+{! docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py [ln:27-32] !}
 ```
 
 ### Complete Application Code
@@ -109,131 +110,52 @@ The system message has been adjusted to work optimally with the **meta-llama/Met
 <details>
 <summary>main.py</summary>
 ```python
-{! docs_src/user_guide/runtimes/autogen/using_non_openai_models.py !}
+{! docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py !}
 ```
 </details>
 
 ### Running the Application
 
-Once the workflow is set up, you can run the application using the **FastAgency CLI**. Navigate to the directory where the script is located and run the following command:
+There are two options of running a Mesop application:
 
-```bash
-fastagency run
-```
+1. Using [**`fastagency`**](../../cli/index.md) command line:
+
+    !!! note "Terminal (using [**`fastagency`**](../../cli/index.md))"
+        ```
+        fastagency run
+        ```
+
+    !!! danger "Currently not working on **MacOS**"
+        The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362){target="_blank"}).
+
+2. Using [**Gunicorn**](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
+
+    The preferred way to run the [**Mesop**](https://google.github.io/mesop/){target="_blank"} application is using a Python WSGI HTTP server like [**Gunicorn**](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
+
+    !!! note "Terminal (using [**Gunicorn**](https://gunicorn.org/){target="_blank"})"
+        ```
+        pip install gunicorn
+        gunicorn main:app
+        ```
+
+    !!! danger "Currently not working on **Windows**"
+        The above command is currently not working on **Windows**, because gunicorn is not supported. Please use the alternative method below to start the application:
+        ```
+        pip install waitress
+        waitress-serve --listen=0.0.0.0:8000 main:app
+        ```
 
 ### Output
 
-The output will vary based on the city and the current weather conditions:
+Once you run the command above, FastAgency will start a [**Mesop**](https://google.github.io/mesop/){target="_blank"} application. Below is the output from the terminal along with a partial screenshot of the Mesop application:
 
 ```console
-╭─ Python module file ─╮
-│                      │
-│  🐍 main.py          │
-│                      │
-╰──────────────────────╯
-
-
-╭─ Importable FastAgency app ─╮
-│                             │
-│  from main import app       │
-│                             │
-╰─────────────────────────────╯
-
-╭─ FastAgency -> user [workflow_started] ──────────────────────────────────────╮
-│                                                                              │
-│ {                                                                            │
-│   "name": "simple_weather",                                                  │
-│   "description": "Weather chat",                                             │
-│                                                                              │
-│ "params": {}                                                                 │
-│ }                                                                            │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-    ╭─ Workflow -> User [text_input] ──────────────────────────────────────────────╮
-    │                                                                              │
-    │ I can help you with the weather. What would you like to know?:               │
-    ╰──────────────────────────────────────────────────────────────────────────────╯
-What's the weather in Zagreb
-╭─ User_Agent -> Weather_Agent [text_message] ─────────────────────────────────╮
-│                                                                              │
-│ What's the weather in Zagreb                                                 │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ Weather_Agent -> User_Agent [text_message] ─────────────────────────────────╮
-│                                                                              │
-│ Please wait while I fetch the weather data for Zagreb...                     │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ User_Agent -> Weather_Agent [suggested_function_call] ──────────────────────╮
-│                                                                              │
-│ {                                                                            │
-│   "function_name": "get_daily_weather_daily_get",                            │
-│   "call_id":                                                                 │
-│ "call_fwdnhh2bptuauqqniiwha4g7",                                             │
-│   "arguments": {                                                             │
-│     "city": "Zagreb"                                                         │
-│                                                                              │
-│   }                                                                          │
-│ }                                                                            │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ Weather_Agent -> User_Agent [function_call_execution] ──────────────────────╮
-│                                                                              │
-│ {                                                                            │
-│   "function_name": "get_daily_weather_daily_get",                            │
-│   "call_id":                                                                 │
-│ "call_fwdnhh2bptuauqqniiwha4g7",                                             │
-│   "retval": "{\"city\": \"Zagreb\",                                          │
-│ \"temperature\": 17, \"daily_forecasts\": [{\"forecast_date\":               │
-│ \"2024-10-14\", \"temperature\": 14, \"hourly_forecasts\": null},            │
-│ {\"forecast_date\": \"2024-10-15\", \"temperature\": 15,                     │
-│ \"hourly_forecasts\": null}, {\"forecast_date\": \"2024-10-16\",             │
-│ \"temperature\": 15, \"hourly_forecasts\": null}]}\n"                        │
-│ }                                                                            │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ User_Agent -> Weather_Agent [text_message] ─────────────────────────────────╮
-│                                                                              │
-│ The current weather in Zagreb is 17 degrees Celsius. The forecast for        │
-│ the next few days is as follows:                                             │
-│                                                                              │
-│ - October 14, 2024: 14 degrees                                               │
-│ Celsius                                                                      │
-│ - October 15, 2024: 15 degrees Celsius                                       │
-│ - October 16, 2024: 15                                                       │
-│ degrees Celsius                                                              │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ Weather_Agent -> User_Agent [text_message] ─────────────────────────────────╮
-│                                                                              │
-│ The current weather in Zagreb is 17 degrees Celsius. The forecast for        │
-│ the next few days is as follows:                                             │
-│                                                                              │
-│ - October 14, 2024: 14 degrees                                               │
-│ Celsius                                                                      │
-│ - October 15, 2024: 15 degrees Celsius                                       │
-│ - October 16, 2024: 15                                                       │
-│ degrees Celsius                                                              │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-╭─ AutoGenWorkflows -> user [workflow_completed] ──────────────────────────────╮
-│                                                                              │
-│ {                                                                            │
-│   "result": {                                                                │
-│     "content": "The current weather in Zagreb is 17                          │
-│ degrees Celsius, with forecasted temperatures of 14 degrees Celsius on       │
-│  October 14, 15 degrees Celsius on October 15, and 15 degrees Celsius        │
-│ on October 16.",                                                             │
-│     "refusal": null,                                                         │
-│     "role": "assistant",                                                     │
-│                                                                              │
-│ "function_call": null,                                                       │
-│     "tool_calls": null                                                       │
-│   }                                                                          │
-│ }                                                                            │
-╰──────────────────────────────────────────────────────────────────────────────╯
-
-2024-10-14 19:37:11,923 [INFO] Workflow 'simple_weather' completed with result: {'content': 'The current weather in Zagreb is 17 degrees Celsius, with forecasted temperatures of 14 degrees Celsius on October 14, 15 degrees Celsius on October 15, and 15 degrees Celsius on October 16.', 'refusal': None, 'role': 'assistant', 'function_call': None, 'tool_calls': None}
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Starting gunicorn 23.0.0
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Listening at: http://127.0.0.1:8000 (23635)
+[2024-10-10 13:19:18 +0530] [23635] [INFO] Using worker: sync
+[2024-10-10 13:19:18 +0530] [23645] [INFO] Booting worker with pid: 23645
 ```
 
-This example demonstrates the power of AutoGen's runtime in FastAgency, highlighting how easily you can use **non-OpenAI models** with just a few changes in the code. With FastAgency, developers can **quickly build interactive**, **scalable applications** that work with live data sources.
+![Initial message](./images/weather_chat.png)
+
+This example demonstrates the power of [**AutoGen**](../../../api/fastagency/runtimes/autogen/autogen/AutoGenWorkflows.md) runtime in FastAgency, highlighting how easily you can use **non-OpenAI models** with just a few changes in the code. With FastAgency, developers can **quickly build interactive**, **scalable applications** that work with live data sources.
diff --git a/docs/docs/en/user-guide/ui/mesop/basics.md b/docs/docs/en/user-guide/ui/mesop/basics.md
index c35b610f..47dbdf42 100644
--- a/docs/docs/en/user-guide/ui/mesop/basics.md
+++ b/docs/docs/en/user-guide/ui/mesop/basics.md
@@ -135,9 +135,9 @@ There are two options of running a Mesop application:
     !!! danger "Currently not working on **MacOS**"
         The above command is currently not working on **MacOS**, please use the alternative way of starting the application from below ([#362](https://github.com/airtai/fastagency/issues/362){target="_blank"}).
 
-2. Using [Gunicorn](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
+2. Using [**Gunicorn**](https://gunicorn.org/){target="_blank"} WSGI HTTP server:
 
-    The preferred way to run the Mesop application is using a Python WSGI HTTP server like [Gunicorn](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
+    The preferred way to run the [**Mesop**](https://google.github.io/mesop/){target="_blank"} application is using a Python WSGI HTTP server like [**Gunicorn**](https://gunicorn.org/){target="_blank"}. First, you need to install it using package manager such as `pip` and then run it as follows:
 
     !!! note "Terminal (using [Gunicorn](https://gunicorn.org/){target="_blank"})"
         ```
diff --git a/docs/docs_src/user_guide/runtimes/autogen/mesop/__init__.py b/docs/docs_src/user_guide/runtimes/autogen/mesop/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/docs/docs_src/user_guide/runtimes/autogen/main.py b/docs/docs_src/user_guide/runtimes/autogen/mesop/main.py
similarity index 79%
rename from docs/docs_src/user_guide/runtimes/autogen/main.py
rename to docs/docs_src/user_guide/runtimes/autogen/mesop/main.py
index d38ca577..f32efcf3 100644
--- a/docs/docs_src/user_guide/runtimes/autogen/main.py
+++ b/docs/docs_src/user_guide/runtimes/autogen/mesop/main.py
@@ -7,7 +7,7 @@ from autogen.agentchat import ConversableAgent
 from fastagency import UI, FastAgency
 from fastagency.api.openapi import OpenAPI
 from fastagency.runtimes.autogen import AutoGenWorkflows
-from fastagency.ui.console import ConsoleUI
+from fastagency.ui.mesop import MesopUI
 
 llm_config = {
     "config_list": [
@@ -23,6 +23,12 @@ openapi_url = "https://weather.tools.fastagency.ai/openapi.json"
 
 weather_api = OpenAPI.create(openapi_url=openapi_url)
 
+weather_agent_system_message = """You are a weather agent. When asked
+for weather, always call the function to get real-time data immediately.
+Do not respond until the data is retrieved. Provide the actual weather
+concisely based only on the real-time data from the function. Do not
+use any pre-existing knowledge or memory."""
+
 wf = AutoGenWorkflows()
 
 
@@ -41,10 +47,11 @@ def weather_workflow(
         system_message="You are a user agent",
         llm_config=llm_config,
         human_input_mode="NEVER",
+        code_execution_config=False
     )
     weather_agent = ConversableAgent(
         name="Weather_Agent",
-        system_message="You are a weather agent",
+        system_message=weather_agent_system_message,
         llm_config=llm_config,
         human_input_mode="NEVER",
     )
@@ -74,4 +81,4 @@ def weather_workflow(
     return chat_result.summary  # type: ignore[no-any-return]
 
 
-app = FastAgency(provider=wf, ui=ConsoleUI())
+app = FastAgency(provider=wf, ui=MesopUI())
diff --git a/docs/docs_src/user_guide/runtimes/autogen/using_non_openai_models.py b/docs/docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py
similarity index 83%
rename from docs/docs_src/user_guide/runtimes/autogen/using_non_openai_models.py
rename to docs/docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py
index a3eb7c86..f60f6574 100644
--- a/docs/docs_src/user_guide/runtimes/autogen/using_non_openai_models.py
+++ b/docs/docs_src/user_guide/runtimes/autogen/mesop/using_non_openai_models.py
@@ -7,7 +7,7 @@ from autogen.agentchat import ConversableAgent
 from fastagency import UI, FastAgency
 from fastagency.api.openapi import OpenAPI
 from fastagency.runtimes.autogen import AutoGenWorkflows
-from fastagency.ui.console import ConsoleUI
+from fastagency.ui.mesop import MesopUI
 
 llm_config = {
     "config_list": [
@@ -24,12 +24,11 @@ llm_config = {
 openapi_url = "https://weather.tools.fastagency.ai/openapi.json"
 weather_api = OpenAPI.create(openapi_url=openapi_url)
 
-weather_agent_system_message = """You are a real-time weather agent. When asked
+weather_agent_system_message = """You are a weather agent. When asked
 about the weather for a specific city, NEVER provide any information from
-memory. ALWAYS respond with: "Please wait while I fetch the weather data for
-[city name]..." and immediately call the provided function to retrieve
-real-time data for that city. Be concise in your response. Only handle one
-city request at a time."""
+memory. ALWAYS respond with: "Please hold on while I retrieve the real-time
+weather data for [city name]." and immediately call the provided function to
+retrieve real-time data for that city. Be concise in your response."""
 
 wf = AutoGenWorkflows()
 
@@ -48,6 +47,7 @@ def weather_workflow(
         system_message="You are a user agent",
         llm_config=llm_config,
         human_input_mode="NEVER",
+        code_execution_config=False
     )
     weather_agent = ConversableAgent(
         name="Weather_Agent",
@@ -81,4 +81,4 @@ def weather_workflow(
     return chat_result.summary  # type: ignore[no-any-return]
 
 
-app = FastAgency(provider=wf, ui=ConsoleUI())
+app = FastAgency(provider=wf, ui=MesopUI())


Test patch:
diff --git a/tests/docs_src/test_import.py b/tests/docs_src/test_import.py
index 71512d63..47e8e75c 100644
--- a/tests/docs_src/test_import.py
+++ b/tests/docs_src/test_import.py
@@ -39,6 +39,7 @@ def test_submodules(module: str) -> None:
                 module.startswith("docs_src.user_guide.ui.mesop")
                 or module == "docs_src.tutorial.giphy"
                 or module == "docs_src.tutorial.whatsapp"
+                or module == "docs_src.user_guide.runtimes.autogen.mesop"
             ):
                 pass
             elif ("mesop" in module) or ("giphy" in module) or ("whatsapp" in module):
diff --git a/tests/docs_src/user_guide/runtimes/autogen/test_main.py b/tests/docs_src/user_guide/runtimes/autogen/test_main.py
deleted file mode 100644
index c21be03f..00000000
--- a/tests/docs_src/user_guide/runtimes/autogen/test_main.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import pytest
-from typer.testing import CliRunner
-
-from fastagency.cli import app
-
-from .....conftest import InputMock
-from ....helpers import skip_internal_server_error
-
-runner = CliRunner()
-
-INPUT_MESSAGE = "What's the weather in Zagreb?"
-
-
-@pytest.mark.openai
-@skip_internal_server_error
-def test_main(monkeypatch: pytest.MonkeyPatch) -> None:
-    monkeypatch.setattr("builtins.input", InputMock([INPUT_MESSAGE]))
-
-    result = runner.invoke(
-        app,
-        ["run", "docs/docs_src/user_guide/runtimes/autogen/main.py", "--single-run"],
-    )
-    assert result.exit_code == 0
-    assert INPUT_MESSAGE in result.stdout
-    assert "AutoGenWorkflows -> User [workflow_completed]" in result.stdout
diff --git a/tests/docs_src/user_guide/runtimes/autogen/test_using_non_openai_models.py b/tests/docs_src/user_guide/runtimes/autogen/test_using_non_openai_models.py
deleted file mode 100644
index 81884515..00000000
--- a/tests/docs_src/user_guide/runtimes/autogen/test_using_non_openai_models.py
+++ /dev/null
@@ -1,29 +0,0 @@
-import pytest
-from typer.testing import CliRunner
-
-from fastagency.cli import app
-
-from .....conftest import InputMock
-from ....helpers import skip_internal_server_error
-
-runner = CliRunner()
-
-INPUT_MESSAGE = "Get me daily forecast for Zagreb city"
-
-
-@pytest.mark.openai
-@skip_internal_server_error
-def test_cli_together_ai(monkeypatch: pytest.MonkeyPatch) -> None:
-    monkeypatch.setattr("builtins.input", InputMock([INPUT_MESSAGE]))
-
-    result = runner.invoke(
-        app,
-        [
-            "run",
-            "docs/docs_src/user_guide/runtimes/autogen/using_non_openai_models.py",
-            "--single-run",
-        ],
-    )
-    assert result.exit_code == 0
-    assert INPUT_MESSAGE in result.stdout
-    assert "get_daily_weather" in result.stdout