text: Title: Chat Interface Throws Error When Model Provider is Ollama but Works in Notebook
  Body: ## Description
  I'm working on a blogpost on Jupyter AI and I had completed the draft. 
  
  Article Draft : https://docs.google.com/document/d/1N59WnVCDOzFX2UdfPW_G-eRet5AkCpNcJGbZ5uXw6HI/edit?usp=sharing
  Everything was working seamlessly as can be seen from the screenshots in the article. The Ollama integration in Jupyter AI worked as expected in both notebooks and the chat interface. However,  now the chat interface throws an error, while the notebook-based interactions still function correctly.
  
  ## Environment Details
  - **OS**:  macOS 14
  - **Python Version**: 3.13.1
  - **JupyterLab Version**:  4.3.6
  - **Jupyter AI Version**:  2.30.0
  
  ## Steps to Reproduce
  
  <img width="1144" alt="Image" src="https://github.com/user-attachments/assets/e12e0caa-9c25-49aa-b450-d91237bff391" />
  
  <img width="657" alt="Image" src="https://github.com/user-attachments/assets/e3a2ed90-ff03-4d2e-8c56-35d4dfe41df0" />
  
  ## Error Message
  Traceback (most recent call last):
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/jupyter_ai/chat_handlers/base.py", line 229, in on_message
      await self.process_message(message)
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/jupyter_ai/chat_handlers/default.py", line 72, in process_message
      await self.stream_reply(inputs, message)
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/jupyter_ai/chat_handlers/base.py", line 567, in stream_reply
      async for chunk in chunk_generator:
      ...<32 lines>...
              break
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 5548, in astream
      async for item in self.bound.astream(
      ...<4 lines>...
          yield item
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 5548, in astream
      async for item in self.bound.astream(
      ...<4 lines>...
          yield item
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3439, in astream
      async for chunk in self.atransform(input_aiter(), config, **kwargs):
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3422, in atransform
      async for chunk in self._atransform_stream_with_config(
      ...<5 lines>...
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 2308, in _atransform_stream_with_config
      chunk: Output = await asyncio.create_task(  # type: ignore[call-arg]
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ...<2 lines>...
      )
      ^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3392, in _atransform
      async for output in final_pipeline:
          yield output
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 5584, in atransform
      async for item in self.bound.atransform(
      ...<4 lines>...
          yield item
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 4954, in atransform
      async for output in self._atransform_stream_with_config(
      ...<5 lines>...
          yield output
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 2308, in _atransform_stream_with_config
      chunk: Output = await asyncio.create_task(  # type: ignore[call-arg]
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ...<2 lines>...
      )
      ^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 4935, in _atransform
      async for chunk in output.astream(
      ...<7 lines>...
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 5548, in astream
      async for item in self.bound.astream(
      ...<4 lines>...
          yield item
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3439, in astream
      async for chunk in self.atransform(input_aiter(), config, **kwargs):
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3422, in atransform
      async for chunk in self._atransform_stream_with_config(
      ...<5 lines>...
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 2308, in _atransform_stream_with_config
      chunk: Output = await asyncio.create_task(  # type: ignore[call-arg]
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ...<2 lines>...
      )
      ^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 3392, in _atransform
      async for output in final_pipeline:
          yield output
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/output_parsers/transform.py", line 85, in atransform
      async for chunk in self._atransform_stream_with_config(
      ...<2 lines>...
          yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 2266, in _atransform_stream_with_config
      final_input: Optional[Input] = await py_anext(input_for_tracing, None)
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/utils/aiter.py", line 74, in anext_impl
      return await __anext__(iterator)
             ^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/utils/aiter.py", line 123, in tee_peer
      item = await iterator.__anext__()
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/runnables/base.py", line 1473, in atransform
      async for output in self.astream(final, config, **kwargs):
          yield output
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_core/language_models/chat_models.py", line 512, in astream
      async for chunk in self._astream(
      ...<14 lines>...
              generation += chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_ollama/chat_models.py", line 755, in _astream
      async for stream_resp in self._acreate_chat_stream(messages, stop, **kwargs):
      ...<23 lines>...
              yield chunk
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/langchain_ollama/chat_models.py", line 575, in _acreate_chat_stream
      async for part in await self._async_client.chat(**chat_params):
          yield part
    File "/Users/parul/Desktop/venv/lib/python3.13/site-packages/ollama/_client.py", line 672, in inner
      raise ResponseError(e.response.text, e.response.status_code) from None
  ollama._types.ResponseError: model is required (status code: 400)
  
  
  Would appreciate any insights from the maintainers. Thanks!