feat(minor): Support OpenRouter's `include_reasoning` param in `extra_body` portion of OpenAI API call.
Also: - Set up mechanism to automatically drop inapplicable parameters, via [`OpenAI_API_ParamInfo`](https://github.com/langroid/langroid/blob/main/langroid/language_models/model_info.py) class.
This allows code to use model-specific params like `reasoning_effort` (only supported by `o3-mini`) or `include_reasoning` (only supported by OpenRouter when using `deepseek/deepseek-r1`), without causing errors when switching to other models that don't support those params. See this [note](https://langroid.github.io/langroid/notes/reasoning-content/)
0.39.3
feat: added local-storage option for [Weaviate](https://github.com/langroid/langroid/blob/main/langroid/vector_store/weaviatedb.py)
Also: - Refactor `DocChatAgent` citations code
0.39.2
feat(minor): expand allowed values of `ChatAgentConfig.handle_llm_no_tool`
See updated [docs](https://langroid.github.io/langroid/notes/handle-llm-no-tool/)
0.39.1
chore: unify all LLM-related info in [`language_models/model-info.py`](https://github.com/langroid/langroid/blob/main/langroid/language_models/model_info.py)
Also: - Support `o3-mini`, including `reasoning_effort` param. See example script [`agent-reasoning.py`](https://github.com/langroid/langroid/tree/main/examples/reasoning) - Renamed `ChatAgentConfig.non_tool_routing` to `ChatAgentConfig.handle_llm_no_tool`, [docs](https://langroid.github.io/langroid/notes/handle-llm-no-tool.md) updated
0.39.0
feat: `ChatAgentConfig.non_tool_routing` to simplify routing of non-tool LLM messages
Normally we would have to define a `handle_message_fallback` method, but in many case we can just set this config which is used to define the action taken by `handle_message_fallback`. See [docs](https://langroid.github.io/langroid/notes/routing-llm-no-tool/).
NOTE - we've renamed this config param to `ChatAgentConfig.handle_llm_no_tool` and broadened its set of allowable values as of v 0.39.2