mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-07 14:52:39 +02:00
refactor(multi-agent): add main-agent knowledge middleware factories
This commit is contained in:
parent
6a4dacda72
commit
390dc9307f
3 changed files with 73 additions and 0 deletions
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""Commit staged cloud filesystem mutations to Postgres at end of turn."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from app.agents.new_chat.filesystem_selection import FilesystemMode
|
||||||
|
from app.agents.new_chat.middleware import KnowledgeBasePersistenceMiddleware
|
||||||
|
|
||||||
|
|
||||||
|
def build_kb_persistence_mw(
|
||||||
|
*,
|
||||||
|
filesystem_mode: FilesystemMode,
|
||||||
|
search_space_id: int,
|
||||||
|
user_id: str | None,
|
||||||
|
thread_id: int | None,
|
||||||
|
) -> KnowledgeBasePersistenceMiddleware | None:
|
||||||
|
if filesystem_mode != FilesystemMode.CLOUD:
|
||||||
|
return None
|
||||||
|
return KnowledgeBasePersistenceMiddleware(
|
||||||
|
search_space_id=search_space_id,
|
||||||
|
created_by_id=user_id,
|
||||||
|
filesystem_mode=filesystem_mode,
|
||||||
|
thread_id=thread_id,
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
"""KB priority planner: <priority_documents> injection."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.new_chat.filesystem_selection import FilesystemMode
|
||||||
|
from app.agents.new_chat.middleware import KnowledgePriorityMiddleware
|
||||||
|
|
||||||
|
|
||||||
|
def build_knowledge_priority_mw(
|
||||||
|
*,
|
||||||
|
llm: BaseChatModel,
|
||||||
|
search_space_id: int,
|
||||||
|
filesystem_mode: FilesystemMode,
|
||||||
|
available_connectors: list[str] | None,
|
||||||
|
available_document_types: list[str] | None,
|
||||||
|
mentioned_document_ids: list[int] | None,
|
||||||
|
) -> KnowledgePriorityMiddleware:
|
||||||
|
return KnowledgePriorityMiddleware(
|
||||||
|
llm=llm,
|
||||||
|
search_space_id=search_space_id,
|
||||||
|
filesystem_mode=filesystem_mode,
|
||||||
|
available_connectors=available_connectors,
|
||||||
|
available_document_types=available_document_types,
|
||||||
|
mentioned_document_ids=mentioned_document_ids,
|
||||||
|
)
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""<workspace_tree> injection (cloud only)."""
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.new_chat.filesystem_selection import FilesystemMode
|
||||||
|
from app.agents.new_chat.middleware import KnowledgeTreeMiddleware
|
||||||
|
|
||||||
|
|
||||||
|
def build_knowledge_tree_mw(
|
||||||
|
*,
|
||||||
|
filesystem_mode: FilesystemMode,
|
||||||
|
search_space_id: int,
|
||||||
|
llm: BaseChatModel,
|
||||||
|
) -> KnowledgeTreeMiddleware | None:
|
||||||
|
if filesystem_mode != FilesystemMode.CLOUD:
|
||||||
|
return None
|
||||||
|
return KnowledgeTreeMiddleware(
|
||||||
|
search_space_id=search_space_id,
|
||||||
|
filesystem_mode=filesystem_mode,
|
||||||
|
llm=llm,
|
||||||
|
)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue