Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -376,63 +376,6 @@ class FollowupQueryModel(BaseModel):
|
|
| 376 |
|
| 377 |
import re
|
| 378 |
|
| 379 |
-
def parse_followup_response(input_text):
|
| 380 |
-
# Define patterns for response and interact
|
| 381 |
-
response_pattern = re.compile(r'<response>(.*?)<\/response>', re.DOTALL)
|
| 382 |
-
interact_pattern = re.compile(r'<interact>(.*?)<\/interact>', re.DOTALL)
|
| 383 |
-
|
| 384 |
-
# Find all matches for response and interact
|
| 385 |
-
response_matches = response_pattern.finditer(input_text)
|
| 386 |
-
interact_matches = interact_pattern.finditer(input_text)
|
| 387 |
-
|
| 388 |
-
# Initialize variables to keep track of the position
|
| 389 |
-
last_end = 0
|
| 390 |
-
combined_response = ""
|
| 391 |
-
parsed_interacts = []
|
| 392 |
-
|
| 393 |
-
# Combine responses and capture everything in between
|
| 394 |
-
for response_match in response_matches:
|
| 395 |
-
# Capture text before the current response tag
|
| 396 |
-
combined_response += input_text[last_end:response_match.start()].strip() + "\n"
|
| 397 |
-
# Add the response content
|
| 398 |
-
combined_response += response_match.group(1).strip() + "\n"
|
| 399 |
-
# Update the last end position
|
| 400 |
-
last_end = response_match.end()
|
| 401 |
-
|
| 402 |
-
# Check for interacts and parse them
|
| 403 |
-
for interact_match in interact_matches:
|
| 404 |
-
# Capture text before the current interact tag
|
| 405 |
-
combined_response += input_text[last_end:interact_match.start()].strip() + "\n"
|
| 406 |
-
# Process the interact block
|
| 407 |
-
interact_text = interact_match.group(1).strip()
|
| 408 |
-
if interact_text:
|
| 409 |
-
# Split by "text:" to separate each question block
|
| 410 |
-
question_blocks = interact_text.split("- text:")
|
| 411 |
-
|
| 412 |
-
# Loop through each block and extract the question and its options
|
| 413 |
-
for block in question_blocks[1:]:
|
| 414 |
-
# Extract the question using regex (up to the "options:" part)
|
| 415 |
-
question_match = re.search(r'^(.*?)\s*options:', block, re.DOTALL)
|
| 416 |
-
if question_match:
|
| 417 |
-
question = question_match.group(1).strip().strip('"')
|
| 418 |
-
|
| 419 |
-
# Extract the options using regex
|
| 420 |
-
options_match = re.search(r'options:\s*(.*?)$', block, re.DOTALL)
|
| 421 |
-
if options_match:
|
| 422 |
-
options = [option.strip().strip('"') for option in options_match.group(1).split('-') if option.strip()]
|
| 423 |
-
|
| 424 |
-
# Add the parsed question and options to the list
|
| 425 |
-
parsed_interacts.append({'question': question, 'options': options})
|
| 426 |
-
# Update the last end position
|
| 427 |
-
last_end = interact_match.end()
|
| 428 |
-
|
| 429 |
-
# Capture any remaining text after the last tag
|
| 430 |
-
combined_response += input_text[last_end:].strip()
|
| 431 |
-
|
| 432 |
-
return combined_response.strip(), parsed_interacts
|
| 433 |
-
|
| 434 |
-
import re
|
| 435 |
-
|
| 436 |
def parse_followup_and_tools(input_text):
|
| 437 |
# Remove extra brackets and excess quotes
|
| 438 |
cleaned_text = re.sub(r'\[|\]|"+', ' ', input_text)
|
|
@@ -498,7 +441,7 @@ async def followup_agent(query: FollowupQueryModel, background_tasks: Background
|
|
| 498 |
yield content
|
| 499 |
|
| 500 |
logger.info(f"LLM RAW response for query: {query.query}: {full_response}")
|
| 501 |
-
response_content, interact =
|
| 502 |
|
| 503 |
result = {
|
| 504 |
"response": response_content,
|
|
@@ -541,7 +484,7 @@ async def followup_agent(query: FollowupQueryModel, background_tasks: Background
|
|
| 541 |
yield content
|
| 542 |
|
| 543 |
logger.info(f"LLM RAW response for query: {query.query}: {full_response}")
|
| 544 |
-
response_content, interact =
|
| 545 |
|
| 546 |
result = {
|
| 547 |
"clarification": interact
|
|
|
|
| 376 |
|
| 377 |
import re
|
| 378 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 379 |
def parse_followup_and_tools(input_text):
|
| 380 |
# Remove extra brackets and excess quotes
|
| 381 |
cleaned_text = re.sub(r'\[|\]|"+', ' ', input_text)
|
|
|
|
| 441 |
yield content
|
| 442 |
|
| 443 |
logger.info(f"LLM RAW response for query: {query.query}: {full_response}")
|
| 444 |
+
response_content, interact,tools = parse_followup_and_tools(full_response)
|
| 445 |
|
| 446 |
result = {
|
| 447 |
"response": response_content,
|
|
|
|
| 484 |
yield content
|
| 485 |
|
| 486 |
logger.info(f"LLM RAW response for query: {query.query}: {full_response}")
|
| 487 |
+
response_content, interact,tools = parse_followup_and_tools(full_response)
|
| 488 |
|
| 489 |
result = {
|
| 490 |
"clarification": interact
|