You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Auto-pricing for LLMs: enable via `auto_pricing=True` to automatically estimate costs using pydantic's `genai-prices`; optional `auto_pricing_refresh=True` refreshes cached price data at runtime.
11
+
12
+
### Refactor
13
+
- Public API made more consistent and stable: user-facing classes are now thin, well-documented facades over internal implementations. No behavior changes.
14
+
- Internal reorganization for maintainability and future-proofing.
15
+
16
+
### Docs
17
+
- Added guidance for configuring auto-pricing for LLMs.
- Suppressed noisy LiteLLM proxy missing-dependency error logs (prompting to install `litellm[proxy]`) emitted by `litellm>=1.75.2` during LLM API calls. ContextGem does not require LiteLLM proxy features. Suppression is scoped to LiteLLM loggers.
- **Adding new functionality?** → Start in `contextgem/public/`, often requires `internal/` changes too
110
+
- **Adding new functionality?** → Implement in `contextgem/internal/` (core logic). Then expose via a thin public facade in `contextgem/public/` using the registry.
106
111
- **Writing tests?** → Add to `tests/test_all.py::TestAll`
107
112
- **Updating docs?** → Edit files in `docs/source/` or `dev/`
> **💡 Note:** New public features typically require supporting changes in internal modules (base classes, prompt templates, type definitions, etc.). Think of `public/` as the user interface and `internal/` as the engine that powers it.
115
+
> **💡 Note:** Implement functionality in `internal/` (base classes, validation, serialization, typing). Use `public/` to expose thin, documented facades that inherit from internal classes and are registered with `@_expose_in_registry` decorator to ensure deserialization and instance creation utils return public types. Do not import public classes in internal modules; use the registry for type resolution and publicization.
Copy file name to clipboardExpand all lines: NOTICE
+1Lines changed: 1 addition & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ This software includes the following third-party components:
25
25
26
26
Core Dependencies:
27
27
- aiolimiter: Rate limiting for asynchronous operations
28
+
- genai-prices: LLM pricing data and utilities (by Pydantic) to automatically estimate costs
28
29
- Jinja2: Templating engine
29
30
- litellm: LLM interface library (this software uses only MIT-licensed portions of LiteLLM and does not utilize any components from the enterprise/ directory)
0 commit comments