From ce2fb0f6c1d6d028728eb8239660bd9ff7bcf924 Mon Sep 17 00:00:00 2001
From: Eric Gustin <34000337+EricGustin@users.noreply.github.com>
Date: Tue, 28 Jan 2025 17:17:29 -0800
Subject: [PATCH] Update Examples & Various Renames (#233)
# PR Description
* This PR updates code in `examples/` to be compatible with version
1.0.0
* This PR removes the Spotify examples since the Arcade hosted worker
doesn't currently cataloge the Spotify toolkit. We can reintroduce these
examples when it does.
* This PR performs various renames across the codebase for
`arcade-ai.com` --> `arcade.dev` and `Arcade AI` --> `Arcade`
---
CONTRIBUTING.md | 2 +-
Makefile | 2 +-
README.md | 18 +--
arcade/README.md | 10 +-
arcade/arcade/cli/display.py | 2 +-
arcade/arcade/cli/launcher.py | 4 +-
arcade/arcade/cli/main.py | 2 +-
arcade/arcade/cli/serve.py | 4 +-
arcade/arcade/core/config_model.py | 2 +-
.../templates/{{ toolkit_name }}/README.md | 4 +-
arcade/pyproject.toml | 4 +-
contrib/langchain/Makefile | 2 +-
contrib/langchain/README.md | 2 +-
contrib/langchain/pyproject.toml | 2 +-
examples/call_a_tool_directly.py | 6 +-
examples/call_a_tool_directly_with_auth.py | 6 +-
examples/call_a_tool_with_llm.py | 4 +-
.../call_multiple_tools_directly_with_auth.py | 119 ------------------
examples/call_multiple_tools_with_llm.py | 80 ------------
examples/get_auth_token.py | 4 +-
examples/langchain/studio/README.md | 2 +-
examples/simple_chatbot.py | 18 +--
toolkits/code_sandbox/pyproject.toml | 2 +-
toolkits/github/pyproject.toml | 2 +-
toolkits/google/pyproject.toml | 2 +-
toolkits/linkedin/pyproject.toml | 2 +-
toolkits/math/pyproject.toml | 2 +-
toolkits/search/pyproject.toml | 2 +-
toolkits/slack/pyproject.toml | 2 +-
toolkits/spotify/pyproject.toml | 2 +-
toolkits/web/pyproject.toml | 2 +-
toolkits/x/pyproject.toml | 2 +-
toolkits/zoom/pyproject.toml | 2 +-
33 files changed, 64 insertions(+), 257 deletions(-)
delete mode 100644 examples/call_multiple_tools_directly_with_auth.py
delete mode 100644 examples/call_multiple_tools_with_llm.py
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5d55008f..c90c08ea 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -29,7 +29,7 @@ Anything tagged with "enhancement" and "help wanted" is open to whoever wants to
## Write Documentation
-Arcade AI could always use more documentation, whether as part of the official docs, in docstrings, or even on the web in blog posts, articles, and such.
+Arcade could always use more documentation, whether as part of the official docs, in docstrings, or even on the web in blog posts, articles, and such.
## Submit Feedback
diff --git a/Makefile b/Makefile
index 83eb8876..ae2b8fe9 100644
--- a/Makefile
+++ b/Makefile
@@ -157,7 +157,7 @@ clean-dist: ## Clean all built distributions
.PHONY: help
help:
- @echo "🛠️ Arcade AI Dev Commands:\n"
+ @echo "🛠️ Arcade Dev Commands:\n"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
diff --git a/README.md b/README.md
index 8d112e76..310edf2b 100644
--- a/README.md
+++ b/README.md
@@ -43,7 +43,7 @@
[Arcade](https://arcade.dev?ref=github) provides developer-focused tooling and APIs designed to improve the capabilities of LLM applications and agents.
-By removing the complexity of connecting agentic applications with your users' data and services, Arcade AI enables developers to focus on building their agentic applications.
+By removing the complexity of connecting agentic applications with your users' data and services, Arcade enables developers to focus on building their agentic applications.
To learn more, check out our [documentation](https://docs.arcade.dev/home).
@@ -57,7 +57,7 @@ _Pst. hey, you, give us a star if you like it!_
### Requirements
-1. An **[Arcade AI account](https://arcade-ai.typeform.com/early-access)** (currently a waitlist)
+1. An **[Arcade account]([https://arcade-ai.typeform.com/early-access](https://account.arcade.dev/registerOrRedirect?return_to=https%3A%2F%2Fapi.arcade.dev%2Fdashboard&new_user_return_to=https%3A%2F%2Fapi.arcade.dev%2Fdashboard%2Fwelcome))**
2. **Python 3.10+** and **pip**
### Installation
@@ -68,7 +68,7 @@ Install the package:
pip install 'arcade-ai[fastapi]'
```
-Log in to your account:
+Log in to your account via the CLI:
```bash
arcade login
@@ -93,7 +93,7 @@ User (dev@arcade.dev):
> star the ArcadeAI/arcade-ai repo on Github
```
-Arcade AI will prompt you to authorize with GitHub and will star the [ArcadeAI/arcade-ai](https://github.com/ArcadeAI/arcade-ai) repo on your behalf.
+Arcade will prompt you to authorize with GitHub and will star the [ArcadeAI/arcade-ai](https://github.com/ArcadeAI/arcade-ai) repo on your behalf.
You'll see:
@@ -106,11 +106,11 @@ Press `Ctrl-C` to exit the chat.
## Arcade Cloud
-Arcade Cloud is a hosted version of the Arcade AI engine that hosts a number of prebuilt toolkits for interacting with a variety of services.
+Arcade Cloud is a hosted version of the Arcade engine that hosts a number of prebuilt toolkits for interacting with a variety of services.
### Prebuilt Toolkits
-Arcade AI offers a number of prebuilt toolkits that can be used by agents to interact with a variety of services.
+Arcade offers a number of prebuilt toolkits that can be used by agents to interact with a variety of services.
@@ -300,13 +300,17 @@ The LLM API supports a variety of language models. Currently, the ones supported
For more information, refer to the [supported models documentation](https://docs.arcade.dev/home/supported-models).
+### Get Started with Arcade
+
+To get started with Arcade, check out our [quickstart guide](https://docs.arcade.dev/home/quickstart).
+
### Building Your Own Tools
Learn how to build your own tools by following our [creating a custom toolkit guide](https://docs.arcade.dev/home/build-tools/create-a-toolkit).
### Evaluating Tools
-Arcade AI enables you to evaluate your custom tools to ensure they function correctly with the AI assistant, including defining evaluation cases and using different critics.
+Arcade enables you to evaluate your custom tools to ensure they function correctly with the AI assistant, including defining evaluation cases and using different critics.
Learn how to evaluate your tools by following our [evaluating tools guide](https://docs.arcade.dev/home/evaluate-tools/create-an-evaluation-suite).
diff --git a/arcade/README.md b/arcade/README.md
index 0e92d9c4..6c33b982 100644
--- a/arcade/README.md
+++ b/arcade/README.md
@@ -1,13 +1,13 @@
-# Arcade AI Python SDK and CLI
+# Arcade Python SDK and CLI
-[Arcade AI](https://arcade-ai.com?ref=pypi) provides developer-focused tooling and APIs designed to improve the capabilities of LLM applications and agents.
+[Arcade](https://arcade.dev?ref=pypi) provides developer-focused tooling and APIs designed to improve the capabilities of LLM applications and agents.
-By removing the complexity of connecting agentic applications with your users' data and services, Arcade AI enables developers to focus on building their agentic applications.
+By removing the complexity of connecting agentic applications with your users' data and services, Arcade enables developers to focus on building their agentic applications.
To learn more, check out our
-- [Website](https://arcade-ai.com?ref=pypi)
+- [Website](https://arcade.dev?ref=pypi)
- [GitHub](https://github.com/ArcadeAI/arcade-ai)
-- [Documentation](https://docs.arcade-ai.com)
+- [Documentation](https://docs.arcade.dev)
- [Discord](https://discord.com/invite/GUZEMpEZ9p)
- [X](https://x.com/TryArcade)
- [LinkedIn](https://www.linkedin.com/company/arcade-ai)
diff --git a/arcade/arcade/cli/display.py b/arcade/arcade/cli/display.py
index 1bb2572b..c9e62939 100644
--- a/arcade/arcade/cli/display.py
+++ b/arcade/arcade/cli/display.py
@@ -227,7 +227,7 @@ def display_arcade_chat_header(base_url: str, stream: bool) -> None:
chat_header = Text.assemble(
"\n",
(
- "=== Arcade AI Chat ===",
+ "=== Arcade Chat ===",
"bold magenta underline",
),
"\n",
diff --git a/arcade/arcade/cli/launcher.py b/arcade/arcade/cli/launcher.py
index 756a7169..74d5d827 100644
--- a/arcade/arcade/cli/launcher.py
+++ b/arcade/arcade/cli/launcher.py
@@ -169,7 +169,7 @@ def _get_config_file(
)
console.print(
"TIP: Please install the Arcade Engine by following the instructions at:\n"
- " https://docs.arcade-ai.com/home/install/local#install-the-engine\n",
+ " https://docs.arcade.dev/home/install/local#install-the-engine\n",
style="bold green",
)
@@ -229,7 +229,7 @@ def _build_engine_command(engine_config: str | None, engine_env: str | None = No
if not engine_bin:
console.print(
"❌ Engine binary not found, refer to the installation guide at "
- "https://docs.arcade-ai.com/guides/installation for how to install the engine",
+ "https://docs.arcade.dev/guides/installation for how to install the engine",
style="bold red",
)
sys.exit(1)
diff --git a/arcade/arcade/cli/main.py b/arcade/arcade/cli/main.py
index 9c8880dd..3a0ce8be 100644
--- a/arcade/arcade/cli/main.py
+++ b/arcade/arcade/cli/main.py
@@ -414,7 +414,7 @@ def evals(
asyncio.run(run_evaluations())
-@cli.command(help="Launch Arcade AI locally for tool dev", rich_help_panel="Launch")
+@cli.command(help="Launch Arcade locally for tool dev", rich_help_panel="Launch")
def dev(
host: str = typer.Option("127.0.0.1", help="Host for the worker server.", show_default=True),
port: int = typer.Option(
diff --git a/arcade/arcade/cli/serve.py b/arcade/arcade/cli/serve.py
index d83d18d3..79791e22 100644
--- a/arcade/arcade/cli/serve.py
+++ b/arcade/arcade/cli/serve.py
@@ -108,8 +108,8 @@ def serve_default_worker(
worker_secret = worker_secret or "dev"
app = fastapi.FastAPI(
- title="Arcade AI Worker",
- description="Arcade AI default Worker implementation using FastAPI.",
+ title="Arcade Worker",
+ description="Arcade default Worker implementation using FastAPI.",
version="0.1.0",
lifespan=lifespan, # Use custom lifespan to catch errors, notably KeyboardInterrupt (Ctrl+C)
)
diff --git a/arcade/arcade/core/config_model.py b/arcade/arcade/core/config_model.py
index 4f7158ad..338d2b64 100644
--- a/arcade/arcade/core/config_model.py
+++ b/arcade/arcade/core/config_model.py
@@ -85,7 +85,7 @@ class Config(BaseConfig):
If no configuration file exists, this method will create a new one with default values.
The default configuration includes:
- An empty API configuration
- - A default Engine configuration (host: "api.arcade-ai.com", port: None, tls: True)
+ - A default Engine configuration (host: "api.arcade.dev", port: None, tls: True)
- No user configuration
Returns:
diff --git a/arcade/arcade/templates/{{ toolkit_name }}/README.md b/arcade/arcade/templates/{{ toolkit_name }}/README.md
index 39351f5c..87c23c18 100644
--- a/arcade/arcade/templates/{{ toolkit_name }}/README.md
+++ b/arcade/arcade/templates/{{ toolkit_name }}/README.md
@@ -50,12 +50,12 @@
1. Run `make test` from the root of the repository
## How to run evals:
-1. [Install the Arcade Engine Locally](https://docs.arcade-ai.com/home/install/local)
+1. [Install the Arcade Engine Locally](https://docs.arcade.dev/home/install/local)
2. Install extra dependencies needed for evals:
```bash
pip install 'arcade-ai[fastapi,evals]'
```
-3. Log into Arcade AI:
+3. Log into Arcade:
```bash
arcade login
```
diff --git a/arcade/pyproject.toml b/arcade/pyproject.toml
index 6c972a06..58111662 100644
--- a/arcade/pyproject.toml
+++ b/arcade/pyproject.toml
@@ -1,12 +1,12 @@
[tool.poetry]
name = "arcade-ai"
version = "1.0.1"
-description = "Arcade AI Python SDK and CLI"
+description = "Arcade Python SDK and CLI"
readme = "README.md"
packages = [
{include="arcade", from="."}
]
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[build-system]
requires = ["poetry-core>=1.0.0"]
diff --git a/contrib/langchain/Makefile b/contrib/langchain/Makefile
index 47546b2b..55cdce44 100644
--- a/contrib/langchain/Makefile
+++ b/contrib/langchain/Makefile
@@ -56,7 +56,7 @@ build-and-publish: build publish ## Build and publish.
.PHONY: help
help:
- @echo "🛠️ Arcade AI Dev Commands:\n"
+ @echo "🛠️ Arcade Dev Commands:\n"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
.DEFAULT_GOAL := help
diff --git a/contrib/langchain/README.md b/contrib/langchain/README.md
index 9537e9e7..64ec92be 100644
--- a/contrib/langchain/README.md
+++ b/contrib/langchain/README.md
@@ -25,7 +25,7 @@
## Overview
-`langchain-arcade` allows you to use Arcade AI tools in your LangChain and LangGraph applications.
+`langchain-arcade` allows you to use Arcade tools in your LangChain and LangGraph applications.
## Installation
diff --git a/contrib/langchain/pyproject.toml b/contrib/langchain/pyproject.toml
index 2325b843..6d86d8c4 100644
--- a/contrib/langchain/pyproject.toml
+++ b/contrib/langchain/pyproject.toml
@@ -2,7 +2,7 @@
name = "langchain-arcade"
version = "1.0.0"
description = "An integration package connecting Arcade and LangChain/LangGraph"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
readme = "README.md"
repository = "https://github.com/arcadeai/arcade-ai/tree/main/contrib/langchain"
license = "MIT"
diff --git a/examples/call_a_tool_directly.py b/examples/call_a_tool_directly.py
index b1a2db21..c913783e 100644
--- a/examples/call_a_tool_directly.py
+++ b/examples/call_a_tool_directly.py
@@ -16,12 +16,12 @@ def call_non_auth_tool(client: Arcade, user_id: str) -> None:
This is a simple example of calling a non-auth tool. Next, try writing your own non-auth tool for your own use case.
"""
# Prepare the inputs to the tool as a dictionary where keys are the names of the parameters expected by the tool and the values are the actual values to pass to the tool
- inputs = {"a": 9001, "b": 42}
+ tool_input = {"a": 9001, "b": 42}
# Execute the tool
response = client.tools.execute(
tool_name="Math.Add",
- inputs=inputs,
+ input=tool_input,
user_id=user_id,
)
@@ -30,7 +30,7 @@ def call_non_auth_tool(client: Arcade, user_id: str) -> None:
if __name__ == "__main__":
- cloud_host = "https://api.arcade-ai.com"
+ cloud_host = "https://api.arcade.dev"
client = Arcade(
base_url=cloud_host, # Alternatively, use http://localhost:9099 if you are running Arcade Engine locally, or any base_url if you're hosting elsewhere
diff --git a/examples/call_a_tool_directly_with_auth.py b/examples/call_a_tool_directly_with_auth.py
index 0b4b7602..349c6ecb 100644
--- a/examples/call_a_tool_directly_with_auth.py
+++ b/examples/call_a_tool_directly_with_auth.py
@@ -29,12 +29,12 @@ def call_auth_tool(client: Arcade, user_id: str) -> None:
client.auth.wait_for_completion(auth_response)
# Prepare the inputs to the tool as a dictionary where keys are the names of the parameters expected by the tool and the values are the actual values to pass to the tool
- inputs = {"n_emails": 5}
+ tool_input = {"n_emails": 5}
# Execute the tool
response = client.tools.execute(
tool_name="Google.ListEmails",
- inputs=inputs,
+ input=tool_input,
user_id=user_id,
)
@@ -44,7 +44,7 @@ def call_auth_tool(client: Arcade, user_id: str) -> None:
if __name__ == "__main__":
client = Arcade(
- base_url="https://api.arcade-ai.com", # Alternatively, use http://localhost:9099 if you are running Arcade Engine locally, or any base_url if you're hosting elsewhere
+ base_url="https://api.arcade.dev", # Alternatively, use http://localhost:9099 if you are running Arcade Engine locally, or any base_url if you're hosting elsewhere
)
user_id = "you@example.com"
diff --git a/examples/call_a_tool_with_llm.py b/examples/call_a_tool_with_llm.py
index 42e75dae..ad7c98e0 100644
--- a/examples/call_a_tool_with_llm.py
+++ b/examples/call_a_tool_with_llm.py
@@ -12,7 +12,7 @@ def call_tool_with_openai(client: OpenAI) -> dict:
messages=[
{"role": "user", "content": "Star the ArcadeAI/arcade-ai repository."},
],
- model="gpt-4o-mini", # TODO: Try "claude-3-5-sonnet-20240620" or other models from our supported model providers. Checkout out our docs for a full list: https://docs.arcade-ai.com/integrations
+ model="gpt-4o-mini", # TODO: Try "claude-3-5-sonnet-20240620" or other models from our supported model providers. Checkout out our docs for a full list https://docs.arcade.dev
user="you@example.com",
tools=["Github.SetStarred"],
tool_choice="generate", # TODO: Try "execute" and note any differences
@@ -25,7 +25,7 @@ if __name__ == "__main__":
arcade_api_key = os.environ.get(
"ARCADE_API_KEY"
) # If you forget your Arcade API key, it is stored at ~/.arcade/credentials.yaml on `arcade login`
- cloud_host = "https://api.arcade-ai.com" + "/v1"
+ cloud_host = "https://api.arcade.dev" + "/v1"
openai_client = OpenAI(
api_key=arcade_api_key,
diff --git a/examples/call_multiple_tools_directly_with_auth.py b/examples/call_multiple_tools_directly_with_auth.py
deleted file mode 100644
index 3e182db9..00000000
--- a/examples/call_multiple_tools_directly_with_auth.py
+++ /dev/null
@@ -1,119 +0,0 @@
-"""Example script demonstrating how to call multiple tools directly with authentication.
-
-For this example, we are using the prebuilt Spotify toolkit to start playing similar songs to the currently playing song.
-
-Steps:
-1. Search for the song
-2. Start playing the song
-3. Get info about the currently playing song
-4. Inform the user which song is now playing
-"""
-
-from typing import Any, Optional
-
-from arcade_spotify.tools.models import SearchType
-from arcadepy import Arcade # pip install arcade-py
-
-
-# Need to click on a link for every provider
-def get_permissions(client: Arcade, provider_to_scopes: dict, user_id: str) -> None:
- """Prompt the user to authorize necessary permissions for each provider."""
- for provider, scopes in provider_to_scopes.items():
- auth_response = client.auth.start(
- user_id=user_id,
- provider=provider,
- scopes=scopes,
- )
-
- if auth_response.status != "completed":
- print(f"Click this link to authorize: {auth_response.authorization_url}")
- input("After you have authorized, press Enter to continue...")
-
-
-def call_tool(client: Arcade, tool_name: str, user_id: str, inputs: Optional[dict] = None) -> Any:
- """Call a single tool."""
- if inputs is None:
- inputs = {}
-
- response = client.tools.execute(
- tool_name=tool_name,
- inputs=inputs,
- user_id=user_id,
- )
-
- if response.output.error:
- print(response.output.error)
-
- return response.output.value
-
-
-def search_and_play_song(
- client: Arcade,
- provider_to_scopes: dict,
- tools: list[str],
- user_id: str,
- song_name: str,
- artist_name: str,
-) -> None:
- """Execute the sequence of tools to get recommendations and start playback."""
- get_permissions(client, provider_to_scopes, user_id)
-
- (
- search_tool,
- start_playback_tool,
- get_currently_playing_tool,
- ) = tools
-
- # Step 1: search for the song
- response = call_tool(
- client=client,
- tool_name=search_tool,
- user_id=user_id,
- inputs={
- "q": f"{song_name} {artist_name}",
- "types": [SearchType.TRACK],
- },
- )
-
- if not response["tracks"]["items"]:
- print("Sorry, I couldn't find that song on Spotify.")
- return
-
- # Step 2: Start playing the song
- track_id = response["tracks"]["items"][0]["id"]
- response = call_tool(
- client,
- start_playback_tool,
- user_id,
- inputs={"track_ids": [track_id]},
- )
-
- # Step 3: get currently playing song
- response = call_tool(client, get_currently_playing_tool, user_id)
- print(
- f"\nNow playing: {response['track_name']} by {', '.join(response['track_artists'])} - {response['track_spotify_url']}"
- )
-
-
-if __name__ == "__main__":
- client = Arcade(base_url="https://api.arcade-ai.com")
-
- # Necessary scopes for the tools we are calling:
- provider_to_scopes = {
- "spotify": [
- "user-read-currently-playing",
- "user-read-playback-state",
- ],
- }
-
- tools = [
- "Spotify.Search", # Search for a song
- "Spotify.StartTracksPlaybackById", # Start playing the song
- "Spotify.GetCurrentlyPlaying", # Get info about the current song
- ]
-
- user_id = "you@example.com"
- song_name = input("Enter the song name: ")
- artist_name = input("Enter the artist name: ")
-
- search_and_play_song(client, provider_to_scopes, tools, user_id, song_name, artist_name)
diff --git a/examples/call_multiple_tools_with_llm.py b/examples/call_multiple_tools_with_llm.py
deleted file mode 100644
index dc662ab1..00000000
--- a/examples/call_multiple_tools_with_llm.py
+++ /dev/null
@@ -1,80 +0,0 @@
-"""
-Example script demonstrating how to call multiple tools (sequentially) using an LLM with authentication.
-
-For this example, we are using the prebuilt Spotify toolkit to search for a song, start playing it, and
-get info about the currently playing song.
-
-Steps:
-1. Search for the song
-2. Start playing the song
-3. Get info about the currently playing song
-4. Inform the user which song is now playing
-"""
-
-import os
-
-from openai import OpenAI
-
-
-def call_tool(client: OpenAI, user_id: str, tool: str, message: dict, history: list[dict]) -> str:
- """Make a tool call with a specific tool and message."""
- response = client.chat.completions.create(
- messages=[
- *history,
- message,
- ],
- model="gpt-4o",
- user=user_id,
- tools=[tool],
- tool_choice="generate",
- )
- return response
-
-
-def call_tools_with_llm(
- client: OpenAI, user_id: str, song_name: str, artist_name: str
-) -> list[dict]:
- """Use an LLM to execute the sequence of tools to search for a song and start playback."""
- tools = [
- "Spotify.Search",
- "Spotify.StartTracksPlaybackById",
- "Spotify.GetCurrentlyPlaying",
- ]
-
- messages = [
- {"role": "user", "content": f"Search for '{song_name}' by {artist_name}' on Spotify."},
- {"role": "user", "content": "Start playing the song. Just one tool call."},
- {"role": "user", "content": "Get the currently playing song."},
- ]
-
- history = []
- for i in range(len(messages)):
- response = call_tool(client, user_id, tools[i], messages[i], history)
- print("\n\n", response.choices[0].message.content)
- if (
- response.choices[0].tool_authorizations
- and response.choices[0].tool_authorizations[0].get("status") == "pending"
- ):
- input("\nPress Enter once you have authorized...")
- response = call_tool(client, user_id, tools[i], messages[i], history)
- history.append(messages[i])
- history.append({"role": "assistant", "content": response.choices[0].message.content})
-
- return history
-
-
-if __name__ == "__main__":
- arcade_api_key = os.environ.get("ARCADE_API_KEY")
- cloud_host = "https://api.arcade-ai.com/v1"
-
- openai_client = OpenAI(
- api_key=arcade_api_key,
- base_url=cloud_host,
- )
-
- user_id = "you@example.com"
- song_name = input("Enter the song name: ")
- artist_name = input("Enter the artist name: ")
-
- history = call_tools_with_llm(openai_client, user_id, song_name, artist_name)
- print("\n\n", history)
diff --git a/examples/get_auth_token.py b/examples/get_auth_token.py
index 364a9a5b..9840c5f8 100644
--- a/examples/get_auth_token.py
+++ b/examples/get_auth_token.py
@@ -22,7 +22,7 @@ def get_auth_token(client: Arcade, user_id: str) -> str:
)
if auth_response.status != "completed":
- print(f"Click this link to authorize: {auth_response.authorization_url}")
+ print(f"Click this link to authorize: {auth_response.url}")
auth_response = client.auth.wait_for_completion(auth_response)
return auth_response.context.token
@@ -46,7 +46,7 @@ def use_auth_token(token: str) -> None:
if __name__ == "__main__":
- cloud_host = "https://api.arcade-ai.com"
+ cloud_host = "https://api.arcade.dev"
client = Arcade(
base_url=cloud_host, # Alternatively, use http://localhost:9099 if you are running Arcade locally, or any base_url if you're hosting elsewhere
diff --git a/examples/langchain/studio/README.md b/examples/langchain/studio/README.md
index 3d525077..ebddf5f9 100644
--- a/examples/langchain/studio/README.md
+++ b/examples/langchain/studio/README.md
@@ -2,7 +2,7 @@
### API keys
-Follow [these instructions](https://docs.arcade.dev/home/custom-tools/) to Install Arcade AI and create an API key.
+Follow [these instructions](https://docs.arcade.dev/home/custom-tools/) to Install Arcade and create an API key.
This example is using OpenAI, as the LLM provider. Ensure you have an [OpenAI API key](https://platform.openai.com/docs/quickstart).
diff --git a/examples/simple_chatbot.py b/examples/simple_chatbot.py
index 776d02a0..859d914e 100644
--- a/examples/simple_chatbot.py
+++ b/examples/simple_chatbot.py
@@ -1,5 +1,5 @@
"""
-Example script demonstrating how to build a simple chatbot with Arcade AI.
+Example script demonstrating how to build a simple chatbot with Arcade.
For this example, we are using the prebuilt Google Docs toolkit to create and edit documents.
@@ -55,20 +55,22 @@ if __name__ == "__main__":
arcade_api_key = os.environ.get(
"ARCADE_API_KEY"
) # If you forget your Arcade API key, it is stored at ~/.arcade/credentials.yaml on `arcade login`
- local_host = "http://localhost:9099/v1"
+ cloud_host = "https://api.arcade.dev/v1"
user_id = "user@example.com"
openai_client = OpenAI(
api_key=arcade_api_key,
- base_url=local_host,
+ base_url=cloud_host,
)
tool_names = [
- "Google.GetDocumentById",
- "Google.InsertTextAtEndOfDocument",
- "Google.CreateBlankDocument",
- "Google.CreateDocumentFromText",
- "Google.ListDocuments",
+ "Google.SendEmail",
+ "Google.SendDraftEmail",
+ "Google.WriteDraftEmail",
+ "Google.UpdateDraftEmail",
+ "Google.ListDraftEmails",
+ "Google.ListEmailsByHeader",
+ "Google.ListEmails",
]
chat(openai_client, tool_names, user_id)
diff --git a/toolkits/code_sandbox/pyproject.toml b/toolkits/code_sandbox/pyproject.toml
index 0d626da9..ade5c7ae 100644
--- a/toolkits/code_sandbox/pyproject.toml
+++ b/toolkits/code_sandbox/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_code_sandbox"
version = "0.1.9"
description = "LLM tools for running code in a sandbox"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/github/pyproject.toml b/toolkits/github/pyproject.toml
index f493414d..3ccc2105 100644
--- a/toolkits/github/pyproject.toml
+++ b/toolkits/github/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_github"
version = "0.1.9"
description = "LLM tools for interacting with Github"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/google/pyproject.toml b/toolkits/google/pyproject.toml
index b0cd3588..a94c000e 100644
--- a/toolkits/google/pyproject.toml
+++ b/toolkits/google/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_google"
version = "0.2.0"
description = "Arcade tools for the entire google suite"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/linkedin/pyproject.toml b/toolkits/linkedin/pyproject.toml
index a704a682..89aa3012 100644
--- a/toolkits/linkedin/pyproject.toml
+++ b/toolkits/linkedin/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_linkedin"
version = "0.1.10"
description = "Arcade tools for LinkedIn"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/math/pyproject.toml b/toolkits/math/pyproject.toml
index ec8b8369..82fbb2bf 100644
--- a/toolkits/math/pyproject.toml
+++ b/toolkits/math/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_math"
version = "0.1.9"
description = "Math toolkit for Arcade"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/search/pyproject.toml b/toolkits/search/pyproject.toml
index 5e011c67..b678317e 100644
--- a/toolkits/search/pyproject.toml
+++ b/toolkits/search/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_search"
version = "0.1.10"
description = "Tools for searching the web"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/slack/pyproject.toml b/toolkits/slack/pyproject.toml
index c39c17f4..4d2ce35b 100644
--- a/toolkits/slack/pyproject.toml
+++ b/toolkits/slack/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_slack"
version = "0.2.0"
description = "Slack tools for LLMs"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/spotify/pyproject.toml b/toolkits/spotify/pyproject.toml
index 0db11950..f36f2102 100644
--- a/toolkits/spotify/pyproject.toml
+++ b/toolkits/spotify/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_spotify"
version = "0.2.1"
description = "Arcade tools for Spotify"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/web/pyproject.toml b/toolkits/web/pyproject.toml
index 8d66e03f..1c85e8b7 100644
--- a/toolkits/web/pyproject.toml
+++ b/toolkits/web/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_web"
version = "0.1.9"
description = "LLM tools for web-related tasks"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/x/pyproject.toml b/toolkits/x/pyproject.toml
index 1d4b9c74..2d0d983e 100644
--- a/toolkits/x/pyproject.toml
+++ b/toolkits/x/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_x"
version = "0.1.11"
description = "LLM tools for interacting with X (Twitter)"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"
diff --git a/toolkits/zoom/pyproject.toml b/toolkits/zoom/pyproject.toml
index 5ab74b0a..518d4596 100644
--- a/toolkits/zoom/pyproject.toml
+++ b/toolkits/zoom/pyproject.toml
@@ -2,7 +2,7 @@
name = "arcade_zoom"
version = "0.1.10"
description = "Arcade tools for Zoom"
-authors = ["Arcade AI "]
+authors = ["Arcade "]
[tool.poetry.dependencies]
python = "^3.10"