ragbits-chat 1.4.0.dev202512100237__tar.gz → 1.4.0.dev202512151244__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/.gitignore +1 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/CHANGELOG.md +2 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/PKG-INFO +2 -2
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/pyproject.toml +2 -2
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/_interface.py +7 -12
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/README.md +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/_utils.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/api.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/auth/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/auth/backends.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/auth/base.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/auth/types.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/cli.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/client/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/client/client.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/client/conversation.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/client/exceptions.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/history/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/history/compressors/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/history/compressors/base.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/history/compressors/llm.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/forms.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/summary.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/types.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/interface/ui_customization.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/metrics.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/persistence/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/persistence/base.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/persistence/file.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/persistence/sql.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/providers/__init__.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/providers/model_provider.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/py.typed +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/AuthGuard-B326tmZN.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/ChatHistory-Cp_DhrUx.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/ChatOptionsForm-CNjzbIqN.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/FeedbackForm-CmRSbYPS.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/Login-Djq6QJ18.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/LogoutButton-Cn2L63Hk.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/ShareButton-lYj0v67r.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/UsageButton-B-N1J-sZ.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/authStore-DATNN-ps.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/chunk-IGSAU2ZA-CsJAveMU.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/chunk-SSA7SXE4-BJI2Gxdq.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/index-B3hlerKe.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/index-B7bSwAmw.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/index-C_JcEI3R.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/index-CmsICuOz.css +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/index-v15bx9Do.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/useMenuTriggerState-CTz3KfPq.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/assets/useSelectableItem-DK6eABKK.js +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/ui-build/index.html +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/auth/test_list_auth_backend.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/history/test_llm_compressor.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/persistence/test_sql.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_api.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_chat_client.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_conversation.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_error_response.py +0 -0
- {ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_generic_custom_response.py +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
- Make `SummaryGenerator` optional in `ChatInterface` by providing a default Heuristic implementation.
|
|
5
6
|
- Refactor ragbits-client types to remove excessive use of any (#881)
|
|
6
7
|
- Split params into path params, query params in API client (#871)
|
|
7
8
|
- Fix bug causing conversation not to be selected when navigating to it from url(#872)
|
|
@@ -15,6 +16,7 @@
|
|
|
15
16
|
|
|
16
17
|
### Added
|
|
17
18
|
|
|
19
|
+
- Make `SummaryGenerator` optional in `ChatInterface` by providing a default no-op implementation.
|
|
18
20
|
- Add automatic topic extraction to be used as conversation title with ability to edit in the client side (#840)
|
|
19
21
|
- Add todo list component to the UI, add support for todo events in API (#827)
|
|
20
22
|
- Add custom response type to the chat interface with full type safety and validation (#849)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ragbits-chat
|
|
3
|
-
Version: 1.4.0.
|
|
3
|
+
Version: 1.4.0.dev202512151244
|
|
4
4
|
Summary: Building blocks for rapid development of GenAI applications
|
|
5
5
|
Project-URL: Homepage, https://github.com/deepsense-ai/ragbits
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/deepsense-ai/ragbits/issues
|
|
@@ -26,7 +26,7 @@ Requires-Dist: bcrypt>=4.2.0
|
|
|
26
26
|
Requires-Dist: fastapi<1.0.0,>=0.115.0
|
|
27
27
|
Requires-Dist: httpx<1.0.0,>=0.28.1
|
|
28
28
|
Requires-Dist: python-jose[cryptography]>=3.5.0
|
|
29
|
-
Requires-Dist: ragbits-core==1.4.0.
|
|
29
|
+
Requires-Dist: ragbits-core==1.4.0.dev202512151244
|
|
30
30
|
Requires-Dist: uvicorn<1.0.0,>=0.31.0
|
|
31
31
|
Provides-Extra: sql
|
|
32
32
|
Requires-Dist: sqlalchemy<3.0.0,>=2.0.39; extra == 'sql'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ragbits-chat"
|
|
3
|
-
version = "1.4.0.
|
|
3
|
+
version = "1.4.0.dev202512151244"
|
|
4
4
|
description = "Building blocks for rapid development of GenAI applications"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -31,7 +31,7 @@ classifiers = [
|
|
|
31
31
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
32
32
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
33
33
|
]
|
|
34
|
-
dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.4.0.
|
|
34
|
+
dependencies = ["fastapi>=0.115.0,<1.0.0", "uvicorn>=0.31.0,<1.0.0", "httpx>=0.28.1,<1.0.0", "bcrypt>=4.2.0", "python-jose[cryptography]>=3.5.0", "ragbits-core==1.4.0.dev202512151244"]
|
|
35
35
|
|
|
36
36
|
[project.urls]
|
|
37
37
|
"Homepage" = "https://github.com/deepsense-ai/ragbits"
|
|
@@ -10,7 +10,7 @@ from collections.abc import AsyncGenerator, Callable
|
|
|
10
10
|
from typing import Any
|
|
11
11
|
|
|
12
12
|
from ragbits.agents.tools.todo import Task
|
|
13
|
-
from ragbits.chat.interface.summary import SummaryGenerator
|
|
13
|
+
from ragbits.chat.interface.summary import HeuristicSummaryGenerator, SummaryGenerator
|
|
14
14
|
from ragbits.chat.interface.ui_customization import UICustomization
|
|
15
15
|
from ragbits.core.audit.metrics import record_metric
|
|
16
16
|
from ragbits.core.audit.metrics.base import MetricType
|
|
@@ -108,16 +108,14 @@ def with_chat_metadata( # noqa: PLR0915
|
|
|
108
108
|
# Generate summary to serve as title for new conversations
|
|
109
109
|
try:
|
|
110
110
|
summary = await self.generate_conversation_summary(message, history, context)
|
|
111
|
-
|
|
111
|
+
if summary:
|
|
112
|
+
yield ConversationSummaryResponse(content=ConversationSummaryContent(summary=summary))
|
|
112
113
|
except Exception:
|
|
113
114
|
logger.exception("Failed to generate conversation title")
|
|
114
115
|
|
|
115
|
-
responses = []
|
|
116
|
-
main_response = ""
|
|
117
|
-
extra_responses: list[ChatResponseUnion] = []
|
|
116
|
+
responses, main_response, extra_responses = [], "", []
|
|
118
117
|
timestamp = time.time()
|
|
119
|
-
response_token_count = 0.0
|
|
120
|
-
first_token_time = None
|
|
118
|
+
response_token_count, first_token_time = 0.0, None
|
|
121
119
|
|
|
122
120
|
try:
|
|
123
121
|
async for response in func(self, message, history, context):
|
|
@@ -212,7 +210,7 @@ class ChatInterface(ABC):
|
|
|
212
210
|
show_usage: bool = False
|
|
213
211
|
ui_customization: UICustomization | None = None
|
|
214
212
|
history_persistence: HistoryPersistenceStrategy | None = None
|
|
215
|
-
summary_generator: SummaryGenerator
|
|
213
|
+
summary_generator: SummaryGenerator = HeuristicSummaryGenerator()
|
|
216
214
|
|
|
217
215
|
def __init_subclass__(cls, **kwargs: dict) -> None:
|
|
218
216
|
"""Automatically apply the with_chat_metadata decorator to the chat method in subclasses."""
|
|
@@ -395,8 +393,5 @@ class ChatInterface(ABC):
|
|
|
395
393
|
logger.info(f"[{self.__class__.__name__}] Saving {feedback} for message {message_id} with payload {payload}")
|
|
396
394
|
|
|
397
395
|
async def generate_conversation_summary(self, message: str, history: ChatFormat, context: ChatContext) -> str:
|
|
398
|
-
"""
|
|
399
|
-
if not self.summary_generator:
|
|
400
|
-
raise Exception("Tried to invoke `generate_conversation_summary`. No SummaryGenerator found.")
|
|
401
|
-
|
|
396
|
+
"""Handles conversation summary generation using the configured summary_generator."""
|
|
402
397
|
return await self.summary_generator.generate(message, history, context)
|
|
File without changes
|
|
File without changes
|
{ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/_utils.py
RENAMED
|
File without changes
|
{ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/src/ragbits/chat/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ragbits_chat-1.4.0.dev202512100237 → ragbits_chat-1.4.0.dev202512151244}/tests/unit/test_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|