lmstudio-ai / lmstudio-ai/lmstudio-python
Structured response not consistently returned
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 875
- Forks
- 166
- PR merge metrics
- No merged PRs in 30d
Description
Environment:
* Python 3.14.2 on Windows
* lmstudio-py version 1.5.0
* LM Studio Bionic 1.0.7 (build 2)
Using the following script, which is essentially the example from the documentation, the returned response is not always structured.
```python
import lmstudio
from lmstudio import BaseModel
# A class based schema for a book
class BookSchema(BaseModel):
title: str
author: str
year: int
model = lmstudio.llm("qwen/qwen3-4b-2507")
result = model.respond("Tell me about The Hobbit", response_format=BookSchema)
book = result.parsed
print(book)
assert result.structured
assert isinstance(book, dict)
```
Here's the output from two consecutive runs, with the script unchanged. One works, one fails the `result.structured` assertion, even though it seems the response contains the correct structured JSON, preceded by its reasoning and `__LM_STUDIO_INTERNAL_LSEP_SYNTHETIC_REASONING_END_`:
```
(.venv) PS C:\Users> python .\test_structured.py
{'author': 'J.R.R. Tolkien', 'title': 'The Hobbit', 'year': 1937}
(.venv) PS C:\Users> python .\test_structured.py
Okay, the user asked "Tell me about The Hobbit." Let me start by recalling the basics. The Hobbit is a fantasy novel by J.R.R. Tolkien, written in the early 20th century. It's a key work in the Middle-earth series, which also includes The Lord of the Rings.
First, I should cover the main plot: Bilbo Baggins, a hobbit, is taken on a journey from the Shire to the land of the dwarves, where he helps them reclaim their homeland from a dragon. The story is framed as a quest that starts with a simple adventure but evolves into a deeper exploration of courage, friendship, and personal growth.
I need to mention the setting—Middle-earth, the Shire, the Misty Mountains, the Lonely Mountain, and the dragon Smaug. Highlighting key characters like Bilbo, Gandalf, the dwarves (like Thorin Oakenshield), and others like Gollum or the trolls adds depth.
Themes are important too—like the hero's journey, the contrast between hobbits and other races, and how the story introduces elements of magic and myth. Also, note that The Hobbit is a children's book but has mature themes.
I should also mention its significance in literature and popular culture—how it influenced fantasy genres and inspired films by Peter Jackson. Maybe touch on the tone: whimsical at first, then darker as it progresses.
Avoid getting too detailed or going off track. Keep it structured but conversational. Make sure to clarify that The Hobbit is a standalone story but part of a larger universe. Also, note that it was published in 1937 and is one of the foundational works of modern fantasy.
Check if the user might be looking for a summary, themes, characters, or cultural impact. Since they just said "tell me about," a balanced overview should work. No need to go into deep analysis unless asked.
Finally, end with a note on its legacy—how it's beloved and influential, even though it's not as complex as The Lord of the Rings.
__LM_STUDIO_INTERNAL_LSEP_SYNTHETIC_REASONING_END_f4e9a8d2c6b14d0c9e5f3a7b8c1d2e6a__{
"author": "J.R.R. Tolkien",
"title": "The Hobbit",
"year": 1937
}
Traceback (most recent call last):
File "C:\Users\test_structured.py", line 15, in
assert result.structured
^^^^^^^^^^^^^^^^^
AssertionError
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reproduced Python script and the model.respond(..., response_format=BookSchema) entry point, then follow how result.parsed and result.structured are set when reasoning precedes the JSON. Done means consecutive runs consistently mark the response as structured and preserve the parsed BookSchema data.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100