This commit is contained in:
jyong
2025-05-20 14:57:26 +08:00
parent c5a2f43ceb
commit ba52bf27c1
8 changed files with 85 additions and 62 deletions

View File

@ -93,7 +93,7 @@ class DraftRagPipelineApi(Resource):
parser.add_argument("hash", type=str, required=False, location="json")
parser.add_argument("environment_variables", type=list, required=False, location="json")
parser.add_argument("conversation_variables", type=list, required=False, location="json")
parser.add_argument("rag_pipeline_variables", type=dict, required=False, location="json")
parser.add_argument("rag_pipeline_variables", type=list, required=False, location="json")
args = parser.parse_args()
elif "text/plain" in content_type:
try:
@ -101,8 +101,8 @@ class DraftRagPipelineApi(Resource):
if "graph" not in data or "features" not in data:
raise ValueError("graph or features not found in data")
if not isinstance(data.get("graph"), dict) or not isinstance(data.get("features"), dict):
raise ValueError("graph or features is not a dict")
if not isinstance(data.get("graph"), dict):
raise ValueError("graph is not a dict")
args = {
"graph": data.get("graph"),
@ -129,11 +129,9 @@ class DraftRagPipelineApi(Resource):
conversation_variables = [
variable_factory.build_conversation_variable_from_mapping(obj) for obj in conversation_variables_list
]
rag_pipeline_variables_list = args.get("rag_pipeline_variables") or {}
rag_pipeline_variables = {
k: [variable_factory.build_pipeline_variable_from_mapping(obj) for obj in v]
for k, v in rag_pipeline_variables_list.items()
}
rag_pipeline_variables_list = args.get("rag_pipeline_variables") or []
rag_pipeline_variables = [variable_factory.build_pipeline_variable_from_mapping(obj) for obj in rag_pipeline_variables_list]
rag_pipeline_service = RagPipelineService()
workflow = rag_pipeline_service.sync_draft_workflow(
pipeline=pipeline,
@ -634,12 +632,15 @@ class RagPipelineSecondStepApi(Resource):
# The role of the current user in the ta table must be admin, owner, or editor
if not current_user.is_editor:
raise Forbidden()
datasource_provider = request.args.get("datasource_provider", required=True, type=str)
node_id = request.args.get("node_id", required=True, type=str)
rag_pipeline_service = RagPipelineService()
return rag_pipeline_service.get_second_step_parameters(
pipeline=pipeline, datasource_provider=datasource_provider
variables = rag_pipeline_service.get_second_step_parameters(
pipeline=pipeline, node_id=node_id
)
return {
"variables": variables,
}
class RagPipelineWorkflowRunListApi(Resource):
@ -785,3 +786,7 @@ api.add_resource(
DatasourceListApi,
"/rag/pipelines/datasource-plugins",
)
api.add_resource(
RagPipelineSecondStepApi,
"/rag/pipelines/<uuid:pipeline_id>/workflows/processing/paramters",
)