diff --git a/arcade/arcade/sdk/annotations.py b/arcade/arcade/core/annotations.py similarity index 100% rename from arcade/arcade/sdk/annotations.py rename to arcade/arcade/core/annotations.py diff --git a/arcade/arcade/sdk/auth.py b/arcade/arcade/core/auth.py similarity index 100% rename from arcade/arcade/sdk/auth.py rename to arcade/arcade/core/auth.py diff --git a/arcade/arcade/core/catalog.py b/arcade/arcade/core/catalog.py index 69afc236..3f9f05b5 100644 --- a/arcade/arcade/core/catalog.py +++ b/arcade/arcade/core/catalog.py @@ -23,6 +23,8 @@ from pydantic import BaseModel, Field, create_model from pydantic.fields import FieldInfo from pydantic_core import PydanticUndefined +from arcade.core.annotations import Inferrable +from arcade.core.auth import OAuth2, ToolAuthorization from arcade.core.errors import ToolDefinitionError from arcade.core.schema import ( TOOL_NAME_SEPARATOR, @@ -46,8 +48,6 @@ from arcade.core.utils import ( is_union, snake_to_pascal_case, ) -from arcade.sdk.annotations import Inferrable -from arcade.sdk.auth import OAuth2, ToolAuthorization InnerWireType = Literal["string", "integer", "number", "boolean", "json"] WireType = Union[InnerWireType, Literal["array"]] diff --git a/arcade/arcade/sdk/annotations/__init__.py b/arcade/arcade/sdk/annotations/__init__.py new file mode 100644 index 00000000..ff53692e --- /dev/null +++ b/arcade/arcade/sdk/annotations/__init__.py @@ -0,0 +1,3 @@ +from arcade.core.annotations import Inferrable + +__all__ = ["Inferrable"] diff --git a/arcade/arcade/sdk/auth/__init__.py b/arcade/arcade/sdk/auth/__init__.py new file mode 100644 index 00000000..fb3c43f2 --- /dev/null +++ b/arcade/arcade/sdk/auth/__init__.py @@ -0,0 +1,23 @@ +from arcade.core.auth import ( + GitHub, + Google, + LinkedIn, + OAuth2, + Slack, + Spotify, + ToolAuthorization, + X, + Zoom, +) + +__all__ = [ + "GitHub", + "Google", + "LinkedIn", + "OAuth2", + "Slack", + "Spotify", + "ToolAuthorization", + "X", + "Zoom", +] diff --git a/examples/fastapi/arcade_example_fastapi/main.py b/examples/fastapi/arcade_example_fastapi/main.py index c4d239d0..5e5aca45 100644 --- a/examples/fastapi/arcade_example_fastapi/main.py +++ b/examples/fastapi/arcade_example_fastapi/main.py @@ -12,14 +12,14 @@ client = AsyncOpenAI(api_key=os.environ["ARCADE_API_KEY"], base_url="http://loca app = FastAPI() -actor_secret = os.environ.get("ARCADE_ACTOR_SECRET") +actor_secret = os.environ["ARCADE_ACTOR_SECRET"] actor = FastAPIActor(app, secret=actor_secret) actor.register_toolkit(Toolkit.from_module(arcade_math)) class ChatRequest(BaseModel): message: str - user_id: str + user_id: str | None = None @app.post("/chat") @@ -33,14 +33,13 @@ async def postChat(request: ChatRequest, tool_choice: str = "execute"): model="gpt-4o-mini", max_tokens=500, tools=[ - # "Google.GetEmails", - # "Google.SearchEmailsByHeader", - # "Google.WriteDraft", - # "GitHub.CountStargazers", - # "GitHub.SetStarred", - # "GitHub.SearchIssues", - # "Slack.SendDmToUser", - # "Slack.SendMessageToChannel", + "Math.Add", + "Math.Subtract", + "Math.Multiply", + "Math.Divide", + "Math.Sqrt", + # Other tools can be added as needed: + # "Math.SumList" ], tool_choice=tool_choice, user=request.user_id,