From c2ecc15d89dd0a9087dc272c21d61b5fba40a3cd Mon Sep 17 00:00:00 2001 From: Lars Date: Tue, 7 Oct 2025 13:30:12 +0200 Subject: [PATCH] app/routers/tools.py aktualisiert --- app/routers/tools.py | 81 +++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 23 deletions(-) diff --git a/app/routers/tools.py b/app/routers/tools.py index dff8468..9aca83d 100644 --- a/app/routers/tools.py +++ b/app/routers/tools.py @@ -1,6 +1,20 @@ """ app/routers/tools.py — Tool-Definitionen für Ollama/n8n/MCP (read-only) -Version: 0.1.0 • Stand: 2025-10-07 + +Zweck: + Liefert Funktions-Schemas (OpenAI-/Ollama-kompatibles Tool-JSON) für: + - mindnet_query -> POST /query + - mindnet_subgraph-> GET /graph/{note_id} +Kompatibilität: + Python 3.12+, FastAPI 0.110+ +Version: + 0.1.0 (Erstanlage) +Stand: + 2025-10-07 +Nutzung: + app.include_router(tools.router, prefix="/tools", tags=["tools"]) +Änderungsverlauf: + 0.1.0 (2025-10-07) – Erstanlage. """ from __future__ import annotations @@ -10,28 +24,49 @@ 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"]}}} + { + "type": "function", + "function": { + "name": "mindnet_query", + "description": "Hybrid-Retrieval über mindnet (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; (Text→Embedding kann später serverseitig erfolgen)." + }, + "filters": {"type":"object","description":"payload-Filter (tags etc.)"} + }, + "required": ["query_vector"] + } + } + }, + { + "type": "function", + "function": { + "name": "mindnet_subgraph", + "description": "Gibt die Nachbarschaft (Edges) einer Note/Seed-ID zurück.", + "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"] + } + } + } ] }