Nandi-Mini-150M-Tool-Calling

Introduction

Nandi-Mini-150M-Tool-Calling is a lightweight, single-turn specialized model designed to accurately interpret user queries and generate precise tool calls in one step, enabling efficient and reliable function execution

📝 Upcoming Releases & Roadmap

We’re just getting started with the Nandi series 🚀

  • Nandi-Mini-150M-BaseHF-Link
  • Nandi-Mini-150M-InstructHF-Link
  • Nandi-Mini-500M (Base + Instruct) — Pre-Training Going On
  • Nandi-Mini-1B (Base + Instruct) — Pre-Training Going On

📢 Blogs & technical deep-dives coming soon, where we’ll share:

  • Architecture decisions and design trade-offs
  • Training insights and dataset composition
  • Benchmarks and real-world applications

Stay tuned!

🚀 Usage

!pip install transformers=='5.4.0'

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
import json

model_name = "Rta-AILabs/Nandi-Mini-150M-Tool-Calling"

device = "cuda" if torch.cuda.is_available() else "cpu"

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    trust_remote_code=True,
    dtype=torch.bfloat16
).to(device).eval()

def call_nandi_tool_calling(user_prompt,tools):

    tools = json.dumps(tools, indent=4)
    system_prompt = f"You are a helpful assistant with access to the following tools - You need to choose appropriate tool for given query, you also need to add appropriate parameters. Do not choose wrong tools, if user query does not belong to a tool. <|tools_start|>\n{tools}\n<|tools_end|>"
    
    messages = [
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": user_prompt},
    ]
    
    prompt = tokenizer.apply_chat_template(messages, tokenize=False)
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    
    generated_ids = model.generate(
      **inputs,
      max_new_tokens=500,
      do_sample=True,
      temperature=0.3,
      top_p=0.90,
      top_k=20,
      repetition_penalty=1.1,
    )
    
    generated_ids = [
      output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs.input_ids, generated_ids)
    ]
    
    response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

    return response

# Put your query here
user_prompt = "Get weather in Delhi"
# Update the tools according to your use case
tools = [
  {
    "name": "get_weather",
    "description": "Get current weather for a city",
    "parameters": {
      "city": {
        "type": "str",
        "description": "City name"
      }
    }
  },
  {
    "name": "get_time",
    "description": "Get current time for a city",
    "parameters": {
      "city": {
        "type": "str",
        "description": "City name"
      }
    }
  }
]

print(call_nandi_tool_calling(user_prompt,tools))

📬 Feedback & Suggestions

We’d love to hear your thoughts, feedback, and ideas!

Downloads last month
1,762
Safetensors
Model size
0.2B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Rta-AILabs/Nandi-Mini-150M-Tool-Calling

Finetuned
(2)
this model

Collection including Rta-AILabs/Nandi-Mini-150M-Tool-Calling