Just-Search / test_thinking.py
ProCreations's picture
Upload 2 files
14ffd10 verified
#!/usr/bin/env python3
"""
Test script to verify thinking extraction works correctly
"""
import re
from typing import Tuple
def extract_thinking_and_response(text: str) -> Tuple[str, str]:
"""Extract thinking process and clean response from AI output"""
thinking = ""
response = text
# Extract thinking content
thinking_match = re.search(r'<think>(.*?)</think>', text, re.DOTALL)
if thinking_match:
thinking = thinking_match.group(1).strip()
response = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)
# Clean up the response
response = re.sub(r'^(Assistant:|AI:|Response:|Answer:)\s*', '', response.strip())
response = re.sub(r'\[INST\].*?\[\/INST\]', '', response)
response = re.sub(r'<\|.*?\|>', '', response)
return thinking.strip(), response.strip()
# Test cases
test_cases = [
# Basic thinking extraction
"<think>I need to analyze this query and generate search terms.</think>Here are the search queries:\n1. AI developments 2024\n2. artificial intelligence news",
# No thinking
"Here are the search queries:\n1. AI developments 2024\n2. artificial intelligence news",
# Complex thinking
"<think>The user is asking about quantum computing breakthroughs. I should focus on recent developments, key research areas, and practical applications. Let me think about the best search terms...</think>Based on your question, here are optimized search queries for quantum computing breakthroughs.",
# Thinking with newlines
"<think>\nThis is a complex question about climate change.\nI need to consider multiple aspects:\n1. Ocean currents\n2. Temperature changes\n3. Recent research\n</think>Climate change affects ocean currents in several ways..."
]
print("Testing thinking extraction...")
for i, test in enumerate(test_cases, 1):
thinking, response = extract_thinking_and_response(test)
print(f"\nTest {i}:")
print(f"Original: {test[:100]}...")
print(f"Thinking: {thinking[:100]}..." if thinking else "Thinking: None")
print(f"Response: {response[:100]}...")
print("-" * 50)
print("✅ Thinking extraction test completed!")