Setup Development Environment
Setting up LLM Keys#
If you are contributing to the AG2 project, you will need an LLM key depending on the submodule you are working on.
AG2 uses an environment variable called OAI_CONFIG_LIST
in JSON format to store the LLM keys. OAI_CONFIG_LIST
is a list of dictionaries where each dictionary contains the following keys: - model
(required): The name of the OpenAI/LLM model. - api_key
(optional): The API key for the OpenAI/LLM model. - api_type
(optional): The type of the API key. It is used for non-OpenAI LLMs. - api_version
(optional): The version of the API key. It is used for Azure API. - base_url
(optional): The base URL for the OpenAI/LLM model. - tags
(optional): A list of tags for the OpenAI/LLM model which can be used for filtering.
Following is an example of the `OAI_CONFIG_LIST` in JSON format which consists of two OpenAI models and a gemini model:
```bash
[
{
"model": "gpt-4o",
"api_key": "<your_api_key>",
"tags": ["gpt-4o", "tool", "vision"]
},
{
"model": "gpt-4o-mini",
"api_key": "<your_api_key>",
"tags": ["gpt-4o-mini", "tool", "vision"]
},
{
"api_type": "google",
"model": "gemini-pro",
"api_key": "<your_gemini_api_key>",
}
]
```
Further, this `OAI_CONFIG_LIST` can be set in two ways:
<Tabs>
<Tab title="As environment variable">
Simply set the `OAI_CONFIG_LIST` environment variable in your terminal:
```bash
export OAI_CONFIG_LIST='[{"api_type": "openai", "model": "gpt-4o","api_key": "<your_api_key>","tags": ["gpt-4o", "tool", "vision"]},{"api_type": "openai", "model": "gpt-4o-mini","api_key": "<your_api_key>","tags": ["gpt-4o-mini", "tool", "vision"]},{"api_type": "google", "model": "gemini-pro","api_key": "<your_gemini_api_key>",}]'
```
Or you can save the OAI_CONFIG_LIST
in a file and set the path of the file as an environment variable. For example, let's say you have saved the OAI_CONFIG_LIST
in a file called OAI_CONFIG_LIST.json
at the root of the project. You can set the OAI_CONFIG_LIST
environment variable as follows:
Setting up the Development Environment#
To contribute to the AG2 project, AG2 provides three different methods to set up the development environment:
- Setup the necessary LLM keys as mentioned above in your terminal.
- Clone the AG2 repository and cd into the repository.
- Open the project in Visual Studio Code by running the following command from the root of the repository:
- Press
Ctrl+Shift+P
and selectDev Containers: Reopen in Container
. - Select the desired python environment and wait for the container to build.
- Once the container is built, you can start developing AG2.
- Open the AG2 repository on GitHub and fork the repository.
- Navigate to Settings -> Secrets and variables -> Codespaces.
- Add the necessary LLM keys as mentioned above by clicking on the
New repository secret
button. - Navigate back to the forked repository.
- Click on the
Code
button and selectOpen with Codespaces
. - Once the container is built, you can start developing AG2.
- Setup the necessary LLM keys as mentioned above in your terminal.
- Fork the AG2 repository and clone the forked repository.
- Create a virtual environment by running the following command from the root of the repository:
- Activate the virtual environment by running the following command:
- Install the required dependencies by running the following command:
- Once the dependencies are installed, you can start developing AG2.
Verifying the Development Environment#
To make sure that we have set up the development environment correctly, we can run the pre-commit hooks and tests.
To run the pre-commit hooks, run the following command:
To run the non-llm tests, run the following command: