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-Base — HF-Link
- Nandi-Mini-150M-Instruct — HF-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 = "FrontiersMind/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!
- Discord: https://discord.gg/ZGdjCdRt
- Email: support@frontiersmind.ai
- Official Website https://www.frontiersmind.ai/
- LinkedIn: https://www.linkedin.com/company/frontiersmind/
- X (Twitter): https://x.com/FrontiersMind