Downloads · 30 days
164
3% of all-time downloads
nguyenthanhthuan/Llama_3.2_1B_Intruct_Tool_Calling
Llama_3.2_1B_Intruct_Tool_Calling is a text generation model from nguyenthanhthuan. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
A specialized fine-tuned version of the meta-llama/Llama-3.2-1B-Instruct model enhanced with function/tool calling capabilities. The model leverages the hiyouga/glaive-function-calling-v2-sharegpt dataset for training.
Downloads · 30 days
164
3% of all-time downloads
All-time downloads
5.5K
Public
Repo size
10.1 GB
Likes
4
Public
Click a slice to open those files.
.bin2.5 GB · 65%
From the Hugging Face model README
A specialized fine-tuned version of the meta-llama/Llama-3.2-1B-Instruct model enhanced with function/tool calling capabilities. The model leverages the hiyouga/glaive-function-calling-v2-sharegpt dataset for training.
Method 1:
pip install langchain pydantic torch langchain-ollama
Method 2:
ollama create <model_name> -f <path_to_modelfile>
from langchain_ollama import ChatOllama
# Initialize model instance
llm = ChatOllama(model="<model_name>")
# Arithmetic computation example
query = "What is 3 * 12? Also, what is 11 + 49?"
response = llm.invoke(query)
print(response.content)
# Output:
# 1. 3 times 12 is 36.
# 2. 11 plus 49 is 60.
from pydantic import BaseModel, Field
class add(BaseModel):
"""Addition operation for two integers."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
class multiply(BaseModel):
"""Multiplication operation for two integers."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
# Tool registration
tools = [add, multiply]
llm_tools = llm.bind_tools(tools)
# Execute query
response = llm_tools.invoke(query)
print(response.content)
# Output:
# {"type":"function","function":{"name":"multiply","arguments":[{"a":3,"b":12}]}}
# {"type":"function","function":{"name":"add","arguments":[{"a":11,"b":49}}]}}
from pydantic import BaseModel, Field
from typing import List, Optional
class SendEmail(BaseModel):
"""Send an email to specified recipients."""
to: List[str] = Field(..., description="List of email recipients")
subject: str = Field(..., description="Email subject")
body: str = Field(..., description="Email content/body")
cc: Optional[List[str]] = Field(None, description="CC recipients")
attachments: Optional[List[str]] = Field(None, description="List of attachment file paths")
class WeatherInfo(BaseModel):
"""Get weather information for a specific location."""
city: str = Field(..., description="City name")
country: Optional[str] = Field(None, description="Country name")
units: str = Field("celsius", description="Temperature units (celsius/fahrenheit)")
class SearchWeb(BaseModel):
"""Search the web for given query."""
query: str = Field(..., description="Search query")
num_results: int = Field(5, description="Number of results to return")
language: str = Field("en", description="Search language")
class CreateCalendarEvent(BaseModel):
"""Create a calendar event."""
title: str = Field(..., description="Event title")
start_time: str = Field(..., description="Event start time (ISO format)")
end_time: str = Field(..., description="Event end time (ISO format)")
description: Optional[str] = Field(None, description="Event description")
attendees: Optional[List[str]] = Field(None, description="List of attendee emails")
class TranslateText(BaseModel):
"""Translate text between languages."""
text: str = Field(..., description="Text to translate")
source_lang: str = Field(..., description="Source language code (e.g., 'en', 'es')")
target_lang: str = Field(..., description="Target language code (e.g., 'fr', 'de')")
class SetReminder(BaseModel):
"""Set a reminder for a specific time."""
message: str = Field(..., description="Reminder message")
time: str = Field(..., description="Reminder time (ISO format)")
priority: str = Field("normal", description="Priority level (low/normal/high)")
# Combine all tools
tools = [
SendEmail,
WeatherInfo,
SearchWeb,
CreateCalendarEvent,
TranslateText,
SetReminder
]
llm_tools = llm.bind_tools(tools)
# Example usage
query = "Set a reminder to call John at 3 PM tomorrow. Also, translate 'Hello, how are you?' to Spanish."
print(llm_tools.invoke(query).content)
# Output:
# {"type":"function","function":{"name":"SetReminder","arguments":{"message":"Call John at 3 PM tomorrow"},"arguments":{"time":"","priority":"normal"}}}
# {"type":"function","function":{"name":"TranslateText","arguments":{"text":"Hello, how are you?", "source_lang":"en", "target_lang":"es"}}
Training utilized the hiyouga/glaive-function-calling-v2-sharegpt dataset, featuring comprehensive function calling interaction examples.
Function Parameter Sensitivity: The model may occasionally misinterpret complex parameter combinations, especially when multiple optional parameters are involved. Double-check parameter values in critical applications.
Response Format Variations:
Error Handling Considerations:
Input Validation:
Testing Recommendations:
Performance Optimization:
We welcome contributions through issues and pull requests for improvements and bug fixes.
Released under Apache 2.0 license. See LICENSE file for complete terms.
@misc{function-calling-llama,
author = {nguyenthanhthuan_banhmi},
title = {Function Calling Llama Model Vesion 1},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository}
}