2024-12-13 09:56:10 -08:00

47 lines
1.1 KiB
Python

from typing import Any
from pydantic import BaseModel
from onyx.db.models import Tool
class ToolSnapshot(BaseModel):
id: int
name: str
description: str
definition: dict[str, Any] | None
display_name: str
in_code_tool_id: str | None
custom_headers: list[Any] | None
@classmethod
def from_model(cls, tool: Tool) -> "ToolSnapshot":
return cls(
id=tool.id,
name=tool.name,
description=tool.description,
definition=tool.openapi_schema,
display_name=tool.display_name or tool.name,
in_code_tool_id=tool.in_code_tool_id,
custom_headers=tool.custom_headers,
)
class Header(BaseModel):
key: str
value: str
class CustomToolCreate(BaseModel):
name: str
description: str | None = None
definition: dict[str, Any]
custom_headers: list[Header] | None = None
class CustomToolUpdate(BaseModel):
name: str | None = None
description: str | None = None
definition: dict[str, Any] | None = None
custom_headers: list[Header] | None = None