Instructions to use levelplaystudio/echo with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use levelplaystudio/echo with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="levelplaystudio/echo") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("levelplaystudio/echo") model = AutoModelForCausalLM.from_pretrained("levelplaystudio/echo", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use levelplaystudio/echo with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "levelplaystudio/echo" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "levelplaystudio/echo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/levelplaystudio/echo
- SGLang
How to use levelplaystudio/echo with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "levelplaystudio/echo" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "levelplaystudio/echo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "levelplaystudio/echo" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "levelplaystudio/echo", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use levelplaystudio/echo with Docker Model Runner:
docker model run hf.co/levelplaystudio/echo
ECHO FunctionGemma 270M
ECHO is a small on-device personal assistant model. It reads a user request and chooses the right tool, with arguments, to carry it out on the local machine. It is a fine-tune of google/functiongemma-270m-it and is built to run without a cloud connection on hardware such as a Raspberry Pi 4B (4GB) or a Windows desktop.
Creators: Lakshy M. Chaurasia and Pratigya M. Chaurasia, Level Play Studio.
Model details
| Item | Value |
|---|---|
| Base model | google/functiongemma-270m-it |
| Parameters | ~270M |
| Format | Safetensors (model.safetensors) |
| Language | English (Indian English context) |
| Task | Function calling for personal computer and assistant actions |
| Intended hardware | Raspberry Pi 4B (4GB), Windows desktop, edge devices |
| Context | Single-turn tool selection |
Supported tools
The model is trained to call these 13 tools:
| Tool | Purpose |
|---|---|
music_manager |
Play, pause, resume, next, previous. Includes classic Indian film and ghazal music. |
get_weather |
Current weather and forecasts for a city or region. |
open_application |
Launch desktop apps, terminals, and utilities. |
close_application |
Close or terminate running apps. |
task_manager |
Create, list, delete, and complete tasks and reminders. |
get_current_time |
Return the local time. |
get_current_date |
Return the date and day of the week. |
get_system_info |
CPU, RAM, disk, and OS diagnostics. |
volume_manager |
Set, mute, unmute, increase, or decrease audio volume (0–100). |
take_screenshot |
Capture the full screen, the active window, or a region. |
file_manager |
List, read, create, write, append, search, rename, move, copy, delete, and inspect files and folders. Includes multi-turn navigation (search, list, read, then respond). |
response |
Conversational replies and final answers after a tool call. Includes ECHO's philosophical persona and creator information. |
web_search |
Search the web for current news, facts, and tutorials. |
Training data
- Source: synthetic. User queries and tool calls were generated with Gemini and checked against the tool schemas before use.
- Size: about 5,200 examples in total, split roughly 90% train and 10% evaluation, stratified by tool.
- Format: each example is a chat with a
developermessage (date, time, day of week, and the tool list), ausermessage, and anassistanttool call. Tool lists are shuffled per example. - Coverage: English only. Indian cities, names, festivals, and Windows paths. Varied styles: formal requests, short voice commands, slang, typos, and multi-sentence commands.
- Validation: arguments must match the schema exactly (names, types, enum values, and the 0–100 volume range). Non-English text and duplicate queries were removed.
Evaluation
Evaluation uses a held-out split of the synthetic data. Replace the placeholders below with your measured results.
| Metric | Score |
|---|---|
| Tool-name accuracy | XX.XX% |
| Exact-arguments accuracy | XX.XX% |
| Schema-valid calls | XX.XX% |
Synthetic evaluation does not show real-world performance. Test on real user phrasings before relying on the model.
How to use
from transformers import AutoTokenizer, AutoModelForCausalLM
repo_id = "YOUR_USERNAME/echo-functiongemma-270m"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForCausalLM.from_pretrained(repo_id, torch_dtype="auto")
tools = [
{
"type": "function",
"function": {
"name": "volume_manager",
"description": "Adjusts host master audio volume or toggles mute status.",
"parameters": {
"type": "object",
"properties": {
"action": {"type": "string", "description": "Volume action: 'set', 'mute', 'unmute', 'increase', 'decrease'."},
"level": {"type": "integer", "description": "Integer audio level between 0 and 100."},
},
"required": ["action"],
},
},
},
# Add the other tools from the table above as needed.
]
messages = [
{"role": "developer", "content": "Current date and time given in YYYY-MM-DDTHH:MM:SS format: 2026-10-18T09:30:00\nDay of week is Sunday\nYou are a model that can do function calling with the following functions\n"},
{"role": "user", "content": "Lower the sound to 20 percent"},
]
inputs = tokenizer.apply_chat_template(messages, tools=tools, add_generation_prompt=True, return_tensors="pt", return_dict=True)
output = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=False))
Parse the generated tool call and run it through your own tool dispatcher. Do not execute model output directly without checking the tool name and arguments against the schema.
Limitations
- Trained on synthetic data, so it may miss phrasings and situations that real users write.
- Supports only the 13 tools listed above. Requests for other tools will not be handled correctly.
- Multi-turn examples cover mainly
file_managernavigation and summarizing tool output inresponse. Long multi-step workflows across other tools are not covered. - English only.
- Music knowledge covers mainly Indian film and ghazal music from about 1950 to 1980. Verify artist and song names for other genres.
- Argument values such as file paths and times should be checked before any action is taken on the device.
Safety
ECHO can open and close applications, change system volume, and capture the screen. Run actions through a confirmation step for anything destructive, and never run it with elevated permissions without review.
Citation
@misc{echo_functiongemma_270m,
title = {ECHO FunctionGemma 270M},
author = {Chaurasia, Lakshy M. and Chaurasia, Pratigya M.},
year = {2026},
note = {Level Play Studio}
}
License
This model is licensed under the Apache License, Version 2.0. See the LICENSE file for the full text.
Note: the base model google/functiongemma-270m-it is distributed under Google's Gemma terms of use, not Apache 2.0. Those terms may apply to derivative weights, so check them before you rely on Apache 2.0 for this model alone.
- Downloads last month
- 32
Model tree for levelplaystudio/echo
Base model
google/functiongemma-270m-it