-
Notifications
You must be signed in to change notification settings - Fork 57
Arcade Expert Toolkit #405
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅ 📢 Thoughts on this report? Let us know! |
openai_client = OpenAI(api_key=openai_api_key) | ||
|
||
# Get Arcade.dev documentation's llms.txt file | ||
url = "https://docs.arcade.dev/llms.txt" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❤️
@@ -0,0 +1,43 @@ | |||
[tool.poetry] | |||
name = "arcade_arcade_expert" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that the toolkit name starts with arcade
and official Arcade toolkits start with arcade
, we end up with arcade_arcade_expert
. If we were to change it to arcade_expert
, then the toolkit name would be Expert
instead of ArcadeExpert
.
Pip installing:
pip install arcade_arcade_expert
Calling an ArcadeExpert tool:
arcade_client.tools.execute("ArcadeExpert.SearchDocumentation", ...)
from arcade_arcade_expert.models import Links | ||
|
||
|
||
@tool(requires_secrets=["OPENAI_API_KEY"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we decide to have this in the prod worker, then we will need to add an OPENAI_API_KEY
secret for all users
@evantahler thoughts on getting this merged now as a 'community' toolkit? |
PR Description
This is a unique type of toolkit and is still in a nascent stage, but it has plenty of potential. This PR introduces the first tool for an Arcade Toolkit for Arcade (meta, I know).
This PR introduces
ArcadeExpert.SearchDocumentation
. Given a provided query, it leverages Arcade documentation'sllm.txt
to extract up to 5 relevant links and scrape their content. It uses an LLM to determine the most relevant links. Using similarity search instead of an LLM to determine the most relevant links would probably be the more idiomatic way to do this, but simplicity wins for now.Ideally, this toolkit would be added as an MCP server to an Arcade user's IDE.
Example queries