chore: import upstream snapshot with attribution
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
Flake8 Lint / flake8 (push) Has been cancelled
Spell check CI / Spell_Check (push) Has been cancelled
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
Flake8 Lint / flake8 (push) Has been cancelled
Spell check CI / Spell_Check (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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,
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user