Description
Problem
The ConfigManager
has caused several bugs for Jupyter AI users in the past.
Proposed Solution
-
Remove the "config schema" feature in
ConfigManager
, which is largely unused. The config schema has introduced significant complexity because it adds an additional layer of validation instead of re-using our existing validators like Pydantic. The schema file also needs to be migrated when Jupyter AI adds a new field in a future release. -
Explore separating API keys away from model providers and just allow users to add any key name w/ any key value. Allow users to select which API key gets used per-model. Sometimes users need multiple API keys for the same provider.
-
Explore making config scoped to the Python environment instead of being globally available to all environments. This would prevent any bug introduced by using multiple versions of JAI simultaneously.
-
See proposal in [v3-beta] EPIC: Define new API for models & model providers #1312 as well.
Additional context
@ellisonbg What are your thoughts on this? Since this may introduce API-breaking changes, I think this makes sense to address prior to v3, but I can move this to v3-future if you think that is preferable.