forked from microsoft/autogen
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'microsoft:main' into main
- Loading branch information
Showing
651 changed files
with
76,986 additions
and
16,857 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# Dockerfiles and Devcontainer Configurations for AutoGen | ||
|
||
Welcome to the `.devcontainer` directory! Here you'll find Dockerfiles and devcontainer configurations that are essential for setting up your AutoGen development environment. Each Dockerfile is tailored for different use cases and requirements. Below is a brief overview of each and how you can utilize them effectively. | ||
|
||
These configurations can be used with Codespaces and locally. | ||
|
||
## Dockerfile Descriptions | ||
|
||
### base | ||
|
||
- **Purpose**: This Dockerfile, i.e., `./Dockerfile`, is designed for basic setups. It includes common Python libraries and essential dependencies required for general usage of AutoGen. | ||
- **Usage**: Ideal for those just starting with AutoGen or for general-purpose applications. | ||
- **Building the Image**: Run `docker build -f ./Dockerfile -t autogen_base_img .` in this directory. | ||
- **Using with Codespaces**: `Code > Codespaces > Click on +` By default + creates a Codespace on the current branch. | ||
|
||
### full | ||
|
||
- **Purpose**: This Dockerfile, i.e., `./full/Dockerfile` is for advanced features. It includes additional dependencies and is configured for more complex or feature-rich AutoGen applications. | ||
- **Usage**: Suited for advanced users who need the full range of AutoGen's capabilities. | ||
- **Building the Image**: Execute `docker build -f full/Dockerfile -t autogen_full_img .`. | ||
- **Using with Codespaces**: `Code > Codespaces > Click on ...> New with options > Choose "full" as devcontainer configuration`. This image may require a Codespace with at least 64GB of disk space. | ||
|
||
### dev | ||
|
||
- **Purpose**: Tailored for AutoGen project developers, this Dockerfile, i.e., `./dev/Dockerfile` includes tools and configurations aiding in development and contribution. | ||
- **Usage**: Recommended for developers who are contributing to the AutoGen project. | ||
- **Building the Image**: Run `docker build -f dev/Dockerfile -t autogen_dev_img .`. | ||
- **Using with Codespaces**: `Code > Codespaces > Click on ...> New with options > Choose "dev" as devcontainer configuration`. This image may require a Codespace with at least 64GB of disk space. | ||
- **Before using**: We highly encourage all potential contributors to read the [AutoGen Contributing](https://microsoft.github.io/autogen/docs/Contribute) page prior to submitting any pull requests. | ||
|
||
|
||
### studio | ||
|
||
- **Purpose**: Tailored for AutoGen project developers, this Dockerfile, i.e., `./studio/Dockerfile`, includes tools and configurations aiding in development and contribution. | ||
- **Usage**: Recommended for developers who are contributing to the AutoGen project. | ||
- **Building the Image**: Run `docker build -f studio/Dockerfile -t autogen_studio_img .`. | ||
- **Using with Codespaces**: `Code > Codespaces > Click on ...> New with options > Choose "studio" as devcontainer configuration`. | ||
- **Before using**: We highly encourage all potential contributors to read the [AutoGen Contributing](https://microsoft.github.io/autogen/docs/Contribute) page prior to submitting any pull requests. | ||
|
||
|
||
## Customizing Dockerfiles | ||
|
||
Feel free to modify these Dockerfiles for your specific project needs. Here are some common customizations: | ||
|
||
- **Adding New Dependencies**: If your project requires additional Python packages, you can add them using the `RUN pip install` command. | ||
- **Changing the Base Image**: You may change the base image (e.g., from a Python image to an Ubuntu image) to suit your project's requirements. | ||
- **Changing the Python version**: do you need a different version of python other than 3.11. Just update the first line of each of the Dockerfiles like so: | ||
`FROM python:3.11-slim-bookworm` to `FROM python:3.10-slim-bookworm` | ||
- **Setting Environment Variables**: Add environment variables using the `ENV` command for any application-specific configurations. We have prestaged the line needed to inject your OpenAI_key into the docker environment as a environmental variable. Others can be staged in the same way. Just uncomment the line. | ||
`# ENV OPENAI_API_KEY="{OpenAI-API-Key}"` to `ENV OPENAI_API_KEY="{OpenAI-API-Key}"` | ||
- **Need a less "Advanced" Autogen build**: If the `./full/Dockerfile` is to much but you need more than advanced then update this line in the Dockerfile file. | ||
`RUN pip install pyautogen[teachable,lmm,retrievechat,mathchat,blendsearch] autogenra` to install just what you need. `RUN pip install pyautogen[retrievechat,blendsearch] autogenra` | ||
- **Can't Dev without your favorite CLI tool**: if you need particular OS tools to be installed in your Docker container you can add those packages here right after the sudo for the `./base/Dockerfile` and `./full/Dockerfile` files. In the example below we are installing net-tools and vim to the environment. | ||
|
||
```code | ||
RUN apt-get update \ | ||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | ||
software-properties-common sudo net-tools vim\ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
``` | ||
### Managing Your Docker Environment | ||
After customizing your Dockerfile, build the Docker image using the `docker build` command as shown above. To run a container based on your new image, use: | ||
```bash | ||
docker run -it -v $(pwd)/your_app:/app your_image_name | ||
``` | ||
|
||
Replace `your_app` with your application directory and `your_image_name` with the name of the image you built. | ||
|
||
#### Closing for the Day | ||
|
||
- **Exit the container**: Type `exit`. | ||
- **Stop the container**: Use `docker stop {application_project_name}`. | ||
|
||
#### Resuming Work | ||
|
||
- **Restart the container**: Use `docker start {application_project_name}`. | ||
- **Access the container**: Execute `sudo docker exec -it {application_project_name} bash`. | ||
- **Reactivate the environment**: Run `source /usr/src/app/autogen_env/bin/activate`. | ||
|
||
### Useful Docker Commands | ||
|
||
- **View running containers**: `docker ps -a`. | ||
- **View Docker images**: `docker images`. | ||
- **Restart container setup**: Stop (`docker stop my_container`), remove the container (`docker rm my_container`), and remove the image (`docker rmi my_image:latest`). | ||
|
||
#### Troubleshooting Common Issues | ||
|
||
- Check Docker daemon, port conflicts, and permissions issues. | ||
|
||
#### Additional Resources | ||
|
||
For more information on Docker usage and best practices, refer to the [official Docker documentation](https://docs.docker.com). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Basic setup | ||
FROM python:3.11-slim-bookworm | ||
|
||
# add git lhs to apt | ||
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash | ||
|
||
# Update and install necessary packages | ||
RUN apt-get update && apt-get -y update | ||
# added vim and nano for convenience | ||
RUN apt-get install -y sudo git npm vim nano curl wget git-lfs | ||
|
||
# Setup a non-root user 'autogen' with sudo access | ||
RUN adduser --disabled-password --gecos '' autogen | ||
RUN adduser autogen sudo | ||
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | ||
USER autogen | ||
WORKDIR /home/autogen | ||
|
||
# Set environment variable | ||
# ENV OPENAI_API_KEY="{OpenAI-API-Key}" | ||
|
||
# Clone the AutoGen repository | ||
RUN git clone https://github.com/microsoft/autogen.git /home/autogen/autogen | ||
WORKDIR /home/autogen/autogen | ||
|
||
# Install AutoGen in editable mode with extra components | ||
RUN sudo pip install -e .[test,teachable,lmm,retrievechat,mathchat,blendsearch] | ||
|
||
# Install pre-commit hooks | ||
RUN pre-commit install | ||
|
||
# Setup Docusaurus and Yarn for the documentation website | ||
RUN sudo npm install --global yarn | ||
RUN sudo pip install pydoc-markdown | ||
RUN cd website | ||
RUN yarn install --frozen-lockfile --ignore-engines | ||
|
||
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \ | ||
wget -q https://github.com/quarto-dev/quarto-cli/releases/download/v1.5.23/quarto-1.5.23-linux-${arch}.tar.gz && \ | ||
mkdir -p /home/autogen/quarto/ && \ | ||
tar -xzf quarto-1.5.23-linux-${arch}.tar.gz --directory /home/autogen/quarto/ && \ | ||
rm quarto-1.5.23-linux-${arch}.tar.gz | ||
|
||
ENV PATH="${PATH}:/home/autogen/quarto/quarto-1.5.23/bin/" | ||
|
||
# Exposes the Yarn port for Docusaurus | ||
EXPOSE 3000 | ||
|
||
# Pre-load popular Python packages | ||
RUN pip install --upgrade pip | ||
RUN pip install numpy pandas matplotlib seaborn scikit-learn requests urllib3 nltk pillow pytest beautifulsoup4 | ||
|
||
# Set the default command to bash | ||
CMD ["/bin/bash"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"dockerFile": "Dockerfile" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
FROM python:3.11-slim-bookworm | ||
|
||
# add git lhs to apt | ||
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash | ||
|
||
# Update and install dependencies | ||
RUN apt-get update \ | ||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ | ||
software-properties-common sudo git-lfs \ | ||
&& apt-get clean \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
|
||
# Setup a non-root user 'autogen' with sudo access | ||
RUN adduser --disabled-password --gecos '' autogen | ||
RUN adduser autogen sudo | ||
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers | ||
USER autogen | ||
WORKDIR /home/autogen | ||
|
||
# Set environment variable if needed | ||
# ENV OPENAI_API_KEY="{OpenAI-API-Key}" | ||
|
||
# Install Python packages | ||
RUN pip install --upgrade pip | ||
RUN pip install pyautogen[teachable,lmm,retrievechat,mathchat,blendsearch] autogenra | ||
RUN pip install numpy pandas matplotlib seaborn scikit-learn requests urllib3 nltk pillow pytest beautifulsoup4 | ||
|
||
# Expose port | ||
EXPOSE 8081 | ||
|
||
# Start Command | ||
CMD ["/bin/bash"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"dockerFile": "Dockerfile" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
#------------------------------------------------------------------------------------------------------------- | ||
# Copyright (c) Microsoft Corporation. All rights reserved. | ||
# Licensed under the MIT License. See LICENSE file in the project root for license information. | ||
#------------------------------------------------------------------------------------------------------------- | ||
|
||
FROM mcr.microsoft.com/vscode/devcontainers/python:3.10 | ||
|
||
# | ||
# Update the OS and maybe install packages | ||
# | ||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
# add git lhs to apt | ||
RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash | ||
|
||
RUN apt-get update \ | ||
&& apt-get upgrade -y \ | ||
&& apt-get -y install --no-install-recommends build-essential npm git-lfs \ | ||
&& apt-get autoremove -y \ | ||
&& apt-get clean -y \ | ||
&& rm -rf /var/lib/apt/lists/* | ||
ENV DEBIAN_FRONTEND=dialog | ||
|
||
# For docs | ||
RUN npm install --global yarn | ||
RUN pip install --upgrade pip | ||
RUN pip install pydoc-markdown |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
{ | ||
"customizations": { | ||
"vscode": { | ||
"extensions": [ | ||
"ms-python.python", | ||
"ms-toolsai.jupyter", | ||
"visualstudioexptteam.vscodeintellicode" | ||
], | ||
"settings": { | ||
"terminal.integrated.profiles.linux": { | ||
"bash": { | ||
"path": "/bin/bash" | ||
} | ||
}, | ||
"terminal.integrated.defaultProfile.linux": "bash" | ||
} | ||
} | ||
}, | ||
"dockerFile": "Dockerfile", | ||
"updateContentCommand": "cd samples/apps/autogen-studio && pip install -e . && sudo npm install -g gatsby-cli && cd frontend && yarn install && yarn build" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
*.png filter=lfs diff=lfs merge=lfs -text | ||
*.jpg filter=lfs diff=lfs merge=lfs -text | ||
*.jpeg filter=lfs diff=lfs merge=lfs -text |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.