()
| 9 | from program import TypeChatProgramTranslator, TypeChatProgramValidator, evaluate_json_program |
| 10 | |
| 11 | async def main(): |
| 12 | env_vals = dotenv_values() |
| 13 | model = create_language_model(env_vals) |
| 14 | validator = TypeChatProgramValidator() |
| 15 | translator = TypeChatProgramTranslator(model, validator, math.MathAPI) |
| 16 | |
| 17 | async def request_handler(message: str): |
| 18 | result = await translator.translate(message) |
| 19 | if isinstance(result, Failure): |
| 20 | print(result.message) |
| 21 | else: |
| 22 | result = result.value |
| 23 | print(json.dumps(result, indent=2)) |
| 24 | math_result = await evaluate_json_program(result, apply_operations) |
| 25 | print(f"Math Result: {math_result}") |
| 26 | |
| 27 | file_path = sys.argv[1] if len(sys.argv) == 2 else None |
| 28 | await process_requests("🧮> ", file_path, request_handler) |
| 29 | |
| 30 | |
| 31 | async def apply_operations(func: str, args: Sequence[object]) -> int | float: |
no test coverage detected
searching dependent graphs…