Skip to main content

tool-calling

Use when defining functions/tools for an LLM to call through liter-llm, or requesting structured JSON outputs. Covers tool schemas, tool_calls handling, and response formats.

Informations de source

Dépôt
xberg-io/liter-llm
Dernière activité de la source
30 septembre 2026 à 16:23
Langue détectée de SKILL.md
anglais
Étoiles
260
Forks
23

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
tool-calling
description
Use when defining functions/tools for an LLM to call through liter-llm, or requesting structured JSON outputs. Covers tool schemas, tool_calls handling, and response formats.
<!-- AI-RULEZ :: GENERATED FILE — DO NOT EDIT Content-Hash: blake3:636c5d6448b2e3c003bd5caec347391513d72e415ceaef0740241141bc363b35 Source-Hash: blake3:651c31e789b5b3a98bbebecbda0ea4f0b6222b63c8264db7c677af355c5fe27b Schema-Version: v1 --> # Tool Calling Pass a `tools` array of function definitions; the model may respond with `tool_calls` instead of (or alongside) text. Execute the named function and feed the result back as a `tool` message. ## Python ```python import asyncio, json, os from liter_llm import create_client from liter_llm._internal_bindings import ChatCompletionRequest payload = { "model": "openai/gpt-4o", "messages": [{"role": "user", "content": "What is the weather in Berlin?"}], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "Get the current weather for a location", "parameters": { "type": "object", "properties": { "location": {"type": "string", "description": "City name"}, }, "required": ["location"], }, }, } ], "tool_choice": "auto", } async def main() -> None: client = create_client(api_key=os.environ["OPENAI_API_KEY"]) request = ChatCompletionRequest.from_json(json.dumps(payload)) response = await client.chat(request) for call in response.choices[0].message.tool_calls or []: print(call.function.name, call.function.arguments) # arguments is a JSON string asyncio.run(main()) ``` ## Structured outputs Request strict JSON with `response_format`: ```python request = ChatCompletionRequest.from_json(json.dumps({ "model": "openai/gpt-4o", "messages": [{"role": "user", "content": "Extract name and age as JSON."}], "response_format": {"type": "json_object"}, })) response = await client.chat(request) ``` ## Notes - `function.arguments` is a JSON **string** — parse it before use. - Append each tool result as a message with `role="tool"` and the matching `tool_call_id`, then call `chat` again to let the model continue. - Tool support and JSON-mode availability vary by provider; check the provider reference if a model ignores `tools`.
Voir sur GitHub