feat: add regex intents
This commit is contained in:
parent
f552440de7
commit
b41e4abd5d
@ -1,19 +1,8 @@
|
||||
{
|
||||
"ask_name": [
|
||||
"jak masz na imię",
|
||||
"jak się nazywasz",
|
||||
"twoje imię",
|
||||
"jak mogę cię wołać",
|
||||
"jak do ciebie mówić",
|
||||
"jak cię zwać",
|
||||
"jak cię nazywać",
|
||||
"jak masz na imie",
|
||||
"kim jesteś",
|
||||
"czym jesteś",
|
||||
"hej",
|
||||
"siema",
|
||||
"witaj",
|
||||
"witam",
|
||||
"cześć"
|
||||
"(?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",
|
||||
"(?i)\\b(kim|czym)\\s+(jesteś|jestes|jest)\\b",
|
||||
"(?i)\\b(cześć|witaj|witam|hej|siema|helo|hello)\\b",
|
||||
"(?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"
|
||||
]
|
||||
}
|
@ -15,5 +15,10 @@
|
||||
"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. 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 re
|
||||
from typing import Dict, List, TypedDict
|
||||
from .config import Config
|
||||
|
||||
|
||||
class Intents(TypedDict):
|
||||
name_query: List[str]
|
||||
ask_name: List[str]
|
||||
|
||||
|
||||
class NaturalLanguageProcessor:
|
||||
def __init__(self, config: Config):
|
||||
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:
|
||||
lower_text = input_text.lower()
|
||||
for intent, phrases in self.intents.items():
|
||||
if any(phrase in lower_text for phrase in phrases):
|
||||
input_text = input_text.lower()
|
||||
for intent, patterns in self.intents.items():
|
||||
for pattern in patterns:
|
||||
if re.search(pattern, input_text):
|
||||
return intent
|
||||
return "unknown"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user