Settings

Theme

Structured Output for LM Studio 0.3.5, OpenAI, Anthropic and Gemini

github.com

2 points by RHab a year ago · 1 comment

Reader

RHabOP a year ago

I am trying to understand structured output from LLMs, and as training I am building a text game.

OpenAI is using pydantic to create objects directly in its beta branch, it's quite nice. Anthropic is a bit more involved, as you need to involve tool calling.

LM Studio 0.3.5 introduced a bug for structured output when using pydantic and enums or literals, I created a workaround.

Also Gemini is not using Pydantic at all, instead TypedDict to create the json scheme.

And Gemini does not have a system message.

I am quite proud to have everything working, if you want to check out my code please take a look: https://github.com/HabermannR/Fantasy-Tribe-Game

Here is the backend: https://github.com/HabermannR/Fantasy-Tribe-Game/blob/main/L...

For example, this is how I call Gemini:

completion = model.generate_content(

messages[0]['content'] + ": " + messages[1]['content'],

generation_config=genai.GenerationConfig(

response_mime_type="application/json", response_schema=response_types.typed_dict

),

)

result = response_types.pydantic_model.model_validate_json(completion.text)

Happy for any feedback!

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection