mirror of
https://github.com/arc53/DocsGPT.git
synced 2025-11-29 00:23:17 +00:00
* feat: Implement model registry and capabilities for multi-provider support - Added ModelRegistry to manage available models and their capabilities. - Introduced ModelProvider enum for different LLM providers. - Created ModelCapabilities dataclass to define model features. - Implemented methods to load models based on API keys and settings. - Added utility functions for model management in model_utils.py. - Updated settings.py to include provider-specific API keys. - Refactored LLM classes (Anthropic, OpenAI, Google, etc.) to utilize new model registry. - Enhanced utility functions to handle token limits and model validation. - Improved code structure and logging for better maintainability. * feat: Add model selection feature with API integration and UI component * feat: Add model selection and default model functionality in agent management * test: Update assertions and formatting in stream processing tests * refactor(llm): Standardize model identifier to model_id * fix tests --------- Co-authored-by: Alex <a@tushynski.me>
26 lines
948 B
Python
26 lines
948 B
Python
from flask import current_app, jsonify, make_response
|
|
from flask_restx import Namespace, Resource
|
|
|
|
from application.core.model_settings import ModelRegistry
|
|
|
|
models_ns = Namespace("models", description="Available models", path="/api")
|
|
|
|
|
|
@models_ns.route("/models")
|
|
class ModelsListResource(Resource):
|
|
def get(self):
|
|
"""Get list of available models with their capabilities."""
|
|
try:
|
|
registry = ModelRegistry.get_instance()
|
|
models = registry.get_enabled_models()
|
|
|
|
response = {
|
|
"models": [model.to_dict() for model in models],
|
|
"default_model_id": registry.default_model_id,
|
|
"count": len(models),
|
|
}
|
|
except Exception as err:
|
|
current_app.logger.error(f"Error fetching models: {err}", exc_info=True)
|
|
return make_response(jsonify({"success": False}), 500)
|
|
return make_response(jsonify(response), 200)
|