Downloads · 30 days
436
4% of all-time downloads
nguyenthanhthuan/Llama_3.2_1B_Intruct_Tool_Calling_V2
Llama_3.2_1B_Intruct_Tool_Calling_V2 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 nguyenthanhthuan/function-calling-sharegpt dataset for training.
Downloads · 30 days
436
4% of all-time downloads
All-time downloads
9.8K
Public
Repo size
6.3 GB
Likes
8
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 nguyenthanhthuan/function-calling-sharegpt dataset for training.
Method 1:
pip install langchain pydantic torch langchain-ollama langchain_core
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
# Note that the docstrings here are crucial, as they will be passed along
# to the model along with the class name.
class add(BaseModel):
"""Add two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
class multiply(BaseModel):
"""Multiply two integers together."""
a: int = Field(..., description="First integer")
b: int = Field(..., description="Second integer")
tools = [add, multiply]
llm_with_tools = llm.bind_tools(tools)
# Execute query and parser result (Different from the first version)
from langchain_core.output_parsers.openai_tools import PydanticToolsParser
query = "What is 3 * 12? Also, what is 11 + 49?"
chain = llm_with_tools | PydanticToolsParser(tools=tools)
result = chain.invoke(query)
print(result)
# Output:
# [multiply(a=3, b=12), add(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)")
tools = [
SendEmail,
WeatherInfo,
SearchWeb,
CreateCalendarEvent,
TranslateText,
SetReminder
]
llm_tools = llm.bind_tools(tools)
# # Execute query and parser result (Different from the first version)
from langchain_core.output_parsers.openai_tools import PydanticToolsParser
query = "Set a reminder to call John at 3 PM tomorrow. Also, translate 'Hello, how are you?' to Spanish."
chain = llm_tools | PydanticToolsParser(tools=tools)
result = chain.invoke(query)
print(result)
# Output:
# [SetReminder(message='Set a reminder for a specific time.', time='3 PM tomorrow', priority='normal'),
# TranslateText(text='Hello, how are you?', source_lang='en', target_lang='es')]
Training utilized the nguyenthanhthuan/function-calling-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 Version 2} ,
year = {2024},
publisher = {GitHub},
journal = {GitHub repository}
}