Spaces:
Sleeping
Sleeping
| import matplotlib.pyplot as plt | |
| from LLM_openai import client, expense_classifier | |
| import datetime | |
| import base64 | |
| from io import BytesIO | |
| import re | |
| import json | |
| import matplotlib.dates as mdates | |
| def create_plot(x, y): | |
| fig, ax = plt.subplots() | |
| ax.plot(x, y, marker='o') | |
| for i in range(len(x)): | |
| ax.text(x[i], y[i], f'{y[i]:.2f}', fontsize=10, ha='left', va='bottom') | |
| ax.set_xlabel('Dinero') | |
| ax.set_ylabel('Gasto') | |
| ax.set_title('Gasto diario') | |
| ax.set_xticks(x[::5]) # Show every 5th day | |
| ax.set_xticklabels(x[::5], rotation=45, ha='right') | |
| plt.xticks(rotation=30) | |
| return fig | |
| def create_barplot(x, y, xlabel,ylabel, title): | |
| fig, ax = plt.subplots() | |
| ax.bar(x, y) | |
| for i in range(len(x)): | |
| ax.text(x[i], y[i], f'{y[i]:.2f}', fontsize=10, ha='left', va='bottom') | |
| ax.set_xlabel(xlabel) | |
| ax.set_ylabel(ylabel) | |
| ax.set_title(title) | |
| plt.xticks(rotation=30) | |
| return fig | |
| #### | |
| ##OCR functions | |
| def pil_to_base64(pil_img): | |
| img_buffer = BytesIO() | |
| pil_img.save(img_buffer, format='JPEG') | |
| byte_data = img_buffer.getvalue() | |
| base64_str = base64.b64encode(byte_data).decode("utf-8") | |
| return base64_str | |
| def js_to_prefere_the_back_camera_of_mobilephones(): | |
| custom_html = """ | |
| <script> | |
| const originalGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices); | |
| navigator.mediaDevices.getUserMedia = (constraints) => { | |
| if (!constraints.video.facingMode) { | |
| constraints.video.facingMode = {ideal: "environment"}; | |
| } | |
| return originalGetUserMedia(constraints); | |
| }; | |
| </script> | |
| """ | |
| return custom_html | |
| def result_cleaner(text): | |
| pattern = r'\{[^}]*\}' | |
| match = re.search(pattern, text) | |
| match_string=match[0] | |
| json_dict=json.loads(match_string) | |
| return json_dict |