(file_path: str | None)
| 18 | |
| 19 | |
| 20 | async def main(file_path: str | None): |
| 21 | env_vals = dotenv_values() |
| 22 | model = create_language_model(env_vals) |
| 23 | validator = TypeChatValidator(schema.Drawing) |
| 24 | translator = TypeChatJsonTranslator(model, validator, schema.Drawing) |
| 25 | # print(translator._schema_str) |
| 26 | |
| 27 | window = tk.Tk() |
| 28 | window.title("Click to continue...") |
| 29 | canvas = tk.Canvas(window, width=800, height=600, bg="white", highlightthickness=0) |
| 30 | canvas.pack(padx=10, pady=10) |
| 31 | canvas.bind("<Button-1>", lambda event: window.quit()) |
| 32 | |
| 33 | history: list[str] = [] |
| 34 | |
| 35 | async def request_handler(request: str): |
| 36 | print("[Sending request...]") |
| 37 | history.append(request) |
| 38 | result: Success[schema.Drawing] | Failure = await translator.translate("\n".join(history)) |
| 39 | if isinstance(result, Failure): |
| 40 | print("Failure:", result.message) |
| 41 | else: |
| 42 | value: schema.Drawing = result.value |
| 43 | print(value) |
| 44 | if any(isinstance(item, schema.UnknownText) for item in value.items): |
| 45 | print("Unknown text detected. Please provide more context:") |
| 46 | for item in value.items: |
| 47 | if isinstance(item, schema.UnknownText): |
| 48 | print(" ", item.text) |
| 49 | |
| 50 | canvas.delete("all") |
| 51 | render_drawing(canvas, value) |
| 52 | print("Click in drawing to continue...") |
| 53 | window.mainloop() |
| 54 | |
| 55 | await process_requests("~> ", file_path, request_handler) |
| 56 | |
| 57 | |
| 58 | if __name__ == "__main__": |
no test coverage detected
searching dependent graphs…