mirror of
https://github.com/lfnovo/open-notebook.git
synced 2026-04-30 20:39:55 +00:00
New front-end Launch Chat API Manage Sources Enable re-embedding of all contents Sources can be added without a notebook now Improved settings Enable model selector on all chats Background processing for better experience Dark mode Improved Notes Improved Docs: - Remove all Streamlit references from documentation - Update deployment guides with React frontend setup - Fix Docker environment variables format (SURREAL_URL, SURREAL_PASSWORD) - Update docker image tag from :latest to :v1-latest - Change navigation references (Settings → Models to just Models) - Update development setup to include frontend npm commands - Add MIGRATION.md guide for users upgrading from Streamlit - Update quick-start guide with correct environment variables - Add port 5055 documentation for API access - Update project structure to reflect frontend/ directory - Remove outdated source-chat documentation files
58 lines
No EOL
2.5 KiB
Python
58 lines
No EOL
2.5 KiB
Python
"""
|
|
Settings service layer using API.
|
|
"""
|
|
|
|
|
|
from loguru import logger
|
|
|
|
from api.client import api_client
|
|
from open_notebook.domain.content_settings import ContentSettings
|
|
|
|
|
|
class SettingsService:
|
|
"""Service layer for settings operations using API."""
|
|
|
|
def __init__(self):
|
|
logger.info("Using API for settings operations")
|
|
|
|
def get_settings(self) -> ContentSettings:
|
|
"""Get application settings."""
|
|
settings_response = api_client.get_settings()
|
|
settings_data = settings_response if isinstance(settings_response, dict) else settings_response[0]
|
|
|
|
# Create ContentSettings object from API response
|
|
settings = ContentSettings(
|
|
default_content_processing_engine_doc=settings_data.get("default_content_processing_engine_doc"),
|
|
default_content_processing_engine_url=settings_data.get("default_content_processing_engine_url"),
|
|
default_embedding_option=settings_data.get("default_embedding_option"),
|
|
auto_delete_files=settings_data.get("auto_delete_files"),
|
|
youtube_preferred_languages=settings_data.get("youtube_preferred_languages"),
|
|
)
|
|
|
|
return settings
|
|
|
|
def update_settings(self, settings: ContentSettings) -> ContentSettings:
|
|
"""Update application settings."""
|
|
updates = {
|
|
"default_content_processing_engine_doc": settings.default_content_processing_engine_doc,
|
|
"default_content_processing_engine_url": settings.default_content_processing_engine_url,
|
|
"default_embedding_option": settings.default_embedding_option,
|
|
"auto_delete_files": settings.auto_delete_files,
|
|
"youtube_preferred_languages": settings.youtube_preferred_languages,
|
|
}
|
|
|
|
settings_response = api_client.update_settings(**updates)
|
|
settings_data = settings_response if isinstance(settings_response, dict) else settings_response[0]
|
|
|
|
# Update the settings object with the response
|
|
settings.default_content_processing_engine_doc = settings_data.get("default_content_processing_engine_doc")
|
|
settings.default_content_processing_engine_url = settings_data.get("default_content_processing_engine_url")
|
|
settings.default_embedding_option = settings_data.get("default_embedding_option")
|
|
settings.auto_delete_files = settings_data.get("auto_delete_files")
|
|
settings.youtube_preferred_languages = settings_data.get("youtube_preferred_languages")
|
|
|
|
return settings
|
|
|
|
|
|
# Global service instance
|
|
settings_service = SettingsService() |