| | """ |
| | Simple Task Example for SPARKNET |
| | Demonstrates basic agent and tool usage |
| | """ |
| |
|
| | import asyncio |
| | import sys |
| | from pathlib import Path |
| |
|
| | |
| | sys.path.insert(0, str(Path(__file__).parent.parent)) |
| |
|
| | from src.llm.ollama_client import OllamaClient |
| | from src.agents.executor_agent import ExecutorAgent |
| | from src.agents.base_agent import Task |
| | from src.tools import register_default_tools |
| | from src.utils.logging import setup_logging |
| | from src.utils.gpu_manager import get_gpu_manager |
| | from loguru import logger |
| |
|
| |
|
| | async def main(): |
| | """Run simple task example.""" |
| |
|
| | |
| | setup_logging(log_level="INFO") |
| |
|
| | logger.info("="*60) |
| | logger.info("SPARKNET Simple Task Example") |
| | logger.info("="*60) |
| |
|
| | |
| | gpu_manager = get_gpu_manager() |
| | logger.info("\n" + gpu_manager.monitor()) |
| |
|
| | |
| | logger.info("\nInitializing Ollama client...") |
| | ollama_client = OllamaClient( |
| | host="localhost", |
| | port=11434, |
| | default_model="llama3.2:latest", |
| | ) |
| |
|
| | |
| | if not ollama_client.is_available(): |
| | logger.error("Ollama server is not available! Make sure it's running with 'ollama serve'") |
| | return |
| |
|
| | |
| | models = ollama_client.list_models() |
| | logger.info(f"\nAvailable models: {len(models)}") |
| | for model in models: |
| | logger.info(f" - {model['name']}") |
| |
|
| | |
| | logger.info("\nRegistering tools...") |
| | tool_registry = register_default_tools() |
| | logger.info(f"Registered {len(tool_registry.list_tools())} tools: {tool_registry.list_tools()}") |
| |
|
| | |
| | logger.info("\nCreating ExecutorAgent...") |
| | agent = ExecutorAgent( |
| | llm_client=ollama_client, |
| | model="llama3.2:latest", |
| | temperature=0.5, |
| | ) |
| | agent.set_tool_registry(tool_registry) |
| |
|
| | |
| | tasks = [ |
| | Task( |
| | id="task_1", |
| | description="Use the gpu_monitor tool to check the status of all GPUs", |
| | ), |
| | Task( |
| | id="task_2", |
| | description="Use the directory_list tool to list all items in the current directory", |
| | ), |
| | Task( |
| | id="task_3", |
| | description="Use the python_executor tool to calculate the sum of numbers from 1 to 100", |
| | ), |
| | ] |
| |
|
| | |
| | logger.info("\n" + "="*60) |
| | logger.info("Executing Tasks") |
| | logger.info("="*60) |
| |
|
| | for task in tasks: |
| | logger.info(f"\nTask {task.id}: {task.description}") |
| | logger.info("-" * 60) |
| |
|
| | result = await agent.process_task(task) |
| |
|
| | logger.info(f"Status: {result.status}") |
| | if result.result: |
| | logger.info(f"Result: {result.result}") |
| | if result.error: |
| | logger.error(f"Error: {result.error}") |
| |
|
| | logger.info("-" * 60) |
| |
|
| | |
| | logger.info("\n" + "="*60) |
| | logger.info("Agent Statistics") |
| | logger.info("="*60) |
| | stats = agent.get_stats() |
| | for key, value in stats.items(): |
| | logger.info(f"{key}: {value}") |
| |
|
| | logger.info("\n" + "="*60) |
| | logger.info("Example completed!") |
| | logger.info("="*60) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | asyncio.run(main()) |
| |
|