Initial commit
This commit is contained in:
91
skills/tooluniverse/scripts/example_tool_search.py
Executable file
91
skills/tooluniverse/scripts/example_tool_search.py
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Example script demonstrating tool discovery in ToolUniverse.
|
||||
|
||||
This script shows how to search for tools using different methods:
|
||||
- Embedding-based search (Tool_Finder)
|
||||
- LLM-based search (Tool_Finder_LLM)
|
||||
- Keyword-based search (Tool_Finder_Keyword)
|
||||
"""
|
||||
|
||||
from tooluniverse import ToolUniverse
|
||||
|
||||
|
||||
def main():
|
||||
# Initialize ToolUniverse
|
||||
print("Initializing ToolUniverse...")
|
||||
tu = ToolUniverse()
|
||||
tu.load_tools()
|
||||
print(f"Loaded {len(tu.list_tools())} tools\n")
|
||||
|
||||
# Example 1: Keyword-based search (fastest)
|
||||
print("=" * 60)
|
||||
print("Example 1: Keyword Search for Disease-Target Tools")
|
||||
print("=" * 60)
|
||||
|
||||
tools = tu.run({
|
||||
"name": "Tool_Finder_Keyword",
|
||||
"arguments": {
|
||||
"description": "disease target associations",
|
||||
"limit": 5
|
||||
}
|
||||
})
|
||||
|
||||
print(f"Found {len(tools)} tools:")
|
||||
for idx, tool in enumerate(tools, 1):
|
||||
print(f"\n{idx}. {tool['name']}")
|
||||
print(f" Description: {tool['description']}")
|
||||
|
||||
# Example 2: LLM-based search (no GPU required)
|
||||
print("\n" + "=" * 60)
|
||||
print("Example 2: LLM Search for Protein Structure Tools")
|
||||
print("=" * 60)
|
||||
|
||||
tools = tu.run({
|
||||
"name": "Tool_Finder_LLM",
|
||||
"arguments": {
|
||||
"description": "Find tools for predicting protein structures from sequences",
|
||||
"limit": 5
|
||||
}
|
||||
})
|
||||
|
||||
print(f"Found {len(tools)} tools:")
|
||||
for idx, tool in enumerate(tools, 1):
|
||||
print(f"\n{idx}. {tool['name']}")
|
||||
print(f" Description: {tool['description']}")
|
||||
|
||||
# Example 3: Search by specific domain
|
||||
print("\n" + "=" * 60)
|
||||
print("Example 3: Search for Cheminformatics Tools")
|
||||
print("=" * 60)
|
||||
|
||||
tools = tu.run({
|
||||
"name": "Tool_Finder_Keyword",
|
||||
"arguments": {
|
||||
"description": "molecular docking SMILES compound",
|
||||
"limit": 5
|
||||
}
|
||||
})
|
||||
|
||||
print(f"Found {len(tools)} tools:")
|
||||
for idx, tool in enumerate(tools, 1):
|
||||
print(f"\n{idx}. {tool['name']}")
|
||||
print(f" Description: {tool['description']}")
|
||||
|
||||
# Example 4: Get detailed tool information
|
||||
print("\n" + "=" * 60)
|
||||
print("Example 4: Get Tool Details")
|
||||
print("=" * 60)
|
||||
|
||||
if tools:
|
||||
tool_name = tools[0]['name']
|
||||
print(f"Getting details for: {tool_name}")
|
||||
|
||||
tool_info = tu.get_tool_info(tool_name)
|
||||
print(f"\nTool: {tool_info['name']}")
|
||||
print(f"Description: {tool_info['description']}")
|
||||
print(f"Parameters: {tool_info.get('parameters', 'No parameters listed')}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user