mirror of
https://github.com/hoshikawa2/compass_backoffice.git
synced 2026-07-09 22:04:20 +00:00
36 lines
951 B
Python
36 lines
951 B
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Dict, List, Optional
|
|
from pydantic import BaseModel, Field, AliasChoices, ConfigDict
|
|
|
|
|
|
class ToolCallRequest(BaseModel):
|
|
model_config = ConfigDict(populate_by_name=True)
|
|
|
|
# O client do seu framework envia {"tool_name": "..."}.
|
|
# Mantemos também "name" para chamadas manuais/curl.
|
|
name: str = Field(
|
|
...,
|
|
validation_alias=AliasChoices("name", "tool_name"),
|
|
description="Nome da ferramenta a executar",
|
|
)
|
|
arguments: Dict[str, Any] = Field(default_factory=dict)
|
|
context: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class ToolCallResponse(BaseModel):
|
|
ok: bool
|
|
tool: str
|
|
result: Dict[str, Any] = Field(default_factory=dict)
|
|
error: Optional[str] = None
|
|
|
|
|
|
class ToolDefinition(BaseModel):
|
|
name: str
|
|
description: str
|
|
input_schema: Dict[str, Any]
|
|
|
|
|
|
class ToolListResponse(BaseModel):
|
|
tools: List[ToolDefinition]
|