Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from inference.response_clean import ( | |
| prepare_display_reply, | |
| reply_ends_complete_sentence, | |
| strip_reasoning_output, | |
| strip_thinking_blocks, | |
| ) | |
| _RT_OPEN = "<" + "redacted_thinking" + ">" | |
| _RT_CLOSE = "</" + "redacted_thinking" + ">" | |
| _THINK_OPEN = "<" + "think" + ">" | |
| _THINK_CLOSE = "</" + "think" + ">" | |
| def test_strips_redacted_thinking_block(): | |
| raw = f"{_RT_OPEN}\nplanning...\n{_RT_CLOSE}\n\nThe capital of France is Paris." | |
| assert strip_reasoning_output(raw) == "The capital of France is Paris." | |
| def test_strips_unclosed_redacted_thinking_block(): | |
| raw = f"{_RT_OPEN}\nplanning without a final answer that never closes" | |
| assert strip_reasoning_output(raw) == "" | |
| assert strip_thinking_blocks(raw) == "" | |
| def test_strips_think_block(): | |
| raw = f"{_THINK_OPEN}\nplanning...\n{_THINK_CLOSE}\n\nAgents use memory [1]." | |
| assert strip_reasoning_output(raw) == "Agents use memory [1]." | |
| def test_strip_thinking_blocks_preserves_json_payload(): | |
| raw = f"{_THINK_OPEN}\nplanning...\n{_THINK_CLOSE}\n\n{{\"title\": \"T\"}}" | |
| assert strip_thinking_blocks(raw) == '{"title": "T"}' | |
| def test_strips_malformed_think_prefix_and_extracts_summary(): | |
| raw = """think> We need to summarize the document. First, identify sources. | |
| Let's draft: | |
| Summary: This review covers AI agent applications, evaluation, and future work [1].""" | |
| out = strip_reasoning_output(raw) | |
| assert out.startswith("This review covers") | |
| assert "We need to summarize" not in out | |
| def test_preserves_normal_answer(): | |
| text = "AI agents combine perception, planning, and action [1]." | |
| assert strip_reasoning_output(text) == text | |
| def test_extracts_final_answer_from_plain_chain_of_thought(): | |
| raw = """First, I need to explain finetuning in plain language. I should keep it concise. | |
| Let me draft: | |
| 1. Finetuning adjusts a model for a task. | |
| 2. Best practices include good data. | |
| Final answer: | |
| Finetuning small model adjusts a model to improve its performance on a specific task. | |
| For example, fine-tuning a language model can enhance its ability to understand complex queries. | |
| Best practices include using diverse and high-quality data. | |
| That's about 3 sentences. I think it covers it. | |
| Let me write: | |
| Finetuning small model involves training the model with additional data to specialize in a task. | |
| For instance, fine-tuning a computer vision model can improve its object""" | |
| out = strip_reasoning_output(raw) | |
| assert out.startswith("Finetuning small model adjusts") | |
| assert "First, I need" not in out | |
| assert "Let me draft" not in out | |
| assert "That's about 3 sentences" not in out | |
| def test_prepare_display_reply_collapses_plain_chain_of_thought(): | |
| raw = """First, I need to plan the answer. | |
| Final answer: | |
| Finetuning teaches a small model to specialize on your task using extra training data.""" | |
| out = prepare_display_reply(raw) | |
| assert out.startswith(_THINK_OPEN) | |
| assert _THINK_CLOSE in out | |
| assert "Finetuning teaches a small model" in out | |
| assert "First, I need to plan" in out | |
| def test_extracts_labeled_sentence_draft(): | |
| raw = """First, the user wants me to explain finetuning. | |
| Let me outline my response: | |
| 1. Start with a simple definition. | |
| Now, write the response: | |
| Sentence 1: Finetuning is training a small model to improve its performance on a specific task, like recognizing objects in photos. | |
| Sentence 2: For example, a model might be fine-tuned on a dataset of medical scans to detect tumors more accurately. | |
| That's two sentences. I can add one more if needed. | |
| Sentence 3: This process enhances efficiency and reduces overfitting. | |
| So, three""" | |
| out = strip_reasoning_output(raw) | |
| assert "Finetuning is training a small model" in out | |
| assert "medical scans" in out | |
| assert "enhances efficiency" in out | |
| assert "First, the user" not in out | |
| assert "Sentence 1:" not in out | |
| def test_reply_ends_complete_sentence(): | |
| assert reply_ends_complete_sentence("Finetuning teaches a small model to specialize.") | |
| assert not reply_ends_complete_sentence("The lesson aims to teach how to fine-tune small") | |
| def test_prepare_display_reply_wraps_malformed_think_prefix(): | |
| raw = "think> We need to plan the answer.\n\nThe answer is 42." | |
| out = prepare_display_reply(raw) | |
| assert out.startswith(_THINK_OPEN) | |
| assert _THINK_CLOSE in out | |
| assert "We need to plan the answer." in out | |