feat: add privacy-aware hybrid routing
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
from javis.core.chat_service import ChatService
|
||||
from javis.memory.sqlite_store import SQLiteSessionStore
|
||||
from javis.providers.base import ChatMessage
|
||||
|
||||
|
||||
class _CompatibleHybrid:
|
||||
name = "hybrid"
|
||||
model = "auto"
|
||||
|
||||
def chat(self, messages: list[ChatMessage]) -> str:
|
||||
return "Antwort"
|
||||
|
||||
def supports_session(self, provider: str, model: str) -> bool:
|
||||
return (provider, model) in {
|
||||
("hybrid", "auto"),
|
||||
("ollama", "qwen3:8b"),
|
||||
}
|
||||
|
||||
|
||||
class HybridChatServiceTests(unittest.TestCase):
|
||||
def test_old_local_session_remains_loadable_after_hybrid_upgrade(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temporary_directory:
|
||||
store = SQLiteSessionStore(Path(temporary_directory) / "sessions.sqlite3")
|
||||
old_session = store.create_session("ollama", "qwen3:8b")
|
||||
store.append_exchange(old_session.id, "Alt", "Verlauf")
|
||||
service = ChatService(store, _CompatibleHybrid())
|
||||
|
||||
loaded = service.load_session(old_session.id)
|
||||
|
||||
self.assertEqual([message.content for message in loaded.messages], ["Alt", "Verlauf"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user