feat: add regex intents
This commit is contained in:
parent
f552440de7
commit
b41e4abd5d
@ -1,19 +1,8 @@
|
|||||||
{
|
{
|
||||||
"ask_name": [
|
"ask_name": [
|
||||||
"jak masz na imię",
|
"(?i)\\b(jak|co to jest|czym jest|kto jest|podaj|pokaż|wskaż|kim|którym|czyje|czyja|czyje)\\s+(jest|nazywa się|nazywasz|się nazywasz|twoje|masz na imię|cię wołać|cię zwać|cię nazywać|masz na imie|imię)\\b",
|
||||||
"jak się nazywasz",
|
"(?i)\\b(kim|czym)\\s+(jesteś|jestes|jest)\\b",
|
||||||
"twoje imię",
|
"(?i)\\b(cześć|witaj|witam|hej|siema|helo|hello)\\b",
|
||||||
"jak mogę cię wołać",
|
"(?i)\\b(proszę|powiedz|opowiedz|opisz)\\s+(mi|nam)\\s+(o|więcej|coś)\\s+(o|na temat)\\s*(twoim|ciebie|twoje)\\s*(imieniu|imieniem|imię|nazwisko)\\b"
|
||||||
"jak do ciebie mówić",
|
|
||||||
"jak cię zwać",
|
|
||||||
"jak cię nazywać",
|
|
||||||
"jak masz na imie",
|
|
||||||
"kim jesteś",
|
|
||||||
"czym jesteś",
|
|
||||||
"hej",
|
|
||||||
"siema",
|
|
||||||
"witaj",
|
|
||||||
"witam",
|
|
||||||
"cześć"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -15,5 +15,10 @@
|
|||||||
"Nie rozumiem. Możesz to powtórzyć?",
|
"Nie rozumiem. Możesz to powtórzyć?",
|
||||||
"Nie jestem pewien, co masz na myśli. Możesz to wyjaśnić?",
|
"Nie jestem pewien, co masz na myśli. Możesz to wyjaśnić?",
|
||||||
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?"
|
"Nie jestem pewien, co masz na myśli. Czy możesz to wyjaśnić?"
|
||||||
]
|
],
|
||||||
|
"repeat": [
|
||||||
|
"Wygląda na to, że krążymy wokół tego samego tematu. Czy możemy przejść do czegoś innego?",
|
||||||
|
"Znowu to samo pytanie, może zmienimy temat?",
|
||||||
|
"Ponownie pytasz o to samo, czy jest coś innego, o co chciałbyś zapytać?"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
0
chatbot/modules/context.py
Normal file
0
chatbot/modules/context.py
Normal file
@ -1,21 +1,22 @@
|
|||||||
import json
|
import json
|
||||||
|
import re
|
||||||
from typing import Dict, List, TypedDict
|
from typing import Dict, List, TypedDict
|
||||||
from .config import Config
|
from .config import Config
|
||||||
|
|
||||||
|
|
||||||
class Intents(TypedDict):
|
class Intents(TypedDict):
|
||||||
name_query: List[str]
|
ask_name: List[str]
|
||||||
|
|
||||||
|
|
||||||
class NaturalLanguageProcessor:
|
class NaturalLanguageProcessor:
|
||||||
def __init__(self, config: Config):
|
def __init__(self, config: Config):
|
||||||
with config.data_path.open('r', encoding='utf-8') as file:
|
with config.data_path.open('r', encoding='utf-8') as file:
|
||||||
self.intents: Intents = json.load(file)
|
self.intents: Dict[str, List[str]] = json.load(file)
|
||||||
|
|
||||||
def analyze(self, input_text: str) -> str:
|
def analyze(self, input_text: str) -> str:
|
||||||
lower_text = input_text.lower()
|
input_text = input_text.lower()
|
||||||
for intent, phrases in self.intents.items():
|
for intent, patterns in self.intents.items():
|
||||||
if any(phrase in lower_text for phrase in phrases):
|
for pattern in patterns:
|
||||||
return intent
|
if re.search(pattern, input_text):
|
||||||
|
return intent
|
||||||
return "unknown"
|
return "unknown"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user