This helps control the mode when
llm.structured_predict()
is called (been meaning to make this method more used in the framework, but you can also use it directly too)
Specifically, its controlling the type of pydantic program being used
- default tries FunctionCallingProgram (openai, anthropic, mistral), if that fails, it uses LLMTextCompletionProgram
- guidance is GuidancePydanticProgram, it uses the guidance library under the hood (i'm not entirely sure if this works with every llm?)
- llm format enforcer is another library, I also think it only works with specific LLMs