(question: str, decompose_result: dict, independent_subqs: list, dependent_subqs: list, **kwargs)
| 115 | return result |
| 116 | |
| 117 | async def merging(question: str, decompose_result: dict, independent_subqs: list, dependent_subqs: list, **kwargs): |
| 118 | contract_args = ( |
| 119 | (question, decompose_result, independent_subqs, dependent_subqs, kwargs["contexts"]) |
| 120 | if module == "multi-hop" |
| 121 | else (question, decompose_result, independent_subqs, dependent_subqs) |
| 122 | ) |
| 123 | contractd_result = await contract(*contract_args) |
| 124 | |
| 125 | # Extract thought process and optimized question |
| 126 | contractd_thought = contractd_result.get("response", "") |
| 127 | contractd_question = contractd_result.get("question", "") |
| 128 | |
| 129 | # Solve the optimized question |
| 130 | direct_args = ( |
| 131 | (contractd_question, contractd_result.get("context", kwargs.get("contexts"))) |
| 132 | if module == "multi-hop" |
| 133 | else (contractd_question,) |
| 134 | ) |
| 135 | contraction_result = await direct(*direct_args) |
| 136 | |
| 137 | return contractd_thought, contractd_question, contraction_result |
| 138 | |
| 139 | async def atom(question: str, contexts: str=None, direct_result=None, decompose_result=None, depth=None, log=None): |
| 140 | # Initialize logging |
no test coverage detected