mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-05 04:17:32 +00:00
fix(openai_responses): OpenAIResponsesObject is not complete
This commit is contained in:
parent
27d6becfd0
commit
12f55c68b4
2 changed files with 179 additions and 13 deletions
81
llama_stack/apis/tools/openai_tool_choice.py
Normal file
81
llama_stack/apis/tools/openai_tool_choice.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
from typing import Dict, List, Literal, Optional, TypeAlias
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
ToolChoiceOptions: TypeAlias = Literal["none", "auto", "required"]
|
||||
|
||||
|
||||
class ToolChoiceTypes(BaseModel):
|
||||
type: Literal[
|
||||
"file_search",
|
||||
"web_search_preview",
|
||||
"computer_use_preview",
|
||||
"web_search_preview_2025_03_11",
|
||||
"image_generation",
|
||||
"code_interpreter",
|
||||
]
|
||||
"""The type of hosted tool the model should to use.
|
||||
|
||||
Allowed values are:
|
||||
|
||||
- `file_search`
|
||||
- `web_search_preview`
|
||||
- `computer_use_preview`
|
||||
- `code_interpreter`
|
||||
- `image_generation`
|
||||
"""
|
||||
|
||||
|
||||
class ToolChoiceAllowed(BaseModel):
|
||||
mode: Literal["auto", "required"]
|
||||
"""Constrains the tools available to the model to a pre-defined set.
|
||||
|
||||
`auto` allows the model to pick from among the allowed tools and generate a
|
||||
message.
|
||||
|
||||
`required` requires the model to call one or more of the allowed tools.
|
||||
"""
|
||||
|
||||
tools: List[Dict[str, object]]
|
||||
"""A list of tool definitions that the model should be allowed to call.
|
||||
|
||||
For the Responses API, the list of tool definitions might look like:
|
||||
|
||||
```json
|
||||
[
|
||||
{ "type": "function", "name": "get_weather" },
|
||||
{ "type": "mcp", "server_label": "deepwiki" },
|
||||
{ "type": "image_generation" }
|
||||
]
|
||||
```
|
||||
"""
|
||||
|
||||
type: Literal["allowed_tools"]
|
||||
"""Allowed tool configuration type. Always `allowed_tools`."""
|
||||
|
||||
|
||||
class ToolChoiceFunction(BaseModel):
|
||||
name: str
|
||||
"""The name of the function to call."""
|
||||
|
||||
type: Literal["function"]
|
||||
"""For function calling, the type is always `function`."""
|
||||
|
||||
|
||||
class ToolChoiceMcp(BaseModel):
|
||||
server_label: str
|
||||
"""The label of the MCP server to use."""
|
||||
|
||||
type: Literal["mcp"]
|
||||
"""For MCP tools, the type is always `mcp`."""
|
||||
|
||||
name: Optional[str] = None
|
||||
"""The name of the tool to call on the server."""
|
||||
|
||||
|
||||
class ToolChoiceCustom(BaseModel):
|
||||
name: str
|
||||
"""The name of the custom tool to call."""
|
||||
|
||||
type: Literal["custom"]
|
||||
"""For custom tool calling, the type is always `custom`."""
|
Loading…
Add table
Add a link
Reference in a new issue