新增工程信息、检索的知识片段节点回传、下一轮建议问题列表
This commit is contained in:
@@ -8,9 +8,18 @@ from app.engine.engine import create_query_engine, create_summary_query_engine
|
||||
from app.engine.index import get_index
|
||||
#from app.engine.loaders.db import makeDescriptionByEngine
|
||||
from app.engine.tools import ToolFactory
|
||||
from app.api.routers.request.base import ProjectInfo
|
||||
|
||||
def getPrjFalg(params:dict=None)->str:
|
||||
prjFlag = ''
|
||||
if params is not None:
|
||||
inputs:dict = params.get('inputs')
|
||||
if inputs is not None:
|
||||
prjFlag = ProjectInfo.prjFalg(inputs.get('projectname'))
|
||||
return prjFlag
|
||||
|
||||
|
||||
def get_chat_engine(filters=None, params=None,**args):
|
||||
def get_chat_engine(filters=None, params:dict=None):
|
||||
system_prompt = os.getenv("SYSTEM_PROMPT")
|
||||
top_k = int(os.getenv("TOP_K", "3"))
|
||||
use_reranker = os.getenv("RERANK_ENABLED")
|
||||
@@ -24,7 +33,13 @@ def get_chat_engine(filters=None, params=None,**args):
|
||||
#tools.append(sql_query_tool)
|
||||
|
||||
# Add query tool if index exists
|
||||
index = get_index(**args)
|
||||
prjFlag = ''
|
||||
if params is not None:
|
||||
inputs:dict = params.get('inputs')
|
||||
if inputs is not None:
|
||||
prjFlag = inputs.get('projectname')
|
||||
|
||||
index = get_index(prjFlag = getPrjFalg(params))
|
||||
if index is not None:
|
||||
summary_query_engine = create_summary_query_engine(index,top_k,use_reranker,filters)
|
||||
summary_query_tool = QueryEngineTool.from_defaults( query_engine=summary_query_engine, name="summary_query_tool",
|
||||
@@ -57,6 +72,7 @@ def get_chat_engine(filters=None, params=None,**args):
|
||||
verbose=True,
|
||||
)
|
||||
return agentrunner
|
||||
|
||||
# create the function calling worker for reasoning
|
||||
# worker = FunctionCallingAgentWorker.from_tools(
|
||||
# tools, verbose=True
|
||||
|
||||
@@ -7,15 +7,15 @@ logger = logging.getLogger("uvicorn")
|
||||
|
||||
def get_index(**args):
|
||||
logger.info("Connecting vector store...")
|
||||
prjFlags = get_document_Types()
|
||||
if len(prjFlags)<=0:
|
||||
return None
|
||||
prjFlag = args.get('prjFlag','')
|
||||
flag = prjFlags[0] if prjFlag not in prjFlags else prjFlag
|
||||
if 'prjFlag' in args:
|
||||
prjFlags = get_document_Types()
|
||||
if len(prjFlags)<=0:
|
||||
return None
|
||||
prjFlag = args.get('prjFlag','')
|
||||
flag = prjFlags[0] if prjFlag not in prjFlags else prjFlag
|
||||
else:
|
||||
flag = ''
|
||||
store = get_vector_store(flag)
|
||||
# Load the index from the vector store
|
||||
# If you are using a vector store that doesn't store text,
|
||||
# you must load the index from both the vector store and the document store
|
||||
index = VectorStoreIndex.from_vector_store(store)
|
||||
logger.info("Finished load index from vector store.")
|
||||
return index
|
||||
|
||||
@@ -58,24 +58,26 @@ def get_document_Types():
|
||||
def get_documents(docType:str):
|
||||
documents = []
|
||||
config = load_configs()
|
||||
|
||||
if config is None or len(config.items()) == 0:
|
||||
return documents
|
||||
return documents
|
||||
|
||||
for loader_type, loader_config in config.items():
|
||||
logger.info(
|
||||
f"Loading documents from loader: {loader_type}, config: {loader_config}"
|
||||
)
|
||||
if loader_config.get('enable', True): # 检查 enable 字段
|
||||
logger.info(
|
||||
f"Loading documents from loader: {loader_type}, config: {loader_config}"
|
||||
)
|
||||
|
||||
loader_config = loader_config or []
|
||||
match loader_type:
|
||||
case "file":
|
||||
document = get_file_documents(FileLoaderConfig(**loader_config),docType)
|
||||
case "web":
|
||||
document = get_web_documents(WebLoaderConfig(**loader_config))
|
||||
case "db":
|
||||
document = get_db_documents(configs=[DBLoaderConfig(**cfg) for cfg in loader_config])
|
||||
case _:
|
||||
raise ValueError(f"Invalid loader type: {loader_type}")
|
||||
documents.extend(document)
|
||||
loader_config = loader_config or []
|
||||
match loader_type:
|
||||
case "file":
|
||||
document = get_file_documents(FileLoaderConfig(**loader_config),docType)
|
||||
case "web":
|
||||
document = get_web_documents(WebLoaderConfig(**loader_config))
|
||||
case "db":
|
||||
document = get_db_documents(configs=[DBLoaderConfig(**cfg) for cfg in loader_config])
|
||||
case _:
|
||||
raise ValueError(f"Invalid loader type: {loader_type}")
|
||||
documents.extend(document)
|
||||
|
||||
return documents
|
||||
Reference in New Issue
Block a user