OverviewFilesCommitsIssuesDocsReleasesPeers

ollama_semantic_function_calling / mermaid / ollamatools-mermaid.mermaid

53 lines · mermaid ref:
classDiagram
    class OllamaAgent {
        -model: str
        -host: str
        -permission_prompts: bool
        -sudo_always_prompt: bool
        -client: Client
        -permission_manager: PermissionManager
        +__init__(model, host, permission_prompts, sudo_always_prompt)
        +chat(message, system_prompt, context) str
        +register_tools() None
        +process_function_calls(function_calls) List
    }
    
    class PermissionManager {
        -prompt_enabled: bool
        -sudo_always_prompt: bool
        +__init__(prompt_enabled, sudo_always_prompt)
        +request_permission(function_name, args, is_sudo) bool
        +detect_sudo(command) bool
    }
    
    class SystemTools {
        +execute_command(command, args, timeout) Dict
        +read_file(path, max_size) str
        +write_file(path, content, mode) bool
        +find_files(pattern, directory, recursive) List
    }
    
    class WebTools {
        +fetch_url(url, method, params, headers, data, timeout) Dict
        +get_weather(location, days, units) Dict
        +search_web(query, num_results) List
    }
    
    class DocTools {
        +generate_markdown(content, title, format_type) str
        +extract_context(query, documents, max_length) str
        +summarize_text(text, max_length) str
    }
    
    class Config {
        +permission_prompts: bool
        +sudo_always_prompt: bool
        +load() None
        +save() None
    }
    
    OllamaAgent -- PermissionManager : uses
    OllamaAgent -- SystemTools : registers
    OllamaAgent -- WebTools : registers
    OllamaAgent -- DocTools : registers
    OllamaAgent -- Config : configured by