-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
139 lines (115 loc) · 5.88 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
from experta import *
class Result(Fact):
resultValue = Field(bool)
class LegalRefund(KnowledgeEngine):
"""
@DefFacts()
def startup(self):
yield Result(resultValue=False)
"""
@Rule(Fact(frage0="true"), salience=0)
def frage0true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="false"), salience=0)
def frage0false(self):
self.declare(Result(resultValue=False,
law="Sie handeln als Unternehmer*in. Daher können Sie nicht vom Rücktrittsrecht Gebrauch machen. Für alternative Möglichkeiten und eine detaillierte Prüfung Ihrer Rechtsfrage können Ihnen folgende Anwaltskanzleien weiterhelfen. (Rechtsgrundlagen: § 1 Konsumentenschutzgesetz, § 11 Fern- und Auswärtsgeschäfte-Gesetz)"))
@Rule(Fact(frage0="true"), Fact(frage1="true"), salience=1)
def frage1true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="false"), salience=1)
def frage1false(self):
self.declare(Result(resultValue=False,
law="Ihr*e Vertragspartner*in handelt nicht als Unternehmer*in. Daher können Sie nicht vom Rücktrittsrecht Gebrauch machen. Für alternative Rücktrittsmöglichkeiten und eine detaillierte Prüfung Ihrer Rechtsfrage können Ihnen folgende Anwaltskanzleien weiterhelfen. (Rechtsquellen: § 1 Konsumentenschutzgesetz, § 11 Fern- und Auswärtsgeschäfte-Gesetz)"))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), salience=2)
def frage2true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="false"), salience=2)
def frage2false(self):
self.declare(Result(resultValue=False,
law="Bei dem Kauf handelt es sich nicht um einen Fernabsatzvertrag, da der Kauf nicht über ein dafür organisiertes System und/oder ohne körperlichen Anwesenheit erfolgt ist. (Rechtsquellen: gem §3 Z 2 Fern- und Auswärtsgeschäfte-Gesetz)"))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), salience=3)
def frage3true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="false"), salience=3)
def frage3false(self):
self.declare(Result(resultValue=False,
law="Bei dem Kauf handelt es sich nicht um einen Fernabsatzvertrag, da der Kauf nicht über ein dafür organisiertes System und/oder ohne körperlichen Anwesenheit erfolgt ist. (Rechtsquellen: gem §3 Z 2 Fern- und Auswärtsgeschäfte-Gesetz)"))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="true"),
salience=4)
def frage4true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="false"),
salience=4)
def frage4false(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="true"),
Fact(frage5="true"),
salience=5)
def frage5true(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="false"),
Fact(frage5="false"),
salience=5)
def frage5false(self):
self.declare(Result(resultValue=True,
law=""))
self.halt()
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="true"),
Fact(frage5="true"), Fact(frage6="true"),
salience=6)
def frage6false(self):
self.declare(Result(resultValue=False, law="Haben Sie keine Rücktrittserklärung binnen 14 Tagen abgeschickt und wurden Sie rechtmäßig über das Rücktrittsrecht belehrt, so kann kein Rücktritt mehr erklärt werden (§11 FAGG). "))
self.halt()
# print("sie können zurücktreten")
@Rule(Fact(frage0="true"), Fact(frage1="true"), Fact(frage2="true"), Fact(frage3="true"), Fact(frage4="true"),
Fact(frage5="true"), Fact(frage6="false"),
salience=6)
def rücktritt(self):
self.declare(Result(resultValue=False,
law="Ihren Angaben nach haben Sie die Rücktrittsmöglichkeit nach § 11 FAGG. Da es sich hierbei aber um eine Vorabschätzung handelt, wird die Beratung von Rechtsanwält*innen empfohlen. Die folgenden Ansprechpersonen stehen Ihnen hierfür zur Verfühung:"))
self.halt()
"""
engine = LegalRefund()
engine.reset()
engine.declare(Fact(vertrag=False), Fact(entgeld=False), Fact(bla=True))
engine.run()
result = str(engine.facts.get(4).values())
if result.__contains__("True"):
print("rücktritt")
else:
print("nein")
"""
def get_response(answers):
decision = False
engine = LegalRefund()
engine.reset()
for i in range(len(answers)):
engine.declare(Fact(**{'frage' + str(i): answers[i]}))
engine.run()
result = list(engine.facts.get(engine.facts.last_index - 1).values())
return {"value": str(result[0]), "law": result[1]}
def formatRequest(request):
answers = request.split("&")
formattedAnswers = []
for x in answers:
answer = x.split("=")
formattedAnswers.append(answer[1])
return formattedAnswers