# UPDATES
This project is renamed to "AgentMake AI"
Please find latest updates at:
https://github.com/eliranwong/agentmake
https://pypi.org/project/agentmake/
# ToolMate AI - SDK
ToolMate-SDK: a software developement kit for developing agentic AI applications that support 13 LLM backends and integrate tools and agents. (Developer: Eliran Wong)
Supported backends: anthropic, azure, custom, deepseek, genai, github, googleai, groq, llamacpp, mistral, ollama, openai, vertexai, xai
# A Sibling Project
This SDK incorporates the best aspects of our favorite project, [Toolmate AI](https://github.com/eliranwong/toolmate), to create a library aimed at further advancing the development of AI applications.
# Supported backends
`anthropic` - [Anthropic API](https://console.anthropic.com/)
`azure` - [Azure OpenAI API](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference)
`custom` - any openai-compatible backends
`deepseek` - [DeepSeek API](https://platform.deepseek.com/)
`genai` - [Vertex AI](https://cloud.google.com/vertex-ai) or [Google AI](https://ai.google.dev/)
`github` - [Github API](https://docs.github.com/en/github-models/prototyping-with-ai-models#experimenting-with-ai-models-using-the-api)
`googleai` - [Google AI](https://ai.google.dev/)
`groq` - [Groq Cloud API](https://console.groq.com)
`llamacpp` - [Llama.cpp Server](https://github.com/ggerganov/llama.cpp) - [locat setup](https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md) required
`mistral` - [Mistral API](https://console.mistral.ai/api-keys/)
`ollama` - [Ollama](https://ollama.com/) - [local setup](https://ollama.com/download) required
`openai` - [OpenAI API](https://platform.openai.com/)
`vertexai` - [Vertex AI](https://cloud.google.com/vertex-ai)
`xai` - [XAI API](https://x.ai/api)
For simplicity, `toolmate-sdk` uses `ollama` as the default backend, if parameter `backend` is not specified. Ollama models are automatically downloaded if they have not already been downloaded. Users can change the default backend by modifying environment variable `DEFAULT_AI_BACKEND`.
# Installation
Basic:
> pip install --upgrade toolmate-sdk
Basic installation supports all AI backends mentioned above, except for `vertexai`.
Extras:
We support Vertex AI via [Google GenAI SDK](https://pypi.org/project/google-genai/). As this package supports most platforms, except for Android Termux, we separate this package `google-genai` as an extra. To support Vertex AI with `toolmate-sdk`, install with running:
> pip install --upgrade toolmate-sdk[genai]
# Usage
This SDK is designed to provide a single function for interacting with all AI backends, delivering a unified experience for generating AI responses. The main APIs are provided with the function `generate` located in this [file](https://github.com/eliranwong/toolmate-sdk/blob/main/toolmate_sdk/__init__.py#L29).
Find documentation at https://github.com/eliranwong/toolmate-sdk/blob/main/docs/README.md
# Examples
The following examples assumes [Ollama](https://ollama.com/) is [installed](https://ollama.com/download) as the default backend.
To import:
> from toolmate_sdk import generate
To generate, e.g.:
> generate("What is AI?")
To work with parameter `tool`, e.g.:
> generate("What is ToolMate AI?", tool="search_google")
> generate("How many 'r's are there in the word 'strawberry'?", tool="task")
> generate("What time is it right now?", tool="task")
> generate("Open github.com in a web browser.", tool="task")
> generate("Convert file 'music.wav' into mp3 format.", tool="task")
> generate("Send an email to Eliran Wong at eliran.wong@domain.com to express my gratitude for his work.", tool="send_gmail")
To work with parameter `agent`, e.g.:
> generate("Write detailed comments about the works of William Shakespeare, focusing on his literary contributions, dramatic techniques, and the profound impact he has had on the world of literature and theatre.", agent="teamgenai", stream=True)
To work with parameters `input_content_plugin` and `output_content_plugin`, e.g.:
> generate("what AI model best", input_content_plugin="improve_writing", output_content_plugin="translate_into_chinese", stream=True)
To work with parameter `system`, `context`, `follow_up_prompt`, e.g.:
> generate("Is it better to drink wine in the morning, afternoon, or evening?", context="reflect", stream=True)
> generate("Is it better to drink wine in the morning, afternoon, or evening?", context="think", follow_up_prompt=["review", "refine"], stream=True)
> generate("Provide a detailed introduction to generative AI.", system=["create_agents", "assign_agents"], follow_up_prompt="Who is the best agent to contribute next?", stream=True, model="llama3.3:70b")
To work collaboratively with different backends, e.g.
> messages = generate("What is the most effective method for training AI models?", backend="openai")
> messages = generate(messages, backend="googleai", follow_up_prompt="Can you give me some different options?")
> messages = generate(messages, backend="xai", follow_up_prompt="What are the limitations or potential biases in this information?")
> generate(messages, backend="mistral", follow_up_prompt="Please provide a summary of the discussion so far.")
As you may see, the `generate` function returns the `messages` list, which is passed to the next `generate` function in turns.
Therefore, it is very simple to create a chatbot application, you can do it as few as five lines or less, e.g.:
> messages = [{"role": "system", "content": "You are an AI assistant."}]
> user_input = "Hello!"
> while user_input:
> messages = generate(messages, follow_up_prompt=user_input, stream=True)
> user_input = input("Enter your query:\n(enter a blank entry to exit)\n>>> ")
These are just a few simple and straightforward examples. You may find more examples at:
https://github.com/eliranwong/toolmate-sdk/tree/main/toolmate-sdk/examples
# TODO
* add documentation about tool creation
* add examples
* convert availble ToolMate AI tools into tools that runable with this SDK
* added built-in system messages
* added built-in predefined contexts
* added built-in prompts
* add cli options for running simple inference, tools or testing
* improve code generation handling
Raw data
{
"_id": null,
"home_page": "https://github.com/eliranwong/toolmate-sdk",
"name": "toolmate-sdk",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.8",
"maintainer_email": null,
"keywords": "toolmate ai sdk anthropic azure chatgpt deepseek genai github googleai groq llamacpp mistral ollama openai vertexai xai",
"author": "Eliran Wong",
"author_email": "support@toolmate.ai",
"download_url": "https://files.pythonhosted.org/packages/b2/66/72dddf029c181d2e32af5e3f34524b0c72b81ea681fe1a4aad39bf3baa98/toolmate_sdk-0.0.16.tar.gz",
"platform": null,
"description": "# UPDATES\n\nThis project is renamed to \"AgentMake AI\"\n\nPlease find latest updates at:\n\nhttps://github.com/eliranwong/agentmake\n\nhttps://pypi.org/project/agentmake/\n\n# ToolMate AI - SDK\n\nToolMate-SDK: a software developement kit for developing agentic AI applications that support 13 LLM backends and integrate tools and agents. (Developer: Eliran Wong)\n\nSupported backends: anthropic, azure, custom, deepseek, genai, github, googleai, groq, llamacpp, mistral, ollama, openai, vertexai, xai\n\n# A Sibling Project\n\nThis SDK incorporates the best aspects of our favorite project, [Toolmate AI](https://github.com/eliranwong/toolmate), to create a library aimed at further advancing the development of AI applications.\n\n# Supported backends\n\n`anthropic` - [Anthropic API](https://console.anthropic.com/)\n\n`azure` - [Azure OpenAI API](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference)\n\n`custom` - any openai-compatible backends\n\n`deepseek` - [DeepSeek API](https://platform.deepseek.com/)\n\n`genai` - [Vertex AI](https://cloud.google.com/vertex-ai) or [Google AI](https://ai.google.dev/)\n\n`github` - [Github API](https://docs.github.com/en/github-models/prototyping-with-ai-models#experimenting-with-ai-models-using-the-api)\n\n`googleai` - [Google AI](https://ai.google.dev/)\n\n`groq` - [Groq Cloud API](https://console.groq.com)\n\n`llamacpp` - [Llama.cpp Server](https://github.com/ggerganov/llama.cpp) - [locat setup](https://github.com/ggerganov/llama.cpp/blob/master/docs/build.md) required\n\n`mistral` - [Mistral API](https://console.mistral.ai/api-keys/)\n\n`ollama` - [Ollama](https://ollama.com/) - [local setup](https://ollama.com/download) required\n\n`openai` - [OpenAI API](https://platform.openai.com/)\n\n`vertexai` - [Vertex AI](https://cloud.google.com/vertex-ai)\n\n`xai` - [XAI API](https://x.ai/api)\n\nFor simplicity, `toolmate-sdk` uses `ollama` as the default backend, if parameter `backend` is not specified. Ollama models are automatically downloaded if they have not already been downloaded. Users can change the default backend by modifying environment variable `DEFAULT_AI_BACKEND`.\n\n# Installation\n\nBasic:\n\n> pip install --upgrade toolmate-sdk\n\nBasic installation supports all AI backends mentioned above, except for `vertexai`.\n\nExtras:\n\nWe support Vertex AI via [Google GenAI SDK](https://pypi.org/project/google-genai/). As this package supports most platforms, except for Android Termux, we separate this package `google-genai` as an extra. To support Vertex AI with `toolmate-sdk`, install with running:\n\n> pip install --upgrade toolmate-sdk[genai]\n\n# Usage\n\nThis SDK is designed to provide a single function for interacting with all AI backends, delivering a unified experience for generating AI responses. The main APIs are provided with the function `generate` located in this [file](https://github.com/eliranwong/toolmate-sdk/blob/main/toolmate_sdk/__init__.py#L29).\n\nFind documentation at https://github.com/eliranwong/toolmate-sdk/blob/main/docs/README.md\n\n# Examples\n\nThe following examples assumes [Ollama](https://ollama.com/) is [installed](https://ollama.com/download) as the default backend.\n\nTo import:\n\n> from toolmate_sdk import generate\n\nTo generate, e.g.:\n\n> generate(\"What is AI?\")\n\nTo work with parameter `tool`, e.g.:\n\n> generate(\"What is ToolMate AI?\", tool=\"search_google\")\n\n> generate(\"How many 'r's are there in the word 'strawberry'?\", tool=\"task\")\n\n> generate(\"What time is it right now?\", tool=\"task\")\n\n> generate(\"Open github.com in a web browser.\", tool=\"task\")\n\n> generate(\"Convert file 'music.wav' into mp3 format.\", tool=\"task\")\n\n> generate(\"Send an email to Eliran Wong at eliran.wong@domain.com to express my gratitude for his work.\", tool=\"send_gmail\")\n\nTo work with parameter `agent`, e.g.:\n\n> generate(\"Write detailed comments about the works of William Shakespeare, focusing on his literary contributions, dramatic techniques, and the profound impact he has had on the world of literature and theatre.\", agent=\"teamgenai\", stream=True)\n\nTo work with parameters `input_content_plugin` and `output_content_plugin`, e.g.:\n\n> generate(\"what AI model best\", input_content_plugin=\"improve_writing\", output_content_plugin=\"translate_into_chinese\", stream=True)\n\nTo work with parameter `system`, `context`, `follow_up_prompt`, e.g.:\n\n> generate(\"Is it better to drink wine in the morning, afternoon, or evening?\", context=\"reflect\", stream=True)\n\n> generate(\"Is it better to drink wine in the morning, afternoon, or evening?\", context=\"think\", follow_up_prompt=[\"review\", \"refine\"], stream=True)\n\n> generate(\"Provide a detailed introduction to generative AI.\", system=[\"create_agents\", \"assign_agents\"], follow_up_prompt=\"Who is the best agent to contribute next?\", stream=True, model=\"llama3.3:70b\")\n\nTo work collaboratively with different backends, e.g.\n\n> messages = generate(\"What is the most effective method for training AI models?\", backend=\"openai\")\n> messages = generate(messages, backend=\"googleai\", follow_up_prompt=\"Can you give me some different options?\")\n> messages = generate(messages, backend=\"xai\", follow_up_prompt=\"What are the limitations or potential biases in this information?\")\n> generate(messages, backend=\"mistral\", follow_up_prompt=\"Please provide a summary of the discussion so far.\")\n\n\nAs you may see, the `generate` function returns the `messages` list, which is passed to the next `generate` function in turns.\n\nTherefore, it is very simple to create a chatbot application, you can do it as few as five lines or less, e.g.:\n\n\n> messages = [{\"role\": \"system\", \"content\": \"You are an AI assistant.\"}]\n> user_input = \"Hello!\"\n> while user_input:\n> messages = generate(messages, follow_up_prompt=user_input, stream=True)\n> user_input = input(\"Enter your query:\\n(enter a blank entry to exit)\\n>>> \")\n\nThese are just a few simple and straightforward examples. You may find more examples at:\n\nhttps://github.com/eliranwong/toolmate-sdk/tree/main/toolmate-sdk/examples\n\n# TODO\n\n* add documentation about tool creation\n* add examples\n* convert availble ToolMate AI tools into tools that runable with this SDK\n* added built-in system messages\n* added built-in predefined contexts\n* added built-in prompts\n* add cli options for running simple inference, tools or testing\n* improve code generation handling\n",
"bugtrack_url": null,
"license": "GNU General Public License (GPL)",
"summary": "ToolMate-SDK: a software developement kit for developing agentic AI applications that support 13 LLM backends and integrate tools and agents. (Developer: Eliran Wong)",
"version": "0.0.16",
"project_urls": {
"Documentation": "https://github.com/eliranwong/toolmate-sdk/wiki",
"Funding": "https://www.paypal.me/toolmate",
"Homepage": "https://github.com/eliranwong/toolmate-sdk",
"Source": "https://github.com/eliranwong/toolmate-sdk",
"Tracker": "https://github.com/eliranwong/toolmate-sdk/issues"
},
"split_keywords": [
"toolmate",
"ai",
"sdk",
"anthropic",
"azure",
"chatgpt",
"deepseek",
"genai",
"github",
"googleai",
"groq",
"llamacpp",
"mistral",
"ollama",
"openai",
"vertexai",
"xai"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5a3f59a22d694a214c335e4257def6b041dbe1a5498282edc5a145b608255998",
"md5": "37fd3340c494ba0e1c1e97f8136a0bbe",
"sha256": "49180ca2a19bbfffca00820cebba8c480d18e95c2134a7d4d49bc5263b952f30"
},
"downloads": -1,
"filename": "toolmate_sdk-0.0.16-py3-none-any.whl",
"has_sig": false,
"md5_digest": "37fd3340c494ba0e1c1e97f8136a0bbe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.8",
"size": 63150,
"upload_time": "2025-01-31T14:01:16",
"upload_time_iso_8601": "2025-01-31T14:01:16.985535Z",
"url": "https://files.pythonhosted.org/packages/5a/3f/59a22d694a214c335e4257def6b041dbe1a5498282edc5a145b608255998/toolmate_sdk-0.0.16-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b26672dddf029c181d2e32af5e3f34524b0c72b81ea681fe1a4aad39bf3baa98",
"md5": "cfce2074f902991e98384c6128705098",
"sha256": "fd86f8462653c835638356d3662a9b91aae8d30cc6a1261837a35b8208736dc8"
},
"downloads": -1,
"filename": "toolmate_sdk-0.0.16.tar.gz",
"has_sig": false,
"md5_digest": "cfce2074f902991e98384c6128705098",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.8",
"size": 46272,
"upload_time": "2025-01-31T14:01:19",
"upload_time_iso_8601": "2025-01-31T14:01:19.302092Z",
"url": "https://files.pythonhosted.org/packages/b2/66/72dddf029c181d2e32af5e3f34524b0c72b81ea681fe1a4aad39bf3baa98/toolmate_sdk-0.0.16.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-31 14:01:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "eliranwong",
"github_project": "toolmate-sdk",
"github_not_found": true,
"lcname": "toolmate-sdk"
}