{"_id":"69ea86258ae7e80e6ce4d234","id":"poolside/Laguna-XS.2","private":false,"pipeline_tag":"text-generation","library_name":"transformers","tags":["transformers","safetensors","laguna","text-generation","laguna-xs.2","vllm","conversational","custom_code","license:apache-2.0","eval-results","region:us"],"downloads":28290,"likes":319,"modelId":"poolside/Laguna-XS.2","author":"poolside","sha":"69e3f4046616e40fb55ac54e0e2e6accbe5cadfe","lastModified":"2026-07-14T08:34:25.000Z","gated":false,"disabled":false,"mask_token":"〈|MASK|〉","widgetData":[{"text":"Hi, what can you help me with?"},{"text":"What is 84 * 3 / 2?"},{"text":"Tell me an interesting fact about the universe!"},{"text":"Explain quantum computing in simple terms."}],"model-index":null,"config":{"architectures":["LagunaForCausalLM"],"auto_map":{"AutoConfig":"configuration_laguna.LagunaConfig","AutoModelForCausalLM":"modeling_laguna.LagunaForCausalLM"},"model_type":"laguna","num_experts":256,"num_experts_per_tok":8,"tokenizer_config":{"bos_token":"〈|EOS|〉","cls_token":"〈|CLS|〉","eos_token":"〈|EOS|〉","mask_token":"〈|MASK|〉","pad_token":"〈|PAD|〉","sep_token":"〈|SEP|〉","unk_token":"〈|UNK|〉"},"chat_template_jinja":"{#- Iteration on laguna_glm_thinking_v5/chat_template.jinja -#}\n{#- Adds a default system message (used when no system message is provided in `messages`). -#}\n{{- \"〈|EOS|〉\" -}}\n{%- set enable_thinking = enable_thinking | default(false) -%}\n{%- set render_assistant_messages_raw = render_assistant_messages_raw | default(false) -%}\n{%- set add_generation_prompt = add_generation_prompt | default(false) -%}\n\n{#- ───── header (system message) ───── -#}\n{%- set system_message = \"You are a helpful, conversationally-fluent assistant made by Poolside. You are here to be helpful to users through natural language conversations.\" -%}\n{%- if messages and messages[0].role == \"system\" -%}\n  {%- set system_message = messages[0].content -%}\n{%- endif -%}\n\n{%- if (system_message and system_message.strip()) or tools -%}\n  {{- \"<system>\\n\" -}}\n\n  {%- if system_message and system_message.strip() -%}\n    {{- \"\\n\" -}}\n    {{- system_message.rstrip() -}}\n  {%- endif -%}\n\n  {%- if tools -%}\n    {{- \"\\n\\n### Tools\\n\\n\" -}}\n    {%- set ns = namespace(tool_string=\"You may call functions to assist with the user query.\\n\"\n          ~ \"All available function signatures are listed below:\\n\"\n          ~ \"<available_tools>\\n\") -%}\n    {%- for tool in tools -%}\n      {%- set ns.tool_string = ns.tool_string ~ (tool | tojson) ~ \"\\n\" -%}\n    {%- endfor -%}\n    {%- if enable_thinking -%}\n      {%- set tool_string = ns.tool_string + \"</available_tools>\\n\\n\" ~\n            \"Wrap your thinking in '<think>', '</think>' tags, followed by a function call. For each function call, return an unescaped XML-like object with function name and arguments within '<tool_call>' and '</tool_call>' tags, like here:\\n\" ~\n            \"<think> your thoughts here </think>\\n\" ~\n            \"<tool_call>function-name\\n<arg_key>argument-key</arg_key>\\n<arg_value>value-of-argument-key</arg_value>\\n\" ~\n            \"</tool_call>\" -%}\n    {%- else -%}\n      {%- set tool_string = ns.tool_string + \"</available_tools>\\n\\n\" ~\n            \"For each function call, return an unescaped XML-like object \" ~\n            \"with function name and arguments within '<tool_call>' and '</tool_call>' tags, like here:\\n\" ~\n            \"<tool_call>function-name\\n<arg_key>argument-key</arg_key>\\n<arg_value>value-of-argument-key</arg_value>\\n\" ~\n            \"</tool_call>\" -%}\n    {%- endif -%}\n    {{- tool_string -}}\n  {%- endif -%}\n\n  {{- \"\\n</system>\\n\" -}}\n{%- endif -%}\n\n{#- ───── main loop ───── -#}\n{%- for message in messages -%}\n  {%- set content = message.content if message.content is string else \"\" -%}\n  {%- if message.role == \"user\" -%}\n    {{- \"<user>\\n\" + content + \"\\n</user>\\n\" -}}\n  {%- elif message.role == \"assistant\" -%}\n    {%- generation -%}\n      {{- \"<assistant>\\n\" -}}\n      {%- if render_assistant_messages_raw -%}\n        {#- Raw mode: prepend the generation prompt token, then dump content verbatim. -#}\n        {#- The generation prompt is <think> when enable_thinking, </think> otherwise. -#}\n        {#- Only prepend if content doesn't already start with it. -#}\n        {%- if enable_thinking -%}\n          {%- if not content.startswith('<think>') -%}\n            {{- '<think>' -}}\n          {%- endif -%}\n        {%- else -%}\n          {%- if not content.startswith('</think>') -%}\n            {{- '</think>' -}}\n          {%- endif -%}\n        {%- endif -%}\n        {{- content -}}\n        {#- Append closing tag if content doesn't already end with it. -#}\n        {%- if not content.endswith('</assistant>\\n') and not content.endswith('</assistant>') -%}\n          {{- '\\n</assistant>' -}}\n        {%- endif -%}\n        {{- \"\\n\" -}}\n      {%- else -%}\n        {#- Extract reasoning content from message.reasoning (vLLM field name) or message.reasoning_content, or from <think> tags -#}\n        {%- set reasoning_content = '' %}\n        {%- if message.reasoning is string %}\n          {%- set reasoning_content = message.reasoning %}\n        {%- elif message.reasoning_content is string %}\n          {%- set reasoning_content = message.reasoning_content %}\n        {%- endif %}\n        {#- Always strip <think> tags from content if present to avoid duplication -#}\n        {%- if '</think>' in content %}\n          {%- if not reasoning_content %}\n            {%- set reasoning_content = content.split('</think>')[0].rstrip('\\n').split('<think>')[-1].lstrip('\\n') %}\n          {%- endif %}\n          {%- set content = content.split('</think>')[-1].lstrip('\\n') %}\n        {%- endif %}\n        {#- Display reasoning content for all messages -#}\n        {%- if reasoning_content -%}\n          {{- '<think>\\n' + reasoning_content.strip() + '\\n</think>\\n' -}}\n        {%- else -%}\n          {{- '</think>\\n' -}}\n        {%- endif -%}\n        {#- Display main content -#}\n        {%- if content.strip() -%}\n          {{- content.strip() ~ \"\\n\" -}}\n        {%- endif -%}\n        {%- if message.tool_calls -%}\n          {%- for tool_call in message.tool_calls -%}\n            {%- set function_data = tool_call.function -%}\n            {{- '<tool_call>' + function_data.name }}\n            {% set _args = function_data.arguments %}\n            {%- for k, v in _args.items() -%}\n              {{- \"<arg_key>\" ~ k ~ \"</arg_key>\\n\" -}}\n              {{- \"<arg_value>\"}}{{ v | tojson(ensure_ascii=False) if v is not string else v }}{{ \"</arg_value>\\n\" -}}\n            {%- endfor -%}\n            {{- \"</tool_call>\\n\" -}}\n          {%- endfor -%}\n        {%- endif -%}\n        {{- \"</assistant>\\n\" -}}\n      {%- endif -%}\n    {%- endgeneration -%}\n  {%- elif message.role == \"tool\" -%}\n    {{- \"<tool_response>\\n\" + content + \"\\n</tool_response>\\n\" -}}\n  {%- elif message.role == \"system\" and loop.index0 != 0 -%}\n    {#- Render additional system messages (skip the first one which is handled separately in the header) -#}\n    {{- \"<system>\\n\" + content + \"\\n</system>\\n\" -}}\n  {%- endif -%}\n{%- endfor -%}\n{#- ───── generation prompt ───── -#}\n{%- if add_generation_prompt -%}\n  {{- \"<assistant>\\n\" -}}\n  {#- ───── Include reasoning mode directive ───── -#}\n  {%- if not enable_thinking %}\n    {{- '</think>' -}}\n  {%- else %}\n    {{- '<think>' -}}\n  {%- endif %}\n{%- endif -%}\n"},"cardData":{"library_name":"transformers","inference":false,"extra_gated_description":"To learn more about how we process your personal data, please read our <a href=\"https://poolside.ai/legal/privacy\">Privacy Policy</a>.","tags":["laguna-xs.2","vllm"],"license":"apache-2.0","pipeline_tag":"text-generation"},"transformersInfo":{"auto_model":"AutoModelForCausalLM","pipeline_tag":"text-generation","processor":"AutoTokenizer"},"siblings":[{"rfilename":".eval_results/swe-bench_pro.yaml"},{"rfilename":".eval_results/swe-bench_verified.yaml"},{"rfilename":".eval_results/terminal-bench-2.0.yaml"},{"rfilename":".gitattributes"},{"rfilename":"LICENSE.md"},{"rfilename":"README.md"},{"rfilename":"chat_template.jinja"},{"rfilename":"config.json"},{"rfilename":"configuration_laguna.py"},{"rfilename":"generation_config.json"},{"rfilename":"laguna.pdf"},{"rfilename":"model-00001-of-00014.safetensors"},{"rfilename":"model-00002-of-00014.safetensors"},{"rfilename":"model-00003-of-00014.safetensors"},{"rfilename":"model-00004-of-00014.safetensors"},{"rfilename":"model-00005-of-00014.safetensors"},{"rfilename":"model-00006-of-00014.safetensors"},{"rfilename":"model-00007-of-00014.safetensors"},{"rfilename":"model-00008-of-00014.safetensors"},{"rfilename":"model-00009-of-00014.safetensors"},{"rfilename":"model-00010-of-00014.safetensors"},{"rfilename":"model-00011-of-00014.safetensors"},{"rfilename":"model-00012-of-00014.safetensors"},{"rfilename":"model-00013-of-00014.safetensors"},{"rfilename":"model-00014-of-00014.safetensors"},{"rfilename":"model.safetensors.index.json"},{"rfilename":"modeling_laguna.py"},{"rfilename":"special_tokens_map.json"},{"rfilename":"tokenizer.json"},{"rfilename":"tokenizer_config.json"}],"spaces":["poolside-laguna-hackathon/poor-mans-interaction-models","Pioneer37/Stickman-Arena","akhaliq/Laguna-XS.2","adirik/attnvq","uday62/MedDiagnose-AI-Xai","mekosotto/hackathon","GeetaAIVisionary/azure-gpt-vs-laguna-comparator","mokshak/vera-rubric-decision-engine","RadicalNotionAI/modeldna","poolside-laguna-hackathon/looped-laguna","abid6160/quiz","abid6160/quizai","dhairya-132920/reserchAgent","schumachou/deep_research","getalvi/rubra-v3","bep40/Space-Mutiverse-Control","samir12321/negoptimAi","alambsahir/nubtk_pilot","BotXT/new_air","SilverElixir/Lumen","hugh007/openwolf-hermes","lexuanngoc/qnu-library-assistant","zpsajst/Kisaan-Mitra","solanaclawd/clawd-free-chat","mhammed001/judicial-translator-backend","TUFFBABY1/tungtungahur","Mike252/fieldforge-ai"],"createdAt":"2026-04-23T20:50:45.000Z","safetensors":{"parameters":{"BF16":33442617088},"total":33442617088},"usedStorage":66890561853}