Update app.py
Browse files
app.py
CHANGED
@@ -102,6 +102,20 @@ def setup_multiple_chains():
|
|
102 |
cl.user_session.set("api_chain", api_chain)
|
103 |
|
104 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
# --wrapper function around the @cl.on_message decorator; chain trigger(s)
|
106 |
@cl.on_message
|
107 |
async def handle_message(message: cl.Message):
|
@@ -109,18 +123,20 @@ async def handle_message(message: cl.Message):
|
|
109 |
llm_chain = cl.user_session.get("llm_chain")
|
110 |
api_chain = cl.user_session.get("api_chain")
|
111 |
|
112 |
-
|
113 |
-
|
114 |
-
|
|
|
|
|
|
|
115 |
response = await api_chain.acall(user_message,
|
116 |
callbacks=[cl.AsyncLangchainCallbackHandler()])
|
117 |
else:
|
118 |
-
# --defaults to llm_chain4general queries
|
119 |
response = await llm_chain.acall(user_message,
|
120 |
callbacks=[cl.AsyncLangchainCallbackHandler()])
|
|
|
121 |
response_key = "output" if "output" in response else "text"
|
122 |
await cl.Message(response.get(response_key, "")).send()
|
123 |
return message.content
|
124 |
|
125 |
|
126 |
-
|
|
|
102 |
cl.user_session.set("api_chain", api_chain)
|
103 |
|
104 |
|
105 |
+
# --regex for alphanum. "LLLLLLxxxxxx", i.e. booking_id |==> 308.9 trillion unique possibilities
|
106 |
+
BOOKING_ID = r'\b[A-Z]{6}\d{6}\b'
|
107 |
+
|
108 |
+
# TODO: add all booking-related keywords from JSON data
|
109 |
+
BOOKING_KEYWORDS = [
|
110 |
+
"booking", "bestilling", "bestillingsnummer",
|
111 |
+
"booking_id", "booking ID","booking nummer",
|
112 |
+
"navn", "etternavn", "kunde", "customer",
|
113 |
+
"utestรฅende belรธp", "faktura", "cost", "price",
|
114 |
+
"date", "dato", "checkin", "checkout",
|
115 |
+
"address", "adresse", "user id", "bruker_id", "bruker id",
|
116 |
+
]
|
117 |
+
|
118 |
+
|
119 |
# --wrapper function around the @cl.on_message decorator; chain trigger(s)
|
120 |
@cl.on_message
|
121 |
async def handle_message(message: cl.Message):
|
|
|
123 |
llm_chain = cl.user_session.get("llm_chain")
|
124 |
api_chain = cl.user_session.get("api_chain")
|
125 |
|
126 |
+
is_booking_query = any(
|
127 |
+
re.search(keyword, user_message, re.IGNORECASE)
|
128 |
+
for keyword in BOOKING_KEYWORDS + [BOOKING_ID]
|
129 |
+
)
|
130 |
+
|
131 |
+
if is_booking_query:
|
132 |
response = await api_chain.acall(user_message,
|
133 |
callbacks=[cl.AsyncLangchainCallbackHandler()])
|
134 |
else:
|
|
|
135 |
response = await llm_chain.acall(user_message,
|
136 |
callbacks=[cl.AsyncLangchainCallbackHandler()])
|
137 |
+
|
138 |
response_key = "output" if "output" in response else "text"
|
139 |
await cl.Message(response.get(response_key, "")).send()
|
140 |
return message.content
|
141 |
|
142 |
|
|