camparchimedes commited on
Commit
f3ec65b
·
verified ·
1 Parent(s): 2c8c8a7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -7
app.py CHANGED
@@ -21,6 +21,45 @@ from api_docs_mck import api_docs_str
21
 
22
  OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24
  daysoff_assistant_template = """
25
  You are a customer support assistant (’kundeservice AI assistent’) for Daysoff.no
26
  By default, you respond in Norwegian language, using a warm, direct and professional tone.
@@ -51,12 +90,12 @@ api_url_prompt = PromptTemplate(input_variables=['api_docs', 'question'],
51
 
52
  api_response_template = """
53
  With the API Documentation for Daysoff's official API: {api_docs} in mind,
54
- and the specific user question: {question} in mind,
55
  and given this API URL: {api_url} for querying,
56
  here is the response from Daysoff's API: {api_response}.
57
- Please provide an summary (in Norwegian) that directly addresses the user's question,
58
- and focusing on delivering the answer with clarity and conciseness,
59
- as if a human customer service agent is providing this information.
60
  Summary:
61
  """
62
 
@@ -102,7 +141,7 @@ def setup_multiple_chains():
102
 
103
  @cl.on_message
104
  async def handle_message(message: cl.Message):
105
- user_message = message.content
106
  llm_chain = cl.user_session.get("llm_chain")
107
  api_chain = cl.user_session.get("api_chain")
108
 
@@ -121,8 +160,7 @@ async def handle_message(message: cl.Message):
121
  },
122
  callbacks=[cl.AsyncLangchainCallbackHandler()])
123
 
124
- elif any(keyword in user_message for keyword in ["firmahytteordning", "personvernspolicy",
125
- "faq_ansatte", "faq_utleiere"]):
126
 
127
  response = await api_chain.acall(user_message,
128
  callbacks=[cl.AsyncLangchainCallbackHandler()])
 
21
 
22
  OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")
23
 
24
+ FAQ_ANSATTE = [
25
+ "Hvordan registrerer jeg meg som bruker?",
26
+ "Når får jeg leieinstruks for min bestilling? Informasjon om nøkler etc.?",
27
+ "Det står barneseng og barnestol under fasiliteter, må dette forhåndsbestilles?",
28
+ "Kan jeg ta med hund eller katt?",
29
+ "Jeg har lagt inn en bestilling hva skjer videre?",
30
+ "Jeg har bestilt firmahytte, men kan ikke reise. Kan jeg endre navn på bestillingen til min kollega eller familiemedlem som vil reise i stedet for meg?",
31
+ "Kan jeg avbestille min reservasjon?",
32
+ "Jeg har bestilt utvask. Hva må jeg gjøre i tillegg til dette?",
33
+ "Jeg er medlem og eier en hytte! Kan jeg bli utleier i DaysOff?",
34
+ "Bestille opphold?"
35
+ ]
36
+
37
+ FAQ_UTLEIERE = [
38
+ "Hva er betingelser for utleie?",
39
+ "Hvor lang tid har jeg på å bekrefte en bestilling?",
40
+ "Hvilke kanselleringsregler gjelder?",
41
+ "Hvem er kundene deres?",
42
+ "Kan jeg legge inn rabatterte priser for å lage egne kampanjer?",
43
+ "Når mottar jeg betaling for leie?",
44
+ "Jeg fikk en e-post om ny bestilling, men jeg finner den ikke i systemet?",
45
+ "Hvordan registrerer jeg opptatte perioder i kalenderen?",
46
+ "Jeg leier ut i andre kanaler. Hvordan kan jeg synkronisere kalenderne?"
47
+ ]
48
+
49
+ PERSONVERNSPOLICY_QUESTIONS = [
50
+ "Hvilke personlige opplysninger samler vi inn?",
51
+ "Kan dere motta personlig informasjon fra tredjepart?",
52
+ "Hvordan bruker vi dine personlige opplysninger?",
53
+ "Med hvem deler vi dine personlige opplysninger?",
54
+ "Adferdsmessig annonsering?",
55
+ "Hvordan reagerer vi på « Spor ikke » forespørsler?",
56
+ "Hva er dine rettigheter?",
57
+ "Hvordan beskytter vi dataene dine?",
58
+ "Hvilke data brudd prosedyrer har vi på plass?",
59
+ "Hvem i vårt team har tilgang til dine data?",
60
+ "Endringer i denne policyen"
61
+ ]
62
+
63
  daysoff_assistant_template = """
64
  You are a customer support assistant (’kundeservice AI assistent’) for Daysoff.no
65
  By default, you respond in Norwegian language, using a warm, direct and professional tone.
 
90
 
91
  api_response_template = """
92
  With the API Documentation for Daysoff's official API: {api_docs} in mind,
93
+ and the specific user question: {question},
94
  and given this API URL: {api_url} for querying,
95
  here is the response from Daysoff's API: {api_response}.
96
+ If the response includes a booking ID (bestillingskode), present this information directly to the user without summarizing it.
97
+ For all other responses, please provide a clear and concise summary (in Norwegian) that directly addresses the user's question,
98
+ delivered in a manner that reflects the professionalism and warmth of a human customer service agent.
99
  Summary:
100
  """
101
 
 
141
 
142
  @cl.on_message
143
  async def handle_message(message: cl.Message):
144
+ user_message = message.content #.lower()
145
  llm_chain = cl.user_session.get("llm_chain")
146
  api_chain = cl.user_session.get("api_chain")
147
 
 
160
  },
161
  callbacks=[cl.AsyncLangchainCallbackHandler()])
162
 
163
+ elif any(keyword in user_message for keyword in (FAQ_ANSATTE + PERSONVERNSPOLICY_QUESTIONS + FAQ_UTLEIERE)):
 
164
 
165
  response = await api_chain.acall(user_message,
166
  callbacks=[cl.AsyncLangchainCallbackHandler()])