Using structured outputs
Structured Outputs allow for providing a JSON schema for the outputs that the model has to adhere to in its responses.
First, we need to develop a schema that we want the responses to follow.
format := {'type' -> 'object'. 'properties' -> {'min' -> {'type' -> 'number'} asDictionary. 'max' -> {'type' -> 'number'} asDictionary. 'unit' -> {'type' -> 'string'} asDictionary} asDictionary. 'required' -> {'min'. 'max'. 'unit'}} asDictionary
We can then provide it to a chat and interact with it.
chat := GtLlmChat new provider: (GtOllamaProvider new model: 'llama3.1'; format: format). chat sendMessage: 'Hello Llama! What is the normal temperature range of the human body?'