e768098d0e
Flake8 Lint / flake8 (push) Waiting to run
Spell check CI / Spell_Check (push) Waiting to run
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
from utils import ValidateObj, ValidationResult
|
|
|
|
from promptflow.core import tool
|
|
|
|
|
|
# The inputs section will change based on the arguments of the tool function, after you save the code
|
|
# Adding type to arguments and return value will help the system show the types properly
|
|
# Please update the function name/signature per need
|
|
@tool
|
|
def my_python_tool(
|
|
text_chunk: str,
|
|
text_chunk_validation_res: ValidationResult = None,
|
|
validate_question_output: dict = None,
|
|
validate_suggested_answer_output: dict = None,
|
|
) -> dict:
|
|
question_validation_res = validate_question_output["validation_res"]
|
|
|
|
generated_suggested_answer = validate_suggested_answer_output["suggested_answer"]
|
|
suggested_answer_validation_res = validate_suggested_answer_output["validation_res"]
|
|
|
|
is_generation_success = generated_suggested_answer != ""
|
|
is_text_chunk_valid = text_chunk_validation_res["pass_validation"] if text_chunk_validation_res else None
|
|
is_seed_question_valid = question_validation_res["pass_validation"] if question_validation_res else None
|
|
is_suggested_answer_valid = (
|
|
suggested_answer_validation_res["pass_validation"] if suggested_answer_validation_res else None
|
|
)
|
|
|
|
failed_step = ""
|
|
if not is_generation_success:
|
|
if is_text_chunk_valid is False:
|
|
failed_step = ValidateObj.TEXT_CHUNK
|
|
elif is_seed_question_valid is False:
|
|
failed_step = ValidateObj.QUESTION
|
|
elif is_suggested_answer_valid is False:
|
|
failed_step = ValidateObj.SUGGESTED_ANSWER
|
|
|
|
return {
|
|
# TODO: support more question types like multi-context etc.
|
|
# "question_type": question_type,
|
|
"text_chunk": text_chunk,
|
|
"validation_summary": {"success": is_generation_success, "failed_step": failed_step},
|
|
"validation_details": {
|
|
ValidateObj.TEXT_CHUNK: text_chunk_validation_res,
|
|
ValidateObj.QUESTION: question_validation_res,
|
|
ValidateObj.SUGGESTED_ANSWER: suggested_answer_validation_res,
|
|
},
|
|
}
|