Skip listing tools that aren't valid ToolDefinitions (#340)
The tool used in the mcp demo isn't a valid ToolDefinition. Unable to list tool 'Demo.lorem': 1 validation error for ToolDefinition requirements Input should be a valid dictionary or instance of ToolRequirements For further information visit https://errors.pydantic.dev/2.10/v/model_type
This commit is contained in:
parent
cb1fff151b
commit
2dd7719517
1 changed files with 6 additions and 1 deletions
|
|
@ -17,6 +17,7 @@ from openai import OpenAI, Stream
|
||||||
from openai.types.chat.chat_completion import Choice as ChatCompletionChoice
|
from openai.types.chat.chat_completion import Choice as ChatCompletionChoice
|
||||||
from openai.types.chat.chat_completion_chunk import ChatCompletionChunk
|
from openai.types.chat.chat_completion_chunk import ChatCompletionChunk
|
||||||
from openai.types.chat.chat_completion_chunk import Choice as ChatCompletionChunkChoice
|
from openai.types.chat.chat_completion_chunk import Choice as ChatCompletionChunkChoice
|
||||||
|
from pydantic import ValidationError
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.live import Live
|
from rich.live import Live
|
||||||
from rich.markdown import Markdown
|
from rich.markdown import Markdown
|
||||||
|
|
@ -201,7 +202,11 @@ def get_tools_from_engine(
|
||||||
try:
|
try:
|
||||||
page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN)
|
page_iterator = client.tools.list(toolkit=toolkit or NOT_GIVEN)
|
||||||
for tool in page_iterator:
|
for tool in page_iterator:
|
||||||
tools.append(ToolDefinition.model_validate(tool.model_dump()))
|
try:
|
||||||
|
tools.append(ToolDefinition.model_validate(tool.model_dump()))
|
||||||
|
except ValidationError:
|
||||||
|
# Skip listing tools that aren't valid ToolDefinitions
|
||||||
|
continue
|
||||||
except APIConnectionError:
|
except APIConnectionError:
|
||||||
console.print(
|
console.print(
|
||||||
f"❌ Can't connect to Arcade Engine at {base_url}. (Is it running?)", style="bold red"
|
f"❌ Can't connect to Arcade Engine at {base_url}. (Is it running?)", style="bold red"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue