fix 文档管理模块 & 法规对话模块
This commit is contained in:
@@ -17,18 +17,31 @@ from app.infrastructure.parser.vector_chunk_builder import AliyunVectorChunkBuil
|
||||
from app.infrastructure.session.in_memory_conversation_store import InMemoryConversationStore
|
||||
from app.infrastructure.storage.json_document_repository import JsonDocumentRepository
|
||||
from app.infrastructure.storage.minio_binary_store import MinioDocumentBinaryStore
|
||||
from app.infrastructure.storage.postgres_document_repository import PostgresDocumentRepository
|
||||
from app.infrastructure.storage.postgres_parse_artifact_store import PostgresParseArtifactStore
|
||||
from app.infrastructure.vectorstore.dense_retriever import DenseRetriever
|
||||
from app.infrastructure.vectorstore.milvus_vector_index import MilvusVectorIndex
|
||||
from app.infrastructure.vectorstore.cross_encoder_reranker import OpenAICompatibleReranker
|
||||
# Keep shared wiring centralized so dependency construction remains consistent.
|
||||
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_document_repository() -> JsonDocumentRepository:
|
||||
"""Return document repository."""
|
||||
def get_document_repository():
|
||||
"""Return document repository (json or postgres, controlled by settings)."""
|
||||
if settings.document_repository_backend == "postgres":
|
||||
return PostgresDocumentRepository()
|
||||
return JsonDocumentRepository(settings.document_metadata_path)
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_parse_artifact_store():
|
||||
"""Return parse artifact store, or None when postgres backend is not enabled."""
|
||||
if settings.document_repository_backend == "postgres":
|
||||
return PostgresParseArtifactStore()
|
||||
return None
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_binary_store() -> MinioDocumentBinaryStore:
|
||||
"""Return binary store."""
|
||||
@@ -66,6 +79,14 @@ def get_vector_index() -> MilvusVectorIndex:
|
||||
return MilvusVectorIndex()
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_reranker():
|
||||
"""Return reranker if enabled, else None."""
|
||||
if settings.reranker_enabled and settings.reranker_base_url:
|
||||
return OpenAICompatibleReranker()
|
||||
return None
|
||||
|
||||
|
||||
@lru_cache
|
||||
def get_retrieval_service() -> KnowledgeRetrievalService:
|
||||
"""Return retrieval service."""
|
||||
@@ -73,7 +94,11 @@ def get_retrieval_service() -> KnowledgeRetrievalService:
|
||||
embedding_provider=get_embedding_provider(),
|
||||
vector_index=get_vector_index(),
|
||||
)
|
||||
return KnowledgeRetrievalService(retriever=retriever)
|
||||
return KnowledgeRetrievalService(
|
||||
retriever=retriever,
|
||||
reranker=get_reranker(),
|
||||
reranker_top_k=settings.reranker_top_k,
|
||||
)
|
||||
|
||||
|
||||
@lru_cache
|
||||
@@ -86,6 +111,7 @@ def get_document_command_service() -> DocumentCommandService:
|
||||
chunk_builder=get_chunk_builder(),
|
||||
embedding_provider=get_embedding_provider(),
|
||||
vector_index=get_vector_index(),
|
||||
parse_artifact_store=get_parse_artifact_store(),
|
||||
)
|
||||
|
||||
|
||||
@@ -95,6 +121,7 @@ def get_document_query_service() -> DocumentQueryService:
|
||||
return DocumentQueryService(
|
||||
document_repository=get_document_repository(),
|
||||
binary_store=get_binary_store(),
|
||||
vector_index=get_vector_index(),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user