Dinesh Yeduguru
|
c8be0bf1c9
|
Tools API with brave and MCP providers (#639)
This PR adds a new Tools api and adds two tool runtime providers: brave
and MCP.
Test plan:
```
curl -X POST 'http://localhost:5000/alpha/toolgroups/register' \
-H 'Content-Type: application/json' \
-d '{ "tool_group_id": "simple_tool",
"tool_group": {
"type": "model_context_protocol",
"endpoint": {"uri": "http://localhost:56000/sse"}
},
"provider_id": "model-context-protocol"
}'
curl -X POST 'http://localhost:5000/alpha/toolgroups/register' \
-H 'Content-Type: application/json' \
-d '{
"tool_group_id": "search", "provider_id": "brave-search",
"tool_group": {
"type": "user_defined",
"tools": [
{
"name": "brave_search",
"description": "A web search tool",
"parameters": [
{
"name": "query",
"parameter_type": "string",
"description": "The query to search"
}
],
"metadata": {},
"tool_prompt_format": "json"
}
]
}
}'
curl -X GET http://localhost:5000/alpha/tools/list | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 662 100 662 0 0 333k 0 --:--:-- --:--:-- --:--:-- 646k
[
{
"identifier": "brave_search",
"provider_resource_id": "brave_search",
"provider_id": "brave-search",
"type": "tool",
"tool_group": "search",
"description": "A web search tool",
"parameters": [
{
"name": "query",
"parameter_type": "string",
"description": "The query to search"
}
],
"metadata": {},
"tool_prompt_format": "json"
},
{
"identifier": "fetch",
"provider_resource_id": "fetch",
"provider_id": "model-context-protocol",
"type": "tool",
"tool_group": "simple_tool",
"description": "Fetches a website and returns its content",
"parameters": [
{
"name": "url",
"parameter_type": "string",
"description": "URL to fetch"
}
],
"metadata": {
"endpoint": "http://localhost:56000/sse"
},
"tool_prompt_format": "json"
}
]
curl -X POST 'http://localhost:5000/alpha/tool-runtime/invoke' \
-H 'Content-Type: application/json' \
-d '{
"tool_name": "fetch",
"args": {
"url": "http://google.com/"
}
}'
curl -X POST 'http://localhost:5000/alpha/tool-runtime/invoke' \
-H 'Content-Type: application/json' -H 'X-LlamaStack-ProviderData: {"api_key": "<KEY>"}' \
-d '{
"tool_name": "brave_search",
"args": {
"query": "who is meta ceo"
}
}'
```
|
2024-12-19 21:25:17 -08:00 |
|