Repository: confident-ai/deepeval
Issue: ModuleNotFoundError: No module named 'aiobotocore'
Root cause: Environment Incompatibility

**❗BEFORE YOU BEGIN❗**
Are you on discord? 🤗 We'd love to have you asking questions on discord instead: https://discord.com/invite/a3K9c8GRGt

**Describe the bug**
ModuleNotFoundError: No module named 'aiobotocore'

**To Reproduce**
Steps to reproduce the behavior:
I am based on `Writing your first test case` in `readme.md`
The following error occurred while executing 

**Expected behavior**
run successful

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
 - OS: kubuntu
 - Version 22.04
 - deepeval==2.8.8


**Additional context**
Add any other context about the problem here.
```bash
(.venv) user@Ding-Perlis-MP1Y70F1:~/tt01$ deepeval test run test_chatbot.py 
Traceback (most recent call last):
  File "/home/user/.local/bin/deepeval", line 5, in <module>
    from deepeval.cli.main import app
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/__init__.py", line 8, in <module>
    from deepeval.event import track
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/event/__init__.py", line 1, in <module>
    from .event import track
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/event/event.py", line 3, in <module>
    from deepeval.monitor.monitor import monitor
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/monitor/__init__.py", line 1, in <module>
    from .monitor import monitor, a_monitor
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/monitor/monitor.py", line 5, in <module>
    from deepeval.test_run.hyperparameters import process_hyperparameters
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/test_run/__init__.py", line 1, in <module>
    from .test_run import (
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/test_run/test_run.py", line 15, in <module>
    from deepeval.metrics import BaseMetric
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/metrics/__init__.py", line 1, in <module>
    from .base_metric import (
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/metrics/base_metric.py", line 10, in <module>
    from deepeval.models import DeepEvalBaseLLM
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/models/__init__.py", line 7, in <module>
    from deepeval.models.llms import (
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/models/llms/__init__.py", line 7, in <module>
    from .amazon_bedrock_model import AmazonBedrockModel
  File "/home/user/.local/lib/python3.11/site-packages/deepeval/models/llms/amazon_bedrock_model.py", line 2, in <module>
    from aiobotocore.session import get_session
ModuleNotFoundError: No module named 'aiobotocore'
```

I have the same issue on Windows as well!

i pip install it and it works

I manually performed the installation, but still couldn't find it

> I manually performed the installation, but still couldn't find it

maybe retry it follow this:

1. create a new env, with python version == 3.11
2. install deep_eval
3. install aiobotocore

@wang-qa @waHhhHao @wijeak @chaliy @eLafo hey! is it still erroring? 

> [@wang-qa](https://github.com/wang-qa) [@waHhhHao](https://github.com/waHhhHao) [@wijeak](https://github.com/wijeak) [@chaliy](https://github.com/chaliy) [@eLafo](https://github.com/eLafo) hey! is it still erroring?


It can run now
```bash
(.venv) ubuntu@ubuntu:~/PycharmProjects/PythonProject$ deepeval test run test_chatbot.py
/home/wangyk/.local/lib/python3.11/site-packages/pytest_asyncio/plugin.py:217: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset.
The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session"

  warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET))
FRunning teardown with pytest sessionfinish...

============================================================================================================= FAILURES =============================================================================================================
____________________________________________________________________________________________________________ test_case _____________________________________________________________________________________________________________

    def test_case():
>       correctness_metric = GEval(
            name="Correctness",
            criteria="Determine if the 'actual output' is correct based on the 'expected output'.",
            evaluation_params=[LLMTestCaseParams.ACTUAL_OUTPUT, LLMTestCaseParams.EXPECTED_OUTPUT],
            threshold=0.5
        )

test_chatbot.py:7: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../.local/lib/python3.11/site-packages/deepeval/metrics/g_eval/g_eval.py:108: in __init__
    self.model, self.using_native_model = initialize_model(model)
../../.local/lib/python3.11/site-packages/deepeval/metrics/utils.py:336: in initialize_model
    return GPTModel(model=model), True
../../.local/lib/python3.11/site-packages/deepeval/models/llms/openai_model.py:180: in __init__
    super().__init__(model_name)
../../.local/lib/python3.11/site-packages/deepeval/models/base_model.py:37: in __init__
    self.model = self.load_model(*args, **kwargs)
../../.local/lib/python3.11/site-packages/deepeval/models/llms/openai_model.py:397: in load_model
    return OpenAI(api_key=self._openai_api_key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <openai.OpenAI object at 0x728d52f63e90>

    def __init__(
        self,
        *,
        api_key: str | None = None,
        organization: str | None = None,
        project: str | None = None,
        base_url: str | httpx.URL | None = None,
        websocket_base_url: str | httpx.URL | None = None,
        timeout: Union[float, Timeout, None, NotGiven] = NOT_GIVEN,
        max_retries: int = DEFAULT_MAX_RETRIES,
        default_headers: Mapping[str, str] | None = None,
        default_query: Mapping[str, object] | None = None,
        # Configure a custom httpx client.
        # We provide a `DefaultHttpxClient` class that you can pass to retain the default values we use for `limits`, `timeout` & `follow_redirects`.
        # See the [httpx documentation](https://www.python-httpx.org/api/#client) for more details.
        http_client: httpx.Client | None = None,
        # Enable or disable schema validation for data returned by the API.
        # When enabled an error APIResponseValidationError is raised
        # if the API responds with invalid data for the expected schema.
        #
        # This parameter may be removed or changed in the future.
        # If you rely on this feature, please open a GitHub issue
        # outlining your use-case to help us decide if it should be
        # part of our public interface in the future.
        _strict_response_validation: bool = False,
    ) -> None:
        """Construct a new synchronous OpenAI client instance.
    
        This automatically infers the following arguments from their corresponding environment variables if they are not provided:
        - `api_key` from `OPENAI_API_KEY`
        - `organization` from `OPENAI_ORG_ID`
        - `project` from `OPENAI_PROJECT_ID`
        """
        if api_key is None:
            api_key = os.environ.get("OPENAI_API_KEY")
        if api_key is None:
>           raise OpenAIError(
                "The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable"
            )
E           openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable

../../.local/lib/python3.11/site-packages/openai/_client.py:124: OpenAIError
======================================================================================================= slowest 10 durations =======================================================================================================

(3 durations < 0.005s hidden.  Use -vv to show these durations.)
===================================================================================================== short test summary info ======================================================================================================
FAILED test_chatbot.py::test_case - openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
1 failed, 2 warnings in 0.12s
No test cases found, please try again.
(.venv) ubuntu@ubuntu:~/PycharmProjects/PythonProject$ 
```