CoolFace
Modelpublic

PrimeIntellect/INTELLECT-3-Base

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes216downloads
test_template.py312 linesDownload Raw Back to root
1# /// script2# requires-python = ">=3.12"3# dependencies = ["transformers", "jinja2"]4# ///5 6 7from transformers import AutoTokenizer8 9 10def print_section(title, messages, tokenizers, **tokenizer_kwargs):11    """Helper function to print formatted sections"""12    print(f"\n{'=' * 60}")13    print(f"{title}")14    print(f"{'=' * 60}")15    print(f"\n{messages=}\n")16    for tokenizer_name, tokenizer in tokenizers.items():17        print(f"\n{tokenizer_name=}\n")18        content = tokenizer.apply_chat_template(19            messages, tokenize=False, **tokenizer_kwargs20        )21        print(content)22 23 24# Initialize tokenizer25local_tokenizer = AutoTokenizer.from_pretrained(".")26qwen3_tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Coder-30B-A3B-Instruct")27tokenizers = {"Local": local_tokenizer, "Qwen3-Coder": qwen3_tokenizer}28 29# Only user message30print_section(31    "User message only",32    [{"role": "user", "content": "What is the capital of France?"}],33    tokenizers,34)35 36# User message with generation prompt37print_section(38    "User message with generation prompt",39    [{"role": "user", "content": "What is the capital of France?"}],40    tokenizers,41    add_generation_prompt=True,42)43 44# User message with custom system message45print_section(46    "Custom system message",47    [48        {"role": "system", "content": "You are a helpful assistant."},49        {"role": "user", "content": "What is the capital of France?"},50    ],51    tokenizers,52)53 54# Single-turn with assistant response (no think)55print_section(56    "Single-turn with assistant response (no think)",57    [58        {"role": "user", "content": "What is the capital of France?"},59        {"role": "assistant", "content": "The capital of France is Paris."},60    ],61    tokenizers,62)63 64# Single-turn with think embedded in content65print_section(66    "Single-turn with think embedded in content",67    [68        {"role": "user", "content": "What is the capital of France?"},69        {70            "role": "assistant",71            "content": "<think>The user is asking about geography. France is a country in Europe, and its capital city is Paris. This is a straightforward factual question.</think>\nThe capital of France is Paris.",72        },73    ],74    tokenizers,75)76 77# Single-turn with reasoning_content field78print_section(79    "Single-turn with reasoning_content field",80    [81        {"role": "user", "content": "What is the capital of France?"},82        {83            "role": "assistant",84            "content": "The capital of France is Paris.",85            "reasoning_content": "The user is asking about geography. France is a country in Europe, and its capital city is Paris.",86        },87    ],88    tokenizers,89)90 91print_section(92    "Single-turn with think section and reasoning_content field",93    [94        {"role": "user", "content": "What is the capital of France?"},95        {96            "role": "assistant",97            "content": "<think>The user is asking about geography. France is a country in Europe, and its capital city is Paris. This is a straightforward factual question.</think>\nThe capital of France is Paris.",98            "reasoning_content": "The user is asking about geography. France is a country in Europe, and its capital city is Paris. This is a straightforward factual question.",99        },100    ],101    tokenizers,102)103 104 105# Multi-turn and assistant response with think sections (embedded in content)106print_section(107    "Multi-turn with think embedded in content",108    [109        {"role": "user", "content": "What is the capital of France?"},110        {111            "role": "assistant",112            "content": "<think>This is a basic geography question.</think>\nThe capital of France is Paris.",113        },114        {"role": "user", "content": "What about Germany?"},115        {116            "role": "assistant",117            "content": "<think>Another geography question. Germany's capital is Berlin.</think>\nThe capital of Germany is Berlin.",118        },119    ],120    tokenizers,121)122 123# Multi-turn and assistant response with think sections (embedded in content)124print_section(125    "Multi-turn with reasoning_content field",126    [127        {"role": "user", "content": "What is the capital of France?"},128        {129            "role": "assistant",130            "reasoning_content": "The user is asking about geography. France is a country in Europe, and its capital city is Paris.",131            "content": "The capital of France is Paris.",132        },133        {"role": "user", "content": "What about Germany?"},134        {135            "role": "assistant",136            "reasoning_content": "Another geography question. Germany's capital is Berlin.",137            "content": "The capital of Germany is Berlin.",138        },139    ],140    tokenizers,141)142 143# Assistant with only think section, no visible content144print_section(145    "Assistant with only think section",146    [147        {148            "role": "user",149            "content": "Think about this problem but don't respond yet.",150        },151        {152            "role": "assistant",153            "content": "<think>The user wants me to think about something but not provide a response yet. I should just show my thinking process without any visible output.</think>",154        },155    ],156    tokenizers,157)158 159# Assistant with unfinished think section160print_section(161    "Assistant with unfinished think section",162    [163        {164            "role": "user",165            "content": "Think about this problem but don't respond yet.",166        },167        {168            "role": "assistant",169            "content": "<think>The user wants me to think about something but not provide a response yet. I should just",170        },171    ],172    tokenizers,173)174 175print_section(176    "Empty think content",177    [178        {"role": "user", "content": "Say hello"},179        {"role": "assistant", "content": "<think></think>Hello! How can I help you today?"},180    ],181    tokenizers,182)183 184print_section(185    "Empty reasoning content",186    [187        {"role": "system", "content": "You are a helpful assistant."},188        {"role": "user", "content": "Say hello"},189        {190            "role": "assistant",191            "content": "Hello! How can I help you today?",192            "reasoning_content": "",193        },194    ],195    tokenizers,196)197 198 199# ============================================================================200# EXAMPLE 7: Tool use scenario201# ============================================================================202tool_example = [203    {"role": "user", "content": "What's the weather like in Paris?"},204    {205        "role": "assistant",206        "content": "I'll check the weather in Paris for you.",207        "reasoning_content": "I should use the get_weather tool for this.",208        "tool_calls": [209            {210                "name": "get_weather",211                "arguments": {"location": "Paris, France", "units": "celsius"},212            }213        ],214    },215    {216        "role": "tool",217        "content": "Current weather in Paris: 18°C, partly cloudy with light winds.",218    },219    {220        "role": "assistant",221        "content": "<think>The weather API returned current conditions for Paris. I should provide this information to the user in a clear format.</think>\nThe current weather in Paris is 18°C with partly cloudy skies and light winds. It's a pleasant day!",222    },223]224 225# Define tools for this example226tools = [227    {228        "type": "function",229        "function": {230            "name": "get_weather",231            "description": "Get current weather information for a location",232            "parameters": {233                "type": "object",234                "properties": {235                    "location": {236                        "type": "string",237                        "description": "The city and country",238                    },239                    "units": {"type": "string", "enum": ["celsius", "fahrenheit"]},240                },241                "required": ["location"],242            },243        },244    }245]246 247print_section(248    "Single-turn tool use with weather",249    tool_example,250    tokenizers,251    tools=tools,252)253 254# ============================================================================255# EXAMPLE 8: Multiple tool calls in one response256# ============================================================================257multi_tool_example = [258    {259        "role": "user",260        "content": "I need to calculate 15 * 23 and also get the current time.",261    },262    {263        "role": "assistant",264        "content": "<think>The user wants two things: a calculation and the current time. I'll use two tools to get this information.</think>\nI'll help you with both the calculation and getting the current time.",265        "tool_calls": [266            {"name": "calculate", "arguments": {"expression": "15 * 23"}},267            {"name": "get_current_time", "arguments": {}},268        ],269    },270    {"role": "tool", "content": "345"},271    {"role": "tool", "content": "2024-01-15T14:30:22Z"},272    {273        "role": "assistant",274        "content": "Perfect! Here are your results:\n- 15 × 23 = 345\n- Current time: 2:30 PM UTC on January 15, 2024",275    },276]277 278multi_tools = [279    {280        "type": "function",281        "function": {282            "name": "calculate",283            "description": "Perform mathematical calculations",284            "parameters": {285                "type": "object",286                "properties": {287                    "expression": {288                        "type": "string",289                        "description": "Mathematical expression to evaluate",290                    }291                },292                "required": ["expression"],293            },294        },295    },296    {297        "type": "function",298        "function": {299            "name": "get_current_time",300            "description": "Get the current date and time",301            "parameters": {"type": "object", "properties": {}},302        },303    },304]305 306print_section(307    "Single-turn with multiple tool calls",308    multi_tool_example,309    tokenizers,310    tools=multi_tools,311)312