with_structured_output() — langchain Function Reference
Architecture documentation for the with_structured_output() function in chat_models.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 084e9113_8b87_5fd4_9b7b_39a8de8d9c28["with_structured_output()"] f3181e26_0568_4993_612c_5b8d73ad3c37["ChatDeepSeek"] 084e9113_8b87_5fd4_9b7b_39a8de8d9c28 -->|defined in| f3181e26_0568_4993_612c_5b8d73ad3c37 style 084e9113_8b87_5fd4_9b7b_39a8de8d9c28 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/deepseek/langchain_deepseek/chat_models.py lines 439–542
def with_structured_output(
self,
schema: _DictOrPydanticClass | None = None,
*,
method: Literal[
"function_calling",
"json_mode",
"json_schema",
] = "function_calling",
include_raw: bool = False,
strict: bool | None = None,
**kwargs: Any,
) -> Runnable[LanguageModelInput, _DictOrPydantic]:
"""Model wrapper that returns outputs formatted to match the given schema.
Args:
schema: The output schema. Can be passed in as:
- An OpenAI function/tool schema,
- A JSON Schema,
- A `TypedDict` class,
- Or a Pydantic class.
If `schema` is a Pydantic class then the model output will be a
Pydantic instance of that class, and the model-generated fields will be
validated by the Pydantic class. Otherwise the model output will be a
dict and will not be validated.
See `langchain_core.utils.function_calling.convert_to_openai_tool` for
more on how to properly specify types and descriptions of schema fields
when specifying a Pydantic or `TypedDict` class.
method: The method for steering model generation, one of:
- `'function_calling'`:
Uses DeepSeek's [tool-calling features](https://api-docs.deepseek.com/guides/function_calling).
- `'json_mode'`:
Uses DeepSeek's [JSON mode feature](https://api-docs.deepseek.com/guides/json_mode).
include_raw:
If `False` then only the parsed structured output is returned.
If an error occurs during model output parsing it will be raised.
If `True` then both the raw model response (a `BaseMessage`) and the
parsed model response will be returned.
If an error occurs during output parsing it will be caught and returned
as well.
The final output is always a `dict` with keys `'raw'`, `'parsed'`, and
`'parsing_error'`.
strict:
Whether to enable strict schema adherence when generating the function
call. When set to `True`, DeepSeek will use the beta API endpoint
(`https://api.deepseek.com/beta`) for strict schema validation.
This ensures model outputs exactly match the defined schema.
!!! note
DeepSeek's strict mode requires all object properties to be marked
as required in the schema.
kwargs: Additional keyword args aren't supported.
Returns:
A `Runnable` that takes same inputs as a
`langchain_core.language_models.chat.BaseChatModel`. If `include_raw` is
`False` and `schema` is a Pydantic class, `Runnable` outputs an instance
of `schema` (i.e., a Pydantic object). Otherwise, if `include_raw` is
`False` then `Runnable` outputs a `dict`.
If `include_raw` is `True`, then `Runnable` outputs a `dict` with keys:
- `'raw'`: `BaseMessage`
- `'parsed'`: `None` if there was a parsing error, otherwise the type
depends on the `schema` as described above.
- `'parsing_error'`: `BaseException | None`
"""
# Some applications require that incompatible parameters (e.g., unsupported
Domain
Subdomains
Source
Frequently Asked Questions
What does with_structured_output() do?
with_structured_output() is a function in the langchain codebase, defined in libs/partners/deepseek/langchain_deepseek/chat_models.py.
Where is with_structured_output() defined?
with_structured_output() is defined in libs/partners/deepseek/langchain_deepseek/chat_models.py at line 439.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free