ಪ್ರೊಹೋಸ್ಟರ್ > Блог > ಇಂಟರ್ನೆಟ್ ಸುದ್ದಿ > ರೋಬೋಟ್ಗೆ ಸರಳ ವರದಿಗಳನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸುವುದು. ಪೈಥಾನ್ ಮತ್ತು ಗೂಗಲ್ ಬಿಗ್ಕ್ವೆರಿಯಲ್ಲಿ ಬೋಟ್ ಬರೆಯುವುದು
ರೋಬೋಟ್ಗೆ ಸರಳ ವರದಿಗಳನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸುವುದು. ಪೈಥಾನ್ ಮತ್ತು ಗೂಗಲ್ ಬಿಗ್ಕ್ವೆರಿಯಲ್ಲಿ ಬೋಟ್ ಬರೆಯುವುದು
ನೀವು ದಿನದಿಂದ ದಿನಕ್ಕೆ, ವಾರದಿಂದ ವಾರಕ್ಕೆ ಪುನರಾವರ್ತಿಸುವ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿದ್ದೀರಾ? ಉದಾಹರಣೆಗೆ, ವರದಿಗಳನ್ನು ಬರೆಯುವುದು. ನೀವು ಡೇಟಾವನ್ನು ವಿನಂತಿಸಿ, ಅದನ್ನು ವಿಶ್ಲೇಷಿಸಿ, ಅದನ್ನು ದೃಶ್ಯೀಕರಿಸಿ (ಗ್ರಾಫ್ಗಳು, ಚಾರ್ಟ್ಗಳನ್ನು ಮಾಡಿ), ತದನಂತರ ಅದನ್ನು ನಿಮ್ಮ ಬಾಸ್ಗೆ ಕಳುಹಿಸಿ. ಆದರೆ ಇದೆಲ್ಲವೂ ಸ್ವಯಂಚಾಲಿತವಾಗಿದ್ದರೆ ಏನು?
ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು ಟೆಲಿಗ್ರಾಮ್ಗಾಗಿ ಬೋಟ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ ಅದು ವರದಿ ಮಾಡುವಿಕೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಮತ್ತು ತಂಪಾದ ವಿಷಯವೆಂದರೆ ಸಂಪೂರ್ಣ ಪ್ರೋಗ್ರಾಂ ಕೇವಲ 50 ಸಾಲುಗಳ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ! ನೀವು ಮೊದಲ ಬಾರಿಗೆ ಟೆಲಿಗ್ರಾಮ್ಗಾಗಿ ಬೋಟ್ ಅನ್ನು ರಚಿಸುತ್ತಿದ್ದರೆ, ನೀವು ಇದನ್ನು ಸಹ ಓದಬೇಕು ಪೋಸ್ಟ್.
pip3 ಗೂಗಲ್-ಕ್ಲೌಡ್-ಬಿಗ್ಕ್ವೆರಿ ಮ್ಯಾಟ್ಪ್ಲಾಟ್ಲಿಬ್ ನಂಬಿ ಪಾಂಡಾಸ್ ಪೈಥಾನ್-ಟೆಲಿಗ್ರಾಮ್-ಬೋಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ
Google BigQuery API ಅನ್ನು ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ
ನಾವು ಸೇವೆಯನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ, ನಾವು Google BigQuery API ಅನ್ನು ಸಂಪರ್ಕಿಸುವ ಅಗತ್ಯವಿದೆ. ಇದನ್ನು ಮಾಡಲು ನಾವು ಹೋಗುತ್ತೇವೆ ಗೂಗಲ್ ಡೆವಲಪರ್ ಕನ್ಸೋಲ್ ಮತ್ತು ಹೊಸ ಯೋಜನೆಯನ್ನು ರಚಿಸಿ (ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ).
ನಿಯಂತ್ರಣ ಫಲಕದಲ್ಲಿ, APIS ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು BigQuery API ಗಾಗಿ ನೋಡಿ.
API ಅನ್ನು ಸಂಪರ್ಕಿಸಲು ಸಕ್ರಿಯಗೊಳಿಸಿ ಆಯ್ಕೆಮಾಡಿ.
ಖಾತೆಯ ಕೀಲಿಯನ್ನು ರಚಿಸಿ
ಮತ್ತೆ ಹೋಗೋಣ ಗೂಗಲ್ ಡೆವಲಪರ್ ಕನ್ಸೋಲ್, ರುಜುವಾತುಗಳ ಟ್ಯಾಬ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ, ರುಜುವಾತುಗಳನ್ನು ರಚಿಸಿ ಮತ್ತು ಸೇವಾ ಖಾತೆಯ ಕೀಲಿಯನ್ನು ರಚಿಸಿ.
ನಂತರ - ಹೊಸ ಸೇವಾ ಖಾತೆ, ಮತ್ತು ಸೇವಾ ಖಾತೆಯ ಹೆಸರು ಕ್ಷೇತ್ರದಲ್ಲಿ ಹೆಸರನ್ನು ನಮೂದಿಸಿ.
ರೋಲ್ ಡ್ರಾಪ್-ಡೌನ್ ಪಟ್ಟಿಯಿಂದ, ಪ್ರಾಜೆಕ್ಟ್ > ಮಾಲೀಕರು ಆಯ್ಕೆಮಾಡಿ, ನಂತರ ರಚಿಸಿ.
ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್ಲೋಡ್ ಆಗುವ ಫೈಲ್ ಅನ್ನು creds.json ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.
ಟರ್ಮಿನಲ್ನಲ್ಲಿ creds.json ಗೆ ಮಾರ್ಗವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ GOOGLE_APPLICATION_CREDENTIALS ಅನ್ನು ಹೊಂದಿಸಿ.
ರಫ್ತು GOOGLE_APPLICATION_CREDENTIALS='[PATH_TO_CREDS.JSON]'
ಎಲ್ಲವೂ ಸರಿಯಾಗಿ ನಡೆದರೆ, ಪ್ರೋಗ್ರಾಂ ಬರೆಯಲು ಪ್ರಾರಂಭಿಸುವ ಸಮಯ.
ಅಪ್ಲಿಕೇಶನ್ ರಚಿಸಲಾಗುತ್ತಿದೆ
ಟ್ಯುಟೋರಿಯಲ್ಗಾಗಿ ನಾವು bigquery-public-data.stackoverflow ನಿಂದ ಡೇಟಾವನ್ನು ಬಳಸುತ್ತೇವೆ, ನಮ್ಮ ವರದಿಗಾಗಿ ನಾವು ದೈನಂದಿನ ಪ್ರಕಟಣೆಗಳ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತೇವೆ.
ಈ ಕಾರ್ಯವು ವಿನಂತಿಯನ್ನು ಡೇಟಾ ಫ್ರೇಮ್ ಆಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವುದು
ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು, matplotlib ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ.
matplotlib.pyplot ಅನ್ನು plt ಆಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ
ನಮಗೆ ಐದು ನಿಯತಾಂಕಗಳು ಬೇಕಾಗುತ್ತವೆ, ಅಲ್ಲಿ x ಎಂಬುದು x-ಅಕ್ಷದ ಡೇಟಾ, x_label ಅಕ್ಷದ ಶೀರ್ಷಿಕೆಯಾಗಿದೆ, y ಎಂಬುದು y-ಅಕ್ಷದ ಡೇಟಾ, y_label ಎಂಬುದು ಅಕ್ಷದ ಶೀರ್ಷಿಕೆಯಾಗಿದೆ ಮತ್ತು ಶೀರ್ಷಿಕೆಯು ಸಂಪೂರ್ಣ ದೃಶ್ಯೀಕರಣದ ಶೀರ್ಷಿಕೆಯಾಗಿದೆ.
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
ಚಿತ್ರವನ್ನು ಉಳಿಸಿ
ಈಗ ದೃಶ್ಯೀಕರಣವನ್ನು ರಚಿಸಲು ಮತ್ತು ಅದನ್ನು ಉಳಿಸಲು ಎರಡು ಕಾರ್ಯಗಳನ್ನು ಬಳಸೋಣ.
ಪ್ರತಿದಿನ ಪ್ರಕಟವಾಗುವ ಪೋಸ್ಟ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಾವು ಕಳುಹಿಸುತ್ತೇವೆ. ಮೊದಲು ನಾವು ವಿನಂತಿಯನ್ನು ಬರೆಯುತ್ತೇವೆ.
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
ಪ್ರಶ್ನೆಯು ಡಿಸೆಂಬರ್ 2, 2018 ರಿಂದ ಎರಡು ವಾರಗಳವರೆಗೆ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ನಾವು ಈ ದಿನಾಂಕವನ್ನು ಬಳಸುತ್ತೇವೆ ಏಕೆಂದರೆ 2018-12-02 ಎಂಬುದು bigquery-public-data.stackoverflow.post_history ನಲ್ಲಿ ದಾಖಲಿಸಲಾದ ಇತ್ತೀಚಿನ ಡೇಟಾ, ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ ನೀವು ಹೊಸ ಡೇಟಾವನ್ನು ಪಡೆಯಲು CURRENT_DATE() ಅನ್ನು ಬಳಸಬಹುದು.
ಡೇಟಾವನ್ನು ಪಡೆಯಲು query_to_bigquery ಕಾರ್ಯಕ್ಕೆ ಕರೆ ಮಾಡಿ.
ಡೇಟಾಫ್ರೇಮ್ = query_to_bigquery(query)
ನಂತರ ನಾವು x-ಅಕ್ಷಕ್ಕಾಗಿ ದಿನಾಂಕ ಡೇಟಾ ಕಾಲಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು y-ಅಕ್ಷಕ್ಕಾಗಿ total_posts ಕಾಲಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ.
x = ಡೇಟಾಫ್ರೇಮ್['ದಿನಾಂಕ'].tolist()
y = ಡೇಟಾಫ್ರೇಮ್['total_posts'].tolist()
ನಾವು Visualize_bar_chart ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ದೃಶ್ಯೀಕರಿಸುತ್ತೇವೆ ಮತ್ತು ಅದನ್ನು ಚಿತ್ರವಾಗಿ ಉಳಿಸುತ್ತೇವೆ.
ನಾವು ಈ ಕೋಡ್ ಅನ್ನು get_and_save_image ಎಂಬ ಫಂಕ್ಷನ್ನಲ್ಲಿ ಸುತ್ತುತ್ತೇವೆ.
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
ಚಿತ್ರವನ್ನು ಕಳುಹಿಸಿ
ಸ್ವೀಕರಿಸುವವರಿಗೆ ವರದಿಯನ್ನು ಕಳುಹಿಸಲು, ನೀವು chat_id ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ತಿಳಿದುಕೊಳ್ಳಬೇಕು.
ನಾವು ಉಪಯೋಗಿಸುತ್ತೀವಿ userinfobot ಮತ್ತು ಟೈಪ್ /ಪ್ರಾರಂಭಿಸಿ. ಬೋಟ್ ಅಗತ್ಯ ಮಾಹಿತಿಯೊಂದಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ, chat_id ಐಡಿ ಕ್ಷೇತ್ರದಲ್ಲಿದೆ.
ಈಗ ನಾವು send_image ಕಾರ್ಯವನ್ನು ರಚಿಸೋಣ. ಇದು ಚಿತ್ರವನ್ನು ಹಿಂಪಡೆಯಲು ಮತ್ತು ಉಳಿಸಲು get_and_save_image ಕಾರ್ಯವನ್ನು ಬಳಸುತ್ತದೆ. ತದನಂತರ ನಾವು ಎಲ್ಲವನ್ನೂ ಸರಿಯಾದ ಸಂಪರ್ಕಕ್ಕೆ ಕಳುಹಿಸುತ್ತೇವೆ.
ಅಂತಿಮವಾಗಿ, ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಾವು ಇನ್ನೊಂದು ಕಾರ್ಯವನ್ನು ರಚಿಸುತ್ತೇವೆ, ಮುಖ್ಯ. ಬೋಟ್ಗಾಗಿ YOUR_TOKEN ಅನ್ನು ಬದಲಾಯಿಸಲು ಮರೆಯಬೇಡಿ.
ನೆನಪಿಡಿ: ನೀವು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಯದಲ್ಲಿ ಈ ಪ್ರೋಗ್ರಾಂ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಚಿತ್ರವನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನಾವು ಪ್ರತಿದಿನ ಬೆಳಿಗ್ಗೆ ಒಂಬತ್ತು ಗಂಟೆಗೆ ವರದಿಯನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ.