()
| 6 | from typechat import Failure, TypeChatJsonTranslator, TypeChatValidator, create_language_model, process_requests |
| 7 | |
| 8 | async def main(): |
| 9 | env_vals = dotenv_values() |
| 10 | model = create_language_model(env_vals) |
| 11 | validator = TypeChatValidator(restaurant.Order) |
| 12 | translator = TypeChatJsonTranslator(model, validator, restaurant.Order) |
| 13 | |
| 14 | async def request_handler(message: str): |
| 15 | result = await translator.translate(message) |
| 16 | if isinstance(result, Failure): |
| 17 | print(result.message) |
| 18 | else: |
| 19 | result = result.value |
| 20 | print(json.dumps(result, indent=2)) |
| 21 | if any(item["itemType"] == "Unknown" for item in result["items"]): |
| 22 | print("I did not understand the following") |
| 23 | for item in result["items"]: |
| 24 | if item["itemType"] == "Unknown": |
| 25 | print(item["text"]) |
| 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 | if __name__ == "__main__": |
no test coverage detected
searching dependent graphs…