openai, anthropic, ...: with_structured_output to pass in explicit tool choice (#23645)

...community, mistralai, groq, fireworks

part of #23644
This commit is contained in:
Bagatur
2024-06-28 16:39:53 -07:00
committed by GitHub
parent c5f35a72da
commit fc8fd49328
7 changed files with 22 additions and 16 deletions

View File

@@ -531,15 +531,15 @@ class ChatLlamaCpp(BaseChatModel):
"schema must be specified when method is 'function_calling'. "
"Received None."
)
llm = self.bind_tools([schema], tool_choice=True)
tool_name = convert_to_openai_tool(schema)["function"]["name"]
llm = self.bind_tools([schema], tool_choice=tool_name)
if is_pydantic_schema:
output_parser: OutputParserLike = PydanticToolsParser(
tools=[cast(Type, schema)], first_tool_only=True
)
else:
key_name = convert_to_openai_tool(schema)["function"]["name"]
output_parser = JsonOutputKeyToolsParser(
key_name=key_name, first_tool_only=True
key_name=tool_name, first_tool_only=True
)
if include_raw: