diff --git a/app/routers/tools.py b/app/routers/tools.py new file mode 100644 index 0000000..dff8468 --- /dev/null +++ b/app/routers/tools.py @@ -0,0 +1,40 @@ +""" +app/routers/tools.py — Tool-Definitionen für Ollama/n8n/MCP (read-only) +Version: 0.1.0 • Stand: 2025-10-07 +""" + +from __future__ import annotations +from fastapi import APIRouter + +router = APIRouter() + +TOOLS = { + "tools": [ + {"type":"function","function":{ + "name":"mindnet_query", + "description":"Hybrid-Retrieval (semantik + edges).", + "parameters":{"type":"object","properties":{ + "top_k":{"type":"integer","default":10,"minimum":1,"maximum":50}, + "expand_depth":{"type":"integer","default":1,"minimum":0,"maximum":3}, + "edge_types":{"type":"array","items":{"type":"string"}, + "default":["references","belongs_to","prev","next"]}, + "query_vector":{"type":"array","items":{"type":"number"}, + "description":"384-dim Query-Vektor"}, + "filters":{"type":"object"} + },"required":["query_vector"]}}}, + + {"type":"function","function":{ + "name":"mindnet_subgraph", + "description":"Nachbarschaft (Edges) einer Note/ID.", + "parameters":{"type":"object","properties":{ + "note_id":{"type":"string"}, + "depth":{"type":"integer","default":1,"minimum":0,"maximum":3}, + "edge_types":{"type":"array","items":{"type":"string"}, + "default":["references","belongs_to","prev","next","backlink"]} + },"required":["note_id"]}}} + ] +} + +@router.get("/ollama") +def get_ollama_tools(): + return TOOLS