Version 1 (#160)

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
This commit is contained in:
Luis Novo 2025-10-18 12:46:22 -03:00 committed by GitHub
parent 124d7d110c
commit b7e656a319
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
319 changed files with 46747 additions and 7408 deletions

View file

@ -34,7 +34,8 @@ class InsightsService:
def get_insight(self, insight_id: str) -> SourceInsight:
"""Get a specific insight."""
insight_data = api_client.get_insight(insight_id)
insight_response = api_client.get_insight(insight_id)
insight_data = insight_response if isinstance(insight_response, dict) else insight_response[0]
insight = SourceInsight(
insight_type=insight_data["insight_type"],
content=insight_data["content"],
@ -42,8 +43,7 @@ class InsightsService:
insight.id = insight_data["id"]
insight.created = insight_data["created"]
insight.updated = insight_data["updated"]
# Store source_id as an attribute for easy access
insight._source_id = insight_data["source_id"]
# Note: source_id from API response is not stored; use await insight.get_source() if needed
return insight
def delete_insight(self, insight_id: str) -> bool:
@ -53,7 +53,8 @@ class InsightsService:
def save_insight_as_note(self, insight_id: str, notebook_id: Optional[str] = None) -> Note:
"""Convert an insight to a note."""
note_data = api_client.save_insight_as_note(insight_id, notebook_id)
note_response = api_client.save_insight_as_note(insight_id, notebook_id)
note_data = note_response if isinstance(note_response, dict) else note_response[0]
note = Note(
title=note_data["title"],
content=note_data["content"],
@ -66,7 +67,8 @@ class InsightsService:
def create_source_insight(self, source_id: str, transformation_id: str, model_id: Optional[str] = None) -> SourceInsight:
"""Create a new insight for a source by running a transformation."""
insight_data = api_client.create_source_insight(source_id, transformation_id, model_id)
insight_response = api_client.create_source_insight(source_id, transformation_id, model_id)
insight_data = insight_response if isinstance(insight_response, dict) else insight_response[0]
insight = SourceInsight(
insight_type=insight_data["insight_type"],
content=insight_data["content"],
@ -74,7 +76,7 @@ class InsightsService:
insight.id = insight_data["id"]
insight.created = insight_data["created"]
insight.updated = insight_data["updated"]
insight._source_id = insight_data["source_id"]
# Note: source_id from API response is not stored; use await insight.get_source() if needed
return insight