mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2026-03-08 06:33:51 +01:00
API: Accept content:null and complex tool definitions in tool calling requests
This commit is contained in:
parent
93ebfa2b7e
commit
3880c1a406
|
|
@ -197,7 +197,11 @@ def chat_completions_common(body: dict, is_legacy: bool = False, stream=False, p
|
|||
# Handle multimodal content validation
|
||||
content = m.get('content')
|
||||
if content is None:
|
||||
raise InvalidRequestError(message="messages: missing content", param='messages')
|
||||
# OpenAI allows content: null on assistant messages when tool_calls is present
|
||||
if m['role'] == 'assistant' and m.get('tool_calls'):
|
||||
m['content'] = ''
|
||||
else:
|
||||
raise InvalidRequestError(message="messages: missing content", param='messages')
|
||||
|
||||
# Validate multimodal content structure
|
||||
if isinstance(content, list):
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import json
|
||||
import time
|
||||
from typing import Dict, List, Optional
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from pydantic import BaseModel, Field, model_validator, validator
|
||||
from pydantic import BaseModel, ConfigDict, Field, model_validator, validator
|
||||
|
||||
from modules import shared
|
||||
|
||||
|
|
@ -65,22 +65,20 @@ class ToolDefinition(BaseModel):
|
|||
|
||||
|
||||
class ToolFunction(BaseModel):
|
||||
model_config = ConfigDict(extra='allow')
|
||||
description: str
|
||||
name: str
|
||||
parameters: 'ToolParameters'
|
||||
|
||||
|
||||
class ToolParameters(BaseModel):
|
||||
properties: Optional[Dict[str, 'ToolProperty']] = None
|
||||
model_config = ConfigDict(extra='allow')
|
||||
properties: Optional[Dict[str, Any]] = None
|
||||
required: Optional[list[str]] = None
|
||||
type: str
|
||||
description: Optional[str] = None
|
||||
|
||||
|
||||
class ToolProperty(BaseModel):
|
||||
description: Optional[str] = None
|
||||
type: Optional[str] = None # we are faced with definitions like anyOf, e.g. {'type': 'function', 'function': {'name': 'git_create_branch', 'description': 'Creates a new branch from an optional base branch', 'parameters': {'type': 'object', 'properties': {'repo_path': {'title': 'Repo Path', 'type': 'string'}, 'branch_name': {'title': 'Branch Name', 'type': 'string'}, 'base_branch': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'title': 'Base Branch'}}, 'required': ['repo_path', 'branch_name'], 'title': 'GitCreateBranch'}}}
|
||||
|
||||
|
||||
class FunctionCall(BaseModel):
|
||||
name: str
|
||||
|
|
|
|||
Loading…
Reference in a new issue