Update project and configurations

This commit is contained in:
Zou-Seay
2026-06-11 16:28:00 +08:00
parent 12d3922091
commit a29a91867d
237 changed files with 164880 additions and 90 deletions

View File

@@ -0,0 +1,29 @@
from __future__ import annotations
import json
from pathlib import Path
from app.schemas.intent import IntentDefinition
class IntentRegistry:
def __init__(self, intents: list[IntentDefinition]) -> None:
self._intents = {intent.intent_id: intent for intent in intents}
@classmethod
def from_json(cls, file_path: str) -> "IntentRegistry":
data = json.loads(Path(file_path).read_text(encoding="utf-8"))
intents = [IntentDefinition.model_validate(item) for item in data]
return cls(intents)
def get(self, intent_id: str) -> IntentDefinition:
return self._intents[intent_id]
def list(self) -> list[IntentDefinition]:
return list(self._intents.values())
def match(self, text: str) -> IntentDefinition | None:
for intent in self._intents.values():
if any(keyword in text for keyword in intent.keywords):
return intent
return None