MCP Server Framework and Tool Development library for building custom capabilities into agents.
Find a file
Sam Partee 52d82a2789
Refactor Docker Build Process (#78)
This PR improves the Docker build process by shifting from building the
project within the Docker image to using pre-built wheels. The main
changes are:

1. **Updated Makefile:**
- **`VERSION` Variable:** Set to `0.1.0.dev0` to reflect the new default
development version.
   - **`docker` Target:**
- Added steps to build the Arcade and toolkit wheels before building the
Docker image.
- Exports the required extras (`fastapi`, `evals`) to a
`requirements.txt` file.
   - **`full-dist` Target:**
     - Builds distributions for the main project and all toolkits.
     - Copies all the built wheels to a centralized `./dist` directory.
   - **`clean-dist` Target:**
- Cleans build artifacts from `./dist`, `arcade/dist`, and
`toolkits/*/dist` directories.

2. **Modified Dockerfile:**
- **Copy Pre-built Wheels:** Adjusted to copy wheels and the
`requirements.txt` from the `./dist` directory into the Docker image.
   - **Installation Process:**
     - Installs the Arcade wheel with the necessary extras.
- Installs toolkits from the copied wheel files, eliminating the need to
build them inside the Docker image.
- **Simplification:** Removed unnecessary commands, such as installing
build tools and copying the entire codebase, to streamline the
Dockerfile.

3. **Toolkits `pyproject.toml` Updates:**
- Changed the `arcade-ai` dependency version from `^0.1.0` to `0.1.*` in
all toolkit `pyproject.toml` files to ensure compatibility with the new
versioning scheme.

4. **Docker Makefile Adjustments:**
- Set the `VERSION` variable to `0.1.0.dev0` to align with the main
Makefile.
- Ensures consistent versioning across Docker-related build processes.

**Benefits:**

- **Efficiency:** Building wheels outside the Docker context reduces the
Docker image build time and resource consumption. overall docker image
size reduced by **1Gb**!!!
- **Reliability:** Using pre-built wheels ensures consistency across
different environments and simplifies dependency management.
- **Maintainability:** The Dockerfile and Makefiles are cleaner and more
straightforward, making them easier to understand and maintain.


**Notes:**

- Developers should run `make docker` to build and run the Docker
container using the new process.
- Ensure that any CI/CD pipelines are updated to accommodate these
changes in the build process. @sdreyer
2024-10-01 19:05:13 -07:00
.github Generate poetry.lock before caching (#63) 2024-09-25 09:46:29 -07:00
.vscode Fix ruff (#64) 2024-09-25 09:47:30 -07:00
arcade Refactor Docker Build Process (#78) 2024-10-01 19:05:13 -07:00
docker Refactor Docker Build Process (#78) 2024-10-01 19:05:13 -07:00
examples Fix ruff (#64) 2024-09-25 09:47:30 -07:00
schemas/preview SDK: Fully qualified tool names (#47) 2024-09-23 15:47:36 -07:00
toolkits Refactor Docker Build Process (#78) 2024-10-01 19:05:13 -07:00
.editorconfig Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.gitignore Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.pre-commit-config.yaml Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.prettierignore Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.prettierrc.toml Fix ruff (#64) 2024-09-25 09:47:30 -07:00
.ruff.toml Toolkit lint cleanup (#72) 2024-10-01 10:41:38 -07:00
CONTRIBUTING.md MyPy Compliant (#5) 2024-07-16 17:01:38 -07:00
cspell.config.yaml Refactor into library approach (#7) 2024-07-23 16:26:54 -07:00
LICENSE Tool SDK, Schemas (#2) 2024-07-14 23:37:46 -07:00
Makefile Refactor Docker Build Process (#78) 2024-10-01 19:05:13 -07:00
README.md Add initial X toolkit, remove Github toolkit, rename math toolkit (#52) 2024-09-23 13:42:22 -07:00

Release Build status codecov Commit activity License

Arcade AI

Arcade AI is the developer platform for building tools designed to be used with language models. With Arcade, developers can create, deploy, and easily integrate new tools with language models to enhance their capabilities.

arcade-ai

The arcade-ai package contains:

  • arcade CLI
  • arcade.sdk Tool SDK
  • arcade.actor serving tools with FastAPI, Flask, or Django

Installation

To install the Arcade AI package, execute the following command:

pip install arcade-ai

or install from source:

git clone https://github.com/arcadeai/arcade-ai.git
cd arcade-ai
pip install poetry
poetry install

First steps

Follow these steps if you've cloned the repo and installed the package from source:

cd examples/search
poetry install

arcade show arcade_search

This will show an output that looks like

┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━┓ ┃ Name ┃ Description ┃ Toolkit ┃ Version ┃ ┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━┩ │ SearchGoogle │ Search Google using SerpAPI and return organic search results. │ search │ 0.1.0 │ └──────────────┴────────────────────────────────────────────────────────────────┴───────────┴─────────┘

Predict the parameters with a model and run the tool with the predicted parameters. Arcade adds the execute choice to the tool, which allows you to run the tool with the predicted parameters in a single request.

> arcade run arcade_search "who is Sam Partee?" --choice "execute"
Running tool: SearchGoogle with params: {'query': 'Sam Partee'}

[{"position": 1, "title": "Sam Partee (@SamPartee) / X", "link": "https://twitter.com/sampartee", "redirect_link":
"https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://twitter.com/sampartee&ved=2ahUKEwjBwKiz3b6HAxV1VTABHXL8BZQQFnoECAYQAQ",
"displayed_link": "1.5K+ followers", "thumbnail":
.....
.. (truncated)

Arcade also adds the predict choice to the tool, which allows you to predict the parameters with a model.

> arcade run arcade_search "who is Sam Partee?" --choice "predict" # also the default
Running tool: SearchGoogle with params: {'query': 'Sam Partee'}

Sam Partee is a CTO, Co-founder of Arcade AI and former Machine Learning Engineer at companies like RedisInc and HPE_Cray. They have
expertise in AI/ML, vector search, Python, HPC, and are a sports fan.