{"id":18874,"date":"2023-04-21T19:15:46","date_gmt":"2023-04-21T15:45:46","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/"},"modified":"2023-04-21T19:15:46","modified_gmt":"2023-04-21T15:45:46","slug":"telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/","title":{"rendered":"\u0631\u0628\u0627\u062a \u062e\u0644\u0627\u0635\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0627 ChatGPT \u0648 Flask (Quart)"},"content":{"rendered":"<div data-article-id=\"1442105\" id=\"article-body\">\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0647\u0645\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f ChatGPT \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0641\u0648\u0642\u200c\u0627\u0644\u0639\u0627\u062f\u0647 \u0647\u0648\u0634\u0645\u0646\u062f \u062d\u062a\u06cc \u0686\u0646\u062f \u0645\u0627\u0647 \u067e\u0633 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631\u060c \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0631\u0627 \u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0648\u062c\u0648\u062f ChatGPT \u062f\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0628\u0633\u06cc\u0627\u0631 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0644\u0630\u062a \u0648\u0627\u0642\u0639\u06cc \u0632\u0645\u0627\u0646\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 API \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f.  \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0641\u0631\u0635\u062a\u06cc \u0639\u0627\u0644\u06cc \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0647\u0648\u0634\u0645\u0646\u062f \u0631\u0627 \u062f\u0631 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0627\u062f\u063a\u0627\u0645 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0642\u062f\u0631\u062a\u0645\u0646\u062f\u062a\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0634\u06af\u0641\u062a \u0627\u0646\u06af\u06cc\u0632\u06cc \u0631\u0627 \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u062e\u0648\u062f \u0648 \u0627\u062f\u063a\u0627\u0645 ChatGPT \u0628\u0627 \u0622\u0646\u060c \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 OpenAI \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.  \u0627\u06cc\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0633\u0627\u062f\u0647\u200c\u062a\u0631\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0628\u0631\u0633\u062f\u060c \u0627\u0645\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0645\u0639\u0631\u0641\u06cc \u062f\u0633\u062a\u0648\u0631 summarize\u060c \u062e\u0644\u0627\u0635\u0647\u200c\u0627\u06cc \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u067e\u0633\u062a \u062f\u0631 \u0686\u062a \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<hr\/>\n<p>\u0627\u06cc\u0646 \u067e\u0633\u062a \u0641\u0631\u0636 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0634\u0645\u0627 \u062f\u0627\u0646\u0634 \u0627\u0648\u0644\u06cc\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0645 \u0628\u0631\u0627\u06cc \u06a9\u0633\u0628 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f Python \u0648 \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u0648\u0628 \u0628\u0627 Flask\u060c \u062a\u0631\u0627\u06a9\u200c\u0647\u0627\u06cc Python \u0648 Flask Hyperskill \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%87%D9%85%D9%87_%DA%86%DB%8C%D8%B2\" >\u062a\u0646\u0638\u06cc\u0645 \u0647\u0645\u0647 \u0686\u06cc\u0632<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/#%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D8%A7%D8%B3%DA%A9%D9%84%D8%AA\" >\u0646\u0648\u0634\u062a\u0646 \u0627\u0633\u06a9\u0644\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D9%85%D8%BA%D8%B2\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u063a\u0632<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/telegram-conversation-summarizer-bot-with-chatgpt-and-flask-quart-3dga\/#%D8%AE%D9%84%D8%A7%D8%B5%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\" >\u062e\u0644\u0627\u0635\u0647 \u06a9\u0646\u06cc\u062f!<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%87%D9%85%D9%87_%DA%86%DB%8C%D8%B2\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u0647\u0645\u0647 \u0686\u06cc\u0632<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u067e\u0631\u0634 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0647 \u06a9\u062f\u060c \u0628\u0627\u06cc\u062f \u0645\u0642\u062f\u0645\u0627\u062a\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u062a\u0645\u0627\u0645 \u062f\u0633\u062a\u0631\u0633\u06cc \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f.<\/p>\n<ol>\n<li>\u0631\u0628\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u062a\u0644\u06af\u0631\u0627\u0645 \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f \u0648 \u062a\u0648\u06a9\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062a\u0644\u06af\u0631\u0627\u0645 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f (\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 botfather@ \u062f\u0631 \u062a\u0644\u06af\u0631\u0627\u0645)<\/li>\n<li>\u0628\u0647 API \u0647\u0633\u062a\u0647 \u062a\u0644\u06af\u0631\u0627\u0645 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f <code>api_hash<\/code> \u0648 <code>app_id<\/code>.<\/li>\n<li>\u062f\u0631 OpenAI \u062b\u0628\u062a \u0646\u0627\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc API \u0631\u0627 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<p>\u0622\u0646 \u0631\u0634\u062a\u0647 \u0647\u0627\u06cc \u0645\u062e\u0641\u06cc \u0631\u0627 \u0646\u062c\u0627\u062a \u062f\u0647\u06cc\u062f \u0648 \u0628\u0627 \u062c\u0627\u0646 \u062e\u0648\u062f \u0627\u0632 \u0622\u0646\u0647\u0627 \u0645\u062d\u0627\u0641\u0638\u062a \u06a9\u0646\u06cc\u062f.  \u0647\u06cc\u0686 \u063a\u0631\u06cc\u0628\u0647 \u0627\u06cc \u0646\u0628\u0627\u06cc\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f: \u0627\u06cc\u0646 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0645\u0646\u062c\u0631 \u0628\u0647 \u0646\u0642\u0636 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D9%88%D8%B4%D8%AA%D9%86_%D8%A7%D8%B3%DA%A9%D9%84%D8%AA\"><\/span>\n<p>  \u0646\u0648\u0634\u062a\u0646 \u0627\u0633\u06a9\u0644\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><em>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f<\/em>: \u06a9\u062f \u06a9\u0627\u0645\u0644 \u067e\u0631\u0648\u0698\u0647 \u0646\u0647\u0627\u06cc\u06cc (\u062a\u0642\u0633\u06cc\u0645 \u0628\u0647 \u0645\u0631\u0627\u062d\u0644 \u0628\u0627 commits) \u062f\u0631 GitHub \u0645\u0646 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0647 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f: https:\/\/github.com\/yellalena\/telegram-gpt-summarizer<\/p>\n<p><em>\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f: flask\u060c pydantic\u060c requests \u0648 pyngrok.<\/em><\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f \u0631\u0628\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u0627\u0628\u062a\u062f\u0627\u06cc\u06cc \u062a\u0644\u06af\u0631\u0627\u0645 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.  \u0628\u0627\u06cc\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u0627\u0632 \u0686\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f \u0648 \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u0627\u0633\u062e \u062f\u0647\u062f. <br \/>\u0627\u0648\u0644 \u0627\u0632 \u0647\u0645\u0647 &#8211; \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u06a9\u0646\u06cc\u062f.  \u0636\u0645\u0646\u0627\u064b \u0627\u06af\u0631 \u0627\u0632 PyCharm \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0647\u062f\u0641 \u0628\u0647 \u0686\u0647\u0627\u0631 \u0628\u062e\u0634 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<ol>\n<li>\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0633\u0627\u062f\u0647 \u0628\u0627 \u06cc\u06a9 \u0645\u0633\u06cc\u0631 \u0631\u06cc\u0634\u0647 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0628 \u0647\u0648\u06a9 \u0628\u0627 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062a\u0644\u06af\u0631\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u0628\u0631\u0627\u06cc \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0627\u0631\u0633\u0627\u0644 \u067e\u06cc\u0627\u0645 \u0628\u0647 \u06cc\u06a9 \u0686\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0628\u0632\u0631\u06af \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\u0622\u062f\u0631\u0633 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u062f\u0631 \u062a\u0644\u06af\u0631\u0627\u0645 \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ol>\n<p>\u0627\u06cc\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 <em>main.py<\/em> \u062f\u0631 \u0627\u06cc\u0646 \u0646\u0642\u0637\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">app<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Flask<\/span><span class=\"p\">(<\/span><span class=\"n\">__name__<\/span><span class=\"p\">)<\/span>\n\n<span class=\"o\">@<\/span><span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">route<\/span><span class=\"p\">(<\/span><span class=\"s\">\"https:\/\/dev.to\/\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">methods<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s\">\"GET\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"POST\"<\/span><span class=\"p\">])<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">handle_webhook<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">update<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Update<\/span><span class=\"p\">(<\/span><span class=\"o\">**<\/span><span class=\"n\">request<\/span><span class=\"p\">.<\/span><span class=\"n\">json<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">chat_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">update<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">chat<\/span><span class=\"p\">.<\/span><span class=\"nb\">id<\/span>\n\n    <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">f<\/span><span class=\"s\">\"This is a response for message: <\/span><span class=\"si\">{<\/span><span class=\"n\">update<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">text<\/span><span class=\"si\">}<\/span><span class=\"s\">\"<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span><span class=\"p\">.<\/span><span class=\"n\">send_message<\/span><span class=\"p\">(<\/span><span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">response<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"s\">\"OK\"<\/span><span class=\"p\">,<\/span> <span class=\"mi\">200<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">run_ngrok<\/span><span class=\"p\">(<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"mi\">8000<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">http_tunnel<\/span> <span class=\"o\">=<\/span> <span class=\"n\">ngrok<\/span><span class=\"p\">.<\/span><span class=\"n\">connect<\/span><span class=\"p\">(<\/span><span class=\"n\">port<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">http_tunnel<\/span><span class=\"p\">.<\/span><span class=\"n\">public_url<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">main<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span> <span class=\"o\">=<\/span> <span class=\"n\">TelegramBot<\/span><span class=\"p\">(<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">TELEGRAM_TOKEN<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">host<\/span> <span class=\"o\">=<\/span> <span class=\"n\">run_ngrok<\/span><span class=\"p\">(<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">PORT<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span><span class=\"p\">.<\/span><span class=\"n\">set_webhook<\/span><span class=\"p\">(<\/span><span class=\"n\">host<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">run<\/span><span class=\"p\">(<\/span><span class=\"n\">port<\/span><span class=\"o\">=<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">PORT<\/span><span class=\"p\">,<\/span> <span class=\"n\">debug<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">use_reloader<\/span><span class=\"o\">=<\/span><span class=\"bp\">False<\/span><span class=\"p\">)<\/span>\n\n<span class=\"k\">if<\/span> <span class=\"n\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"__main__\"<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">main<\/span><span class=\"p\">()<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0686\u0646\u062f \u0686\u06cc\u0632 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u0631\u062f:<\/p>\n<ul>\n<li>\u0645\u0646 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645 \u0647\u0645\u0647 \u0686\u06cc\u0632\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u0645\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u0622\u0646 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 <em>config.py<\/em> \u0641\u0627\u06cc\u0644\u060c \u06a9\u0647 \u062a\u0648\u06a9\u0646\u200c\u0647\u0627\u06cc \u0645\u0627 \u0648 \u0633\u0627\u06cc\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0645\u0641\u06cc\u062f \u0631\u0627 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0635\u0627\u062f\u0631 \u0634\u062f\u0647 \u062c\u0645\u0639\u200c\u0622\u0648\u0631\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li>\u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 JSON \u062a\u0648\u062f\u0631\u062a\u0648 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc pydantic \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0648\u0631\u0648\u062f\u06cc \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u0639\u062f\u0627 \u0631\u0627\u062d\u062a\u200c\u062a\u0631 \u0628\u0627\u0634\u06cc\u0645.<\/li>\n<li>\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u0648\u0628\u060c \u0627\u0632 ngrok \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0645.  \u0627\u06cc\u0646 \u067e\u0648\u0631\u062a \u062e\u0627\u0635 \u0644\u0648\u06a9\u0627\u0644 \u0647\u0627\u0633\u062a \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u06cc\u06af\u0631\u0627\u0646 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0622\u0646 \u06cc\u06a9 \u0622\u062f\u0631\u0633 \u0639\u0645\u0648\u0645\u06cc \u0645\u0648\u0642\u062a \u0645\u06cc \u062f\u0647\u062f.  \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0645\u0647\u0645 \u0627\u0633\u062a \u06a9\u0647 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u0647\u0645\u0627\u0646 \u067e\u0648\u0631\u062a\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u062e\u0648\u062f \u0631\u0627 \u0631\u0648\u06cc \u0622\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u060c \u062f\u0631 \u0645\u0639\u0631\u0636 \u062f\u06cc\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/li>\n<li>\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0645\u0646 \u0631\u0628\u0627\u062a \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0645 \u0648 \u06cc\u06a9 webhook \u0631\u0627 \u0631\u0648\u06cc URL \u0639\u0645\u0648\u0645\u06cc ngrok \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u0645\u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0631\u0628\u0627\u062a \u0645\u06cc\u200c\u062f\u0627\u0646\u062f \u06a9\u0647 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u067e\u06cc\u0627\u0645\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f \u0628\u0627\u06cc\u062f \u0628\u0627 \u0627\u06cc\u0646 URL \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648\u0628 \u0647\u0648\u06a9\u060c \u0628\u0627\u06cc\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0628\u0647 \u0622\u062f\u0631\u0633 API \u062a\u0644\u06af\u0631\u0627\u0645 \u0631\u0628\u0627\u062a \u062e\u0648\u062f \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0645\u0632 \u0645\u062e\u0641\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0645\u062f\u0647 \u0634\u0645\u0627 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u06a9\u062f \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0647 \u0635\u0648\u0631\u062a \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">requests<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">config<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Config<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">TelegramBot<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">token<\/span><span class=\"p\">):<\/span>\n        <span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">token<\/span> <span class=\"o\">=<\/span> <span class=\"n\">token<\/span>\n        <span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">bot_api_url<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">f<\/span><span class=\"s\">\"<\/span><span class=\"si\">{<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">TELEGRAM_API<\/span><span class=\"si\">}<\/span><span class=\"s\">\/bot<\/span><span class=\"si\">{<\/span><span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">token<\/span><span class=\"si\">}<\/span><span class=\"s\">\"<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">set_webhook<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">host<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">host<\/span> <span class=\"o\">=<\/span> <span class=\"n\">host<\/span><span class=\"p\">.<\/span><span class=\"n\">replace<\/span><span class=\"p\">(<\/span><span class=\"s\">\"http\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"https\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">set_webhook_url<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">f<\/span><span class=\"s\">\"<\/span><span class=\"si\">{<\/span><span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">bot_api_url<\/span><span class=\"si\">}<\/span><span class=\"s\">\/setWebhook?url=<\/span><span class=\"si\">{<\/span><span class=\"n\">host<\/span><span class=\"si\">}<\/span><span class=\"s\">\"<\/span>\n        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">requests<\/span><span class=\"p\">.<\/span><span class=\"n\">get<\/span><span class=\"p\">(<\/span><span class=\"n\">set_webhook_url<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"n\">raise_for_status<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">send_message<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">message<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">send_message_url<\/span> <span class=\"o\">=<\/span> <span class=\"sa\">f<\/span><span class=\"s\">\"<\/span><span class=\"si\">{<\/span><span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">bot_api_url<\/span><span class=\"si\">}<\/span><span class=\"s\">\/sendMessage\"<\/span>\n        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">requests<\/span><span class=\"p\">.<\/span><span class=\"n\">post<\/span><span class=\"p\">(<\/span><span class=\"n\">send_message_url<\/span><span class=\"p\">,<\/span> <span class=\"n\">json<\/span><span class=\"o\">=<\/span><span class=\"p\">{<\/span><span class=\"s\">\"chat_id\"<\/span><span class=\"p\">:<\/span> <span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span>\n                                                          <span class=\"s\">\"text\"<\/span><span class=\"p\">:<\/span> <span class=\"n\">message<\/span><span class=\"p\">})<\/span>\n        <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"n\">raise_for_status<\/span><span class=\"p\">()<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a (\u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u062e\u06cc \u0627\u0632 \u06a9\u062f\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0627\u0645\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0645\u062e\u0632\u0646 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f)\u060c \u062a\u0648\u06a9\u0646 \u0631\u0628\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0645\u062d\u06cc\u0637\u06cc \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0648\u06cc &#8220;Run&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091945_2_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u062a \u0686\u062a \u062a\u0644\u06af\u0631\u0627\u0645\" loading=\"lazy\" width=\"752\" height=\"1104\" title=\"\"><br \/>\u0622\u0631\u06cc  \u0632\u0646\u062f\u0647 \u0627\u0633\u062a!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D9%85%D8%BA%D8%B2\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u063a\u0632<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0634\u06af\u0641\u062a \u0627\u0646\u06af\u06cc\u0632 \u0627\u0633\u062a\u060c \u0642\u062f\u0645 \u0628\u0639\u062f\u06cc \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0627\u06cc\u062f \u0627\u0641\u0632\u0648\u062f\u0646 \u06a9\u0645\u06cc \u0647\u0648\u0634 \u0628\u0647 \u0631\u0628\u0627\u062a \u0647\u0648\u0634\u0645\u0646\u062f \u0645\u0627 \u0628\u0627\u0634\u062f.  \u06cc\u06a9 lib \u0631\u0633\u0645\u06cc OpenAI \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 pip \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f: <code>pip install openai<\/code>.<br \/>\u067e\u0633 \u0627\u0632 \u0622\u0646\u060c \u0645\u0627 \u0642\u0627\u062f\u0631 \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0648\u062f \u06cc\u06a9 \u06a9\u0644\u0627\u0633 \u06a9\u0645\u06a9\u06cc \u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0627 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">openai<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">OpenAiHelper<\/span><span class=\"p\">:<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">__init__<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">token<\/span><span class=\"p\">,<\/span> <span class=\"n\">model<\/span><span class=\"o\">=<\/span><span class=\"s\">\"gpt-3.5-turbo\"<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">openai<\/span><span class=\"p\">.<\/span><span class=\"n\">api_key<\/span> <span class=\"o\">=<\/span> <span class=\"n\">token<\/span>\n        <span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"n\">model<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">get_response<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">message_text<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">openai<\/span><span class=\"p\">.<\/span><span class=\"n\">ChatCompletion<\/span><span class=\"p\">.<\/span><span class=\"n\">create<\/span><span class=\"p\">(<\/span><span class=\"n\">model<\/span><span class=\"o\">=<\/span><span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">model<\/span><span class=\"p\">,<\/span>\n                                                <span class=\"n\">messages<\/span><span class=\"o\">=<\/span><span class=\"p\">[{<\/span><span class=\"s\">\"role\"<\/span><span class=\"p\">:<\/span> <span class=\"s\">\"user\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"content\"<\/span><span class=\"p\">:<\/span> <span class=\"n\">message_text<\/span><span class=\"p\">}])<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">response<\/span><span class=\"p\">.<\/span><span class=\"n\">choices<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">].<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">content<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>API \u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u0627\u0644\u0628\u062a\u0647 \u0645\u062d\u0628\u0648\u0628 \u062a\u0631\u06cc\u0646 \u0622\u0646\u0647\u0627 GPT \u0647\u0627 \u0647\u0633\u062a\u0646\u062f.  GPT-4 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u062e\u06cc\u0631\u0627\u064b \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0646\u0648\u06cc\u0632 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 (\u0648 \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644) \u0627\u06a9\u0646\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u062d\u062f\u0648\u062f\u06cc \u062f\u0627\u0631\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0622\u0633\u0627\u0646 \u062a\u0631\u060c \u0628\u0647 \u062c\u0627\u06cc \u0622\u0646 GPT-3 \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u0645.  \u0686\u06cc\u0632 \u0645\u0647\u0645\u06cc \u0646\u06cc\u0633\u062a\u060c \u0647\u0645\u06cc\u0634\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0631\u0627 \u06a9\u0647 \u0628\u06cc\u0634\u062a\u0631 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u060c \u0641\u0642\u0637 \u0646\u0627\u0645 \u0631\u0634\u062a\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0647 \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f\u0647 \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p>\u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>OPENAI_TOKEN<\/code> \u0648\u06cc\u0698\u06af\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0627\u0632 \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f\u0647 \u062f\u0631 \u06a9\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0627\u0644\u0628\u062a\u0647 \u0627\u0628\u062a\u062f\u0627 \u0622\u0646 \u0631\u0627 \u062f\u0631 <code>main()<\/code> \u0631\u0648\u0634:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091945_463_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0631\u0627\u0647\u0646\u0645\u0627 OpenAI \u062f\u0631 \u0627\u0635\u0644\u06cc\" loading=\"lazy\" width=\"800\" height=\"212\" title=\"\"><\/p>\n<p>\u0648 \u0633\u067e\u0633 \u0627\u06cc\u0646 \u0645\u0631\u062f \u0631\u0627 \u0627\u0632 \u062a\u0627\u0628\u0639 view \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f\u060c \u062f\u0642\u06cc\u0642\u0627\u064b \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u0646:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">openai_helper<\/span><span class=\"p\">.<\/span><span class=\"n\">get_response<\/span><span class=\"p\">(<\/span><span class=\"n\">update<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">text<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0648\u0647\u0648\u0634!  \u062c\u0627\u062f\u0648 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091945_250_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u062a \u0686\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0627 \u067e\u0627\u0633\u062e OpenAI\" loading=\"lazy\" width=\"756\" height=\"1102\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AE%D9%84%D8%A7%D8%B5%D9%87_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u062e\u0644\u0627\u0635\u0647 \u06a9\u0646\u06cc\u062f!<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><em>\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647: quart\u060c telethon.<\/em><\/p>\n<p>\u0634\u0631\u0637 \u0645\u06cc \u0628\u0646\u062f\u0645 \u06a9\u0647 \u0622\u0646\u062c\u0627 \u0628\u0648\u062f\u0647 \u0627\u06cc\u062f &#8211; \u0628\u0647 \u06af\u067e \u0628\u0627 \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 \u062f\u0648\u0633\u062a\u0627\u0646\u062a\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0646\u062f \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06cc\u0632\u0647\u0627\u06cc \u062c\u0627\u0644\u0628 \u0628\u062d\u062b \u06a9\u0646\u0646\u062f \u06cc\u0627 \u0627\u062e\u0628\u0627\u0631 \u06cc\u0627 \u0627\u06cc\u062f\u0647 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u0646\u062f.  \u0634\u0645\u0627 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0646 \u062f\u0627\u0634\u062a\u0647 \u0627\u06cc\u062f \u0648 \u062a\u0645\u0627\u0645 \u0633\u0631\u06af\u0631\u0645\u06cc \u0647\u0627\u06cc \u0686\u062a \u0631\u0627 \u0627\u0632 \u062f\u0633\u062a \u062f\u0627\u062f\u0647 \u0627\u06cc\u062f.  \u0686\u06cc\u0632 \u0628\u0639\u062f\u06cc \u06a9\u0647 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f &#8211; \u0635\u062f \u067e\u06cc\u0627\u0645 \u062e\u0648\u0627\u0646\u062f\u0647 \u0646\u0634\u062f\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.  \u0622\u06cc\u0627 \u062e\u0648\u0628 \u0646\u06cc\u0633\u062a \u0627\u06af\u0631 \u06a9\u0633\u06cc \u0628\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u062c\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646 \u0647\u0645\u0647 \u0622\u0646\u060c \u06cc\u06a9 \u0645\u0631\u0648\u0631 \u0645\u062e\u062a\u0635\u0631 \u0627\u0632 \u0622\u0646\u0686\u0647 \u062f\u0631 \u0622\u0646\u062c\u0627 \u0627\u062a\u0641\u0627\u0642 \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a \u0628\u0647 \u0634\u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f\u061f  \u062e\u0648\u0628\u060c GPT \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f\u060c \u0627\u0644\u0628\u062a\u0647.  \u0641\u0642\u0637 \u0628\u0627\u06cc\u062f \u0628\u067e\u0631\u0633\u06cc\u0645<\/p>\n<p>\u0627\u06cc\u0646 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0622\u063a\u0627\u0632 \u0645\u06cc \u0634\u0648\u062f.  \u0628\u0646\u0627 \u0628\u0647 \u062f\u0644\u0627\u06cc\u0644\u06cc\u060c API \u0631\u0628\u0627\u062a \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0647 \u0631\u0628\u0627\u062a\u200c\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u0646\u062f.  \u0645\u0627 webhooks \u062f\u0627\u0631\u06cc\u0645 \u0648 \u0645\u062a\u062f ()GetUpdates \u0635\u0631\u06cc\u062d \u0631\u0627 \u062f\u0627\u0631\u06cc\u0645\u060c \u0627\u0645\u0627 \u0622\u0646\u0647\u0627 \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u06a9\u0633\u06cc \u0631\u0628\u0627\u062a \u0631\u0627 \u0630\u06a9\u0631 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u062f.  \u06af\u0632\u06cc\u0646\u0647 \u062f\u06cc\u06af\u0631 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0627\u06af\u0631 \u0631\u0628\u0627\u062a \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0627\u062f\u0645\u06cc\u0646 \u0627\u0636\u0627\u0641\u0647 \u0634\u0648\u062f\u060c \u062a\u0645\u0627\u0645 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc\u200c\u0647\u0627 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062f\u0627\u0631\u0627\u06cc \u0686\u0646\u062f \u0645\u0639\u0627\u06cc\u0628 \u0646\u06cc\u0632 \u0647\u0633\u062a.  \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u06a9\u0644 \u0641\u0636\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u067e\u06cc\u0627\u0645 \u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.  \u062f\u0648\u0645\u060c \u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u06a9\u0627\u0644\u0645\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0646 \u0631\u0628\u0627\u062a \u0628\u0647 \u0686\u062a \u062f\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0648\u062f\u060c \u062e\u0644\u0627\u0635\u0647 \u06a9\u0646\u06cc\u062f\u061f  \u0645\u0648\u0631\u062f \u0645\u0627 \u0646\u06cc\u0633\u062a<\/p>\n<p>\u0628\u062f\u06cc\u0647\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0633\u0644\u06cc\u0645 \u0634\u062f\u0646 \u0646\u06cc\u0633\u062a.  \u062a\u0644\u06af\u0631\u0627\u0645 Core API \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0686\u062a \u06a9\u0645\u06a9 \u06a9\u0646\u062f.  \u062a\u0646\u0647\u0627 \u0686\u06cc\u0632\u06cc \u06a9\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a.  \u0648 \u0645\u062d\u0628\u0648\u0628 \u062a\u0631\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0631\u0627\u06cc \u0622\u0646\u060c Telethon\u060c \u0646\u06cc\u0632 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a.  \u0648 Flask \u0647\u0645\u06af\u0627\u0645 \u0627\u0633\u062a.  \u0627\u0648\u0647 \u0627\u0648\u0647<\/p>\n<p>\u0648 \u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 \u06a9\u0648\u0627\u0631\u062a \u0627\u0633\u0631\u0627\u0631\u0622\u0645\u06cc\u0632 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u062f\u0631 \u0639\u0646\u0648\u0627\u0646 \u0631\u0648\u06cc \u0635\u062d\u0646\u0647 \u0645\u06cc \u0622\u06cc\u062f.  Quart \u06cc\u06a9 Flask API \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u0628 \u0633\u0631\u0648\u0631 async\u060c await \u0648 ASGI (\u0628\u0647 \u062c\u0627\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u0648 WSGI) \u062f\u0648\u0628\u0627\u0631\u0647 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0645\u0632\u06cc\u062a \u0627\u0635\u0644\u06cc \u0622\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u0645\u0627 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u062d\u0648 \u0627\u0633\u0627\u0633\u0627\u064b \u06cc\u06a9\u0633\u0627\u0646 \u0627\u0633\u062a.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u0645\u062c\u062f\u062f \u06a9\u062f \u0633\u0631\u06cc\u0639 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645.<\/p>\n<p>\u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0633\u0627\u062f\u0647 \u0647\u0633\u062a\u0646\u062f.  \u0627\u0628\u062a\u062f\u0627\u060c \u0648\u0627\u0631\u062f\u0627\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <em>\u0641\u0644\u0627\u0633\u06a9<\/em> \u0628\u0647 <em>\u06a9\u0648\u0627\u0631\u062a<\/em>:<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091945_327_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"758\" height=\"112\" title=\"\"><\/p>\n<p>\u0633\u067e\u0633\u060c \u0647\u0645\u0647 \u0631\u0648\u0634 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0631\u0627 \u0646\u0627\u0647\u0645\u06af\u0627\u0645 \u06a9\u0646\u06cc\u062f.  \u0648 \u0645\u0646\u062a\u0638\u0631 \u062a\u0645\u0627\u0645 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0648 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0634\u062f\u0647 \u0627\u0646\u062f:<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091946_89_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"222\" title=\"\"><\/p>\n<p>\u0627\u06af\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f Python async \u0645\u0637\u0645\u0626\u0646 \u0646\u06cc\u0633\u062a\u06cc\u062f\u060c \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0645 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0627\u0632 \u0645\u0633\u062a\u0646\u062f\u0627\u062a Telethon \u0631\u0627 \u062f\u0631 \u0645\u0628\u0627\u0646\u06cc asyncio \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0645\u0646 \u0647\u0645\u0686\u0646\u06cc\u0646 ngrok \u0648 TelegramBot \u0631\u0627 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0622\u0646\u0647\u0627 \u0628\u0647 \u0631\u0648\u0634\u06cc \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0648 \u062a\u0632\u0626\u06cc\u0646 \u0634\u062f\u0647 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f\u0647 \u0627\u0645 <code>@app.before_serving<\/code>.  \u0627\u06cc\u0646 \u06cc\u06a9 \u062f\u06a9\u0648\u0631\u0627\u062a\u0648\u0631 \u062f\u0627\u062e\u0644\u06cc Quart \u0627\u0633\u062a \u06a9\u0647 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0642\u0628\u0644 \u0627\u0632 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0627\u0631\u0627\u0626\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f.  \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u062a\u0627 \u0631\u0628\u0627\u062a \u0648 \u06a9\u0645\u06a9 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0631 \u062f\u0648 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0635\u0644\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"o\">@<\/span><span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">before_serving<\/span>\n<span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">startup<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">host<\/span> <span class=\"o\">=<\/span> <span class=\"n\">run_ngrok<\/span><span class=\"p\">(<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">PORT<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span> <span class=\"o\">=<\/span> <span class=\"n\">TelegramBot<\/span><span class=\"p\">(<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">TELEGRAM_TOKEN<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span><span class=\"p\">.<\/span><span class=\"n\">set_webhook<\/span><span class=\"p\">(<\/span><span class=\"n\">host<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">openai_helper<\/span> <span class=\"o\">=<\/span> <span class=\"n\">OpenAiHelper<\/span><span class=\"p\">(<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">OPENAI_TOKEN<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u06cc\u0632 \u06a9\u0645\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u0646\u0647 \u0686\u0646\u062f\u0627\u0646.  Hypercorn \u0633\u0631\u0648\u0631 ASGI \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc Quart \u0628\u0647 \u0635\u0648\u0631\u062a \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u0648 \u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u06cc\u0645 \u067e\u0648\u0631\u062a \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u0645\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645.  \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 <code>main()<\/code> \u0627\u06a9\u0646\u0648\u0646 \u0646\u06cc\u0632 async \u0627\u0633\u062a \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 asyncio \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">main<\/span><span class=\"p\">():<\/span>\n    <span class=\"n\">quart_cfg<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hypercorn<\/span><span class=\"p\">.<\/span><span class=\"n\">Config<\/span><span class=\"p\">()<\/span>\n    <span class=\"n\">quart_cfg<\/span><span class=\"p\">.<\/span><span class=\"n\">bind<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"sa\">f<\/span><span class=\"s\">\"127.0.0.1:<\/span><span class=\"si\">{<\/span><span class=\"n\">Config<\/span><span class=\"p\">.<\/span><span class=\"n\">PORT<\/span><span class=\"si\">}<\/span><span class=\"s\">\"<\/span><span class=\"p\">]<\/span>\n    <span class=\"k\">await<\/span> <span class=\"n\">hypercorn<\/span><span class=\"p\">.<\/span><span class=\"n\">asyncio<\/span><span class=\"p\">.<\/span><span class=\"n\">serve<\/span><span class=\"p\">(<\/span><span class=\"n\">app<\/span><span class=\"p\">,<\/span> <span class=\"n\">quart_cfg<\/span><span class=\"p\">)<\/span>\n\n<span class=\"k\">if<\/span> <span class=\"n\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"s\">\"__main__\"<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">asyncio<\/span><span class=\"p\">.<\/span><span class=\"n\">run<\/span><span class=\"p\">(<\/span><span class=\"n\">main<\/span><span class=\"p\">())<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0648\u062f\u0634\u0647.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0631\u0627\u06cc \u0631\u0628\u0627\u062a \u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.  \u0627\u062c\u0631\u0627\u060c \u067e\u06cc\u0627\u0645\u06a9\u060c \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f:<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091946_933_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"758\" height=\"264\" title=\"\"><\/p>\n<p>\u062f\u0627\u0631\u0647 \u062d\u0631\u0641 \u0645\u06cc\u0632\u0646\u0647  \u0639\u0627\u0644\u06cc.  \u0627\u06a9\u0646\u0648\u0646\u060c \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0686\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u062e\u0644\u0627\u0635\u0647 \u06a9\u0631\u062f\u0646 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u0632 Core API \u062a\u0644\u06af\u0631\u0627\u0645 \u0628\u0627 \u06a9\u0645\u06a9 Telethon lib \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645.  \u062f\u0631 \u0622\u0646\u062c\u0627\u060c \u0628\u0647 \u062f\u0648 \u0631\u0634\u062a\u0647 \u0645\u062e\u0641\u06cc \u0622\u062e\u0631\u06cc \u06a9\u0647 \u062f\u0627\u0631\u06cc\u062f \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u0645 \u062f\u0627\u0634\u062a &#8211; \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0646\u06cc\u0632 \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>TelegramBot \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062c\u0632\u0626\u06cc \u062f\u0631 <code>__init__<\/code> \u0631\u0648\u0634: \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0631\u0648\u0634 \u062c\u062f\u06cc\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f <code>core_api_client<\/code> \u0648\u06cc\u0698\u06af\u06cc \u06a9\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a Telethon \u0631\u0627 \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0644\u0628\u062a\u0647\u060c \u0628\u0627\u06cc\u062f \u0631\u0645\u0632\u0647\u0627\u06cc Core API \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f.<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091946_949_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"295\" title=\"\"><\/p>\n<p>\u0648 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u06a9\u0648\u0686\u06a9 \u0645\u0633\u0626\u0648\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">get_chat_history<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">limit<\/span><span class=\"o\">=<\/span><span class=\"mi\">30<\/span><span class=\"p\">):<\/span>\n        <span class=\"k\">if<\/span> <span class=\"ow\">not<\/span> <span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">core_api_client<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"p\">[]<\/span>\n        <span class=\"n\">history<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"bp\">self<\/span><span class=\"p\">.<\/span><span class=\"n\">core_api_client<\/span><span class=\"p\">.<\/span><span class=\"n\">get_messages<\/span><span class=\"p\">(<\/span><span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">limit<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"sa\">f<\/span><span class=\"s\">\"<\/span><span class=\"si\">{<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">sender<\/span><span class=\"p\">.<\/span><span class=\"n\">first_name<\/span><span class=\"si\">}<\/span><span class=\"s\"> <\/span><span class=\"si\">{<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">sender<\/span><span class=\"p\">.<\/span><span class=\"n\">last_name<\/span><span class=\"si\">}<\/span><span class=\"s\">: <\/span><span class=\"si\">{<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"si\">}<\/span><span class=\"s\"> <\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span>\n                  <span class=\"k\">for<\/span> <span class=\"n\">message<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">history<\/span> <span class=\"k\">if<\/span> <span class=\"ow\">not<\/span> <span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">action<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">result<\/span><span class=\"p\">.<\/span><span class=\"n\">reverse<\/span><span class=\"p\">()<\/span>\n        <span class=\"k\">return<\/span> <span class=\"s\">'<\/span><span class=\"se\">\\n<\/span><span class=\"s\">'<\/span><span class=\"p\">.<\/span><span class=\"n\">join<\/span><span class=\"p\">(<\/span><span class=\"n\">result<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>get_messages Telethon \u062f\u0627\u0631\u0627\u06cc \u067e\u0627\u0631\u0627\u0645\u062a\u0631\u0647\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u062a\u0641\u0627\u0648\u062a \u062f\u06cc\u06af\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0622\u0646\u0647\u0627 \u0639\u0628\u0648\u0631 \u062f\u0647\u06cc\u062f <code>limit<\/code> \u0622\u0646\u0647\u0627\u06cc\u06cc \u06a9\u0647  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0631\u0627 \u0645\u0639\u06a9\u0648\u0633 \u06a9\u0646\u062f \u06cc\u0627 \u0628\u0647 \u062c\u0627\u06cc \u062a\u0639\u062f\u0627\u062f \u067e\u06cc\u0627\u0645 \u0647\u0627\u060c \u0622\u0646 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u062a\u0627\u0631\u06cc\u062e \u0645\u062d\u062f\u0648\u062f \u06a9\u0646\u062f.  \u0628\u0627\u0632\u06cc \u0628\u0627 \u0622\u0646 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0628\u0627\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0647\u0631 \u0634\u06a9\u0644\u06cc \u06a9\u0647 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u062e\u0648\u0628\u060c \u0645\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u062a\u0645\u0627\u0645 \u0634\u062f\u06cc\u0645.  \u0622\u062e\u0631\u06cc\u0646 \u0644\u0645\u0633 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u06af\u0632\u06cc\u0646\u0647 \u062e\u0644\u0627\u0635\u0647 \u0633\u0627\u0632\u06cc \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0648\u0628 \u0647\u0648\u06a9 \u0627\u0633\u062a.  \u062f\u0631\u06cc\u0627\u0641\u062a \u067e\u0627\u0633\u062e \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"c1\"># process \"summarize\" command\n<\/span>    <span class=\"k\">if<\/span> <span class=\"n\">update<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">text<\/span><span class=\"p\">.<\/span><span class=\"n\">startswith<\/span><span class=\"p\">(<\/span><span class=\"s\">\"\/summarize\"<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">history<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span><span class=\"p\">.<\/span><span class=\"n\">get_chat_history<\/span><span class=\"p\">(<\/span><span class=\"n\">chat_id<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">openai_helper<\/span><span class=\"p\">.<\/span><span class=\"n\">get_response<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Please, briefly summarize the following conversation history:<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span> <span class=\"o\">+<\/span>\\\n                                                  <span class=\"n\">history<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">response<\/span> <span class=\"o\">=<\/span> <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">openai_helper<\/span><span class=\"p\">.<\/span><span class=\"n\">get_response<\/span><span class=\"p\">(<\/span><span class=\"n\">update<\/span><span class=\"p\">.<\/span><span class=\"n\">message<\/span><span class=\"p\">.<\/span><span class=\"n\">text<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">bot<\/span><span class=\"p\">.<\/span><span class=\"n\">send_message<\/span><span class=\"p\">(<\/span><span class=\"n\">chat_id<\/span><span class=\"p\">,<\/span> <span class=\"n\">response<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0628\u06cc\u0646\u06cc\u0645 \u06af\u0644 \u0645\u06cc\u062f\u0647!<\/p>\n<p>\u0628\u0639\u062f \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u062f \u06a9\u0647 \u0648\u0627\u0631\u062f \u062a\u0644\u06af\u0631\u0627\u0645 \u0634\u0648\u06cc\u062f.  \u0627\u0634\u06a9\u0627\u0644\u06cc \u0646\u062f\u0627\u0631\u062f: \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u067e\u06cc\u0627\u0645 \u0648 \u0633\u0627\u06cc\u0631 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0635\u0648\u0635\u06cc \u06a9\u0647 Core API \u0628\u0647 \u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0644\u0627\u0632\u0645 \u0627\u0633\u062a.  \u0647\u0645\u0627\u0646 \u0634\u0645\u0627\u0631\u0647 \u062a\u0644\u0641\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 Telegram Core API \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f.  \u0634\u0645\u0627 \u06cc\u06a9 \u06a9\u062f \u062a\u0623\u06cc\u06cc\u062f \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f \u0648 \u067e\u0633 \u0627\u0632 \u0622\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0648\u06cc\u062f.<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091946_175_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"98\" title=\"\"><\/p>\n<p>\u0631\u0628\u0627\u062a \u0631\u0627 \u0628\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0628\u0627 \u062f\u0648\u0633\u062a\u0627\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062e\u0644\u0627\u0635\u0647 \u0628\u062e\u0648\u0627\u0647\u06cc\u062f:<br \/><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/04\/1682091946_162_\u0631\u0628\u0627\u062a-\u062e\u0644\u0627\u0635\u0647-\u06a9\u0646\u0646\u062f\u0647-\u0645\u06a9\u0627\u0644\u0645\u0647-\u062a\u0644\u06af\u0631\u0627\u0645-\u0628\u0627-ChatGPT-\u0648-Flask-Quart.png\" alt=\"\u062a\u0648\u0636\u06cc\u062d\u0627\u062a \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"846\" title=\"\"><\/p>\n<p>\u062e\u0648\u062f\u0634\u0647!  \u0644\u06cc\u0633\u062a \u0628\u06cc\u200c\u067e\u0627\u06cc\u0627\u0646\u06cc \u0627\u0632 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0622\u0646\u200c\u0647\u0627 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u06cc\u062f: \u0628\u0647 \u063a\u06cc\u0631 \u0627\u0632 \u0645\u062a\u0646\u060c \u0627\u0646\u0648\u0627\u0639 \u062f\u06cc\u06af\u0631\u06cc \u0627\u0632 \u067e\u06cc\u0627\u0645\u200c\u0647\u0627 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u0646\u06cc\u062f\u060c \u062a\u0639\u062f\u0627\u062f\u06cc \u067e\u06cc\u0627\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u062e\u0644\u0627\u0635\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0632 \u0686\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u060c \u0648 \u063a\u06cc\u0631\u0647. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0648 \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 GitHub \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.  \u06a9\u062f \u0646\u0648\u06cc\u0633\u06cc \u0645\u0628\u0627\u0631\u06a9!  \ud83d\ude42<\/p>\n<p>\u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u0628\u0627 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u0641\u0644\u0627\u0633\u06a9\u060c \u0628\u0647 \u0648\u0628 \u0633\u0627\u06cc\u062a Hyperskill \u0628\u0631\u0648\u06cc\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u067e\u06cc\u0648\u0646\u062f\u0647\u0627\u06cc\u06cc \u0628\u0647 \u0686\u0646\u062f \u0645\u0648\u0636\u0648\u0639 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0642\u06cc\u0642\u0627\u064b \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u062e\u0637\u0627: \u0627\u06af\u0631 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0646\u06a9\u0646\u06cc\u062f\u060c \u0627\u062d\u062a\u0645\u0627\u0644 \u0632\u06cc\u0627\u062f\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0632 \u06a9\u0627\u0631 \u0628\u06cc\u0641\u062a\u062f \u06cc\u0627 \u0631\u062f\u06cc\u0627\u0628\u06cc \u0647\u0627\u06cc \u0632\u0634\u062a\u06cc \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f.  \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u0622\u0646\u060c \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627\u0647\u0627 \u0648 \u0646\u062d\u0648\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0628\u0647\u062a\u0631 \u0622\u0646\u0647\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0645\u0637\u0627\u0644\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\n<p>\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645: \u0627\u06cc\u0646 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0647\u0645\u062a\u0631\u06cc\u0646 \u0686\u06cc\u0632\u0647\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0622\u0632\u0645\u0627\u06cc\u0634 \u0648 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0627\u0633\u062a.  \u0646\u0648\u0634\u062a\u0646 \u06af\u0632\u0627\u0631\u0634 \u0647\u0627\u06cc \u0645\u0639\u0646\u06cc \u062f\u0627\u0631 \u0648 \u062e\u0648\u0627\u0646\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0636\u0631\u0648\u0631\u06cc \u0627\u0633\u062a.  \u0628\u0631\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u062d\u0648\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u0627\u06cc\u0646 \u0645\u0628\u062d\u062b \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<li>\n<p>\u0645\u0642\u062f\u0645\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc SQLAlchemy: \u0648\u0642\u062a\u06cc \u062a\u0635\u0645\u06cc\u0645 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u062f \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0631\u062e\u06cc \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f\u060c \u062e\u0648\u0627\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u06a9\u0627\u0631\u0628\u0631 \u06cc\u0627 \u062a\u0627\u0631\u06cc\u062e\u0686\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0628\u0627\u0634\u062f\u060c \u0628\u0627\u06cc\u062f \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u0645\u0628\u062d\u062b \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 \u0627\u0635\u0648\u0644 \u0627\u0648\u0644\u06cc\u0647 SQLAlchemy \u0622\u0634\u0646\u0627 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u06a9\u0627\u0631 \u0628\u0627 \u067e\u0627\u06cc\u06af\u0627\u0647 \u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646 \u0648 \u0631\u0627\u062d\u062a \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>Hyperskill \u06cc\u06a9 \u067e\u0644\u062a \u0641\u0631\u0645 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631\u0633\u06cc \u0634\u062e\u0635\u06cc \u0648 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0645\u062a\u0646\u0648\u0639\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u0627\u0641\u0631\u0627\u062f \u0628\u0627 \u067e\u06cc\u0634\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u06a9\u0645\u06a9 \u06a9\u0646\u062f \u062a\u0627 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u0645\u0631\u062a\u0628\u0637 \u0628\u0627 \u0628\u0627\u0632\u0627\u0631 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0645\u0648\u0632\u0634 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u0646\u062f.  \u0627\u06cc\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0642\u0637\u0639\u0627\u062a \u062a\u0626\u0648\u0631\u06cc \u0645\u062d\u06a9\u0645\u06cc \u0645\u06cc \u062f\u0647\u062f\u060c \u0628\u0644\u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0641\u0648\u0631\u0627\u064b \u0645\u0647\u0627\u0631\u062a \u0647\u0627 \u0631\u0627 \u062a\u0645\u0631\u06cc\u0646 \u06a9\u0646\u06cc\u062f &#8211; \u0648 \u062a\u0645\u0631\u06cc\u0646 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0627\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<hr\/>\n<p>\u0622\u06cc\u0627 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0645\u0641\u06cc\u062f \u0628\u0648\u062f\u061f  clap \u0631\u0627 \u0628\u0632\u0646\u06cc\u062f \u0648 Hyperskill \u0648 \u0645\u0646 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0639\u062f\u0627\u064b \u0628\u06cc\u0634\u062a\u0631 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f \ud83d\ude42<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0647\u0645\u0647 \u062f\u0631 \u0645\u0648\u0631\u062f ChatGPT \u0635\u062d\u0628\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0641\u0648\u0642\u200c\u0627\u0644\u0639\u0627\u062f\u0647 \u0647\u0648\u0634\u0645\u0646\u062f \u062d\u062a\u06cc \u0686\u0646\u062f \u0645\u0627\u0647 \u067e\u0633 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631\u060c \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0631\u0627 \u062e\u06cc\u0631\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0648\u062c\u0648\u062f ChatGPT \u062f\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0628\u0633\u06cc\u0627\u0631 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a\u060c \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0644\u0630\u062a \u0648\u0627\u0642\u0639\u06cc \u0632\u0645\u0627\u0646\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 API \u0631\u0627 \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u0645\u0627 \u0641\u0631\u0635\u062a\u06cc \u0639\u0627\u0644\u06cc \u0645\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":18875,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-18874","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/18874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=18874"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/18874\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/18875"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=18874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=18874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=18874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}