| import re |
|
|
|
|
| class IntentParser: |
|
|
| def parse(self, message: str): |
|
|
| text = message.lower() |
|
|
| intent = "unknown" |
| count = 1 |
| theme = text |
|
|
| |
| |
| |
|
|
| if "explique" in text or "expliquer" in text: |
|
|
| intent = "explain" |
|
|
| theme = text.replace("explique", "") |
| theme = theme.replace("expliquer", "") |
| theme = theme.strip() |
|
|
| return { |
| "intent": intent, |
| "count": 1, |
| "theme": theme |
| } |
|
|
| |
| |
| |
|
|
| if "video" in text or "vidéo" in text: |
|
|
| intent = "create_video" |
|
|
| numbers = re.findall(r"\d+", text) |
|
|
| if numbers: |
| count = int(numbers[0]) |
|
|
| elif "plusieurs" in text: |
| count = 5 |
|
|
| theme = re.sub( |
| r"cree|crée|video|vidéo|\d+|sur|plusieurs", |
| "", |
| text |
| ) |
|
|
| theme = theme.strip() |
|
|
| return { |
| "intent": intent, |
| "count": count, |
| "theme": theme |
| } |
|
|
| return { |
| "intent": intent, |
| "count": count, |
| "theme": theme |
| } |