{"id":95270,"date":"2025-01-30T15:55:27","date_gmt":"2025-01-30T12:25:27","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/"},"modified":"2025-01-30T15:55:27","modified_gmt":"2025-01-30T12:25:27","slug":"leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/","title":{"rendered":"\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u062f\u0644\u0647\u0627\u06cc AI \u0628\u0627 GO \u0648 \u062a\u06a9\u0631\u0627\u0631 API: \u06cc\u06a9 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u062c\u0627\u0645\u0639"},"content":{"rendered":"<div data-article-id=\"2250122\" id=\"article-body\">\n<p>\u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u062d\u0627\u0644 \u062a\u062d\u0648\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u060c Replice.com \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0628\u0633\u062a\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0638\u0627\u0647\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0637\u06cc\u0641 \u06af\u0633\u062a\u0631\u062f\u0647 \u0627\u06cc \u0627\u0632 \u0645\u062f\u0644\u0647\u0627\u06cc AI \u0627\u0632 \u067e\u06cc\u0634 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0631\u0627\u0628\u0637 API \u0633\u0627\u062f\u0647 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0624\u062b\u0631 \u0627\u0632 API \u062a\u06a9\u062b\u06cc\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 GO \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f \u060c \u0648 \u0646\u062d\u0648\u0647 \u0627\u062f\u063a\u0627\u0645 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0636\u0645\u0646 \u062d\u0641\u0638 \u06a9\u062f \u062a\u0645\u06cc\u0632 \u0648 \u0642\u0627\u0628\u0644 \u062d\u0641\u0638 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 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\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D8%AF%D8%B1%DA%A9_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C_%D8%AA%DA%A9%D8%AB%DB%8C%D8%B1\" >\u062f\u0631\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u06a9\u062b\u06cc\u0631<\/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\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%85%D8%AD%DB%8C%D8%B7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87\" >\u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647<\/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\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D9%82%D9%88%DB%8C\" >\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0642\u0648\u06cc<\/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\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%DA%A9%D8%A7%D8%B1_%D8%A8%D8%A7_%D8%A7%D9%86%D8%AA%D8%B4%D8%A7%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1\" >\u06a9\u0627\u0631 \u0628\u0627 \u0627\u0646\u062a\u0634\u0627\u0631 \u067e\u0627\u06cc\u062f\u0627\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%DB%8C%DA%A9_%DA%AF%D8%A7%D9%84%D8%B1_%D9%BE%DB%8C%D8%B4_%D8%A8%DB%8C%D9%86%DB%8C\" >\u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u06af\u0627\u0644\u0631 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%A7%D8%AF%D9%86_%D9%87%D9%85%D9%87_%D8%A7%DB%8C%D9%86%D9%87%D8%A7\" >\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7_%D9%88_%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86_%D8%B1%D9%88%D8%B4%D9%87%D8%A7\" >\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%DA%AF%D8%B3%D8%AA%D8%B1%D8%B4_%D8%A8%D9%87_%D9%85%D8%AF%D9%84_%D9%87%D8%A7%DB%8C_%D8%AF%DB%8C%DA%AF%D8%B1\" >\u06af\u0633\u062a\u0631\u0634 \u0628\u0647 \u0645\u062f\u0644 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/leveraging-ai-models-with-go-and-replicate-api-a-comprehensive-guide-3gcc\/#%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\" >\u067e\u0627\u06cc\u0627\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1%DA%A9_%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C_%D8%AA%DA%A9%D8%AB%DB%8C%D8%B1\"><\/span>\n<p>  \u062f\u0631\u06a9 \u0645\u0639\u0645\u0627\u0631\u06cc \u062a\u06a9\u062b\u06cc\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u06a9\u062b\u06cc\u0631 \u06cc\u06a9 API \u0622\u0631\u0627\u0645\u0634 \u0628\u062e\u0634 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u0645\u062f\u0644 \u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u0627\u0628\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u067e\u0644\u062a\u0641\u0631\u0645 \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0645\u062f\u0644 \u060c \u0645\u0642\u06cc\u0627\u0633 \u06af\u0630\u0627\u0631\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627 \u0631\u0627 \u0628\u0647 \u062e\u0648\u062f \u0627\u062e\u062a\u0635\u0627\u0635 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0631 \u0627\u062f\u063a\u0627\u0645 \u0648 \u0645\u0646\u0637\u0642 \u06a9\u0627\u0631\u0628\u0631\u062f \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u0646\u062f. \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u062a\u06a9\u062b\u06cc\u0631 \u062f\u0631 GO \u060c \u0628\u0627\u06cc\u062f \u0686\u0646\u062f \u0645\u0641\u0647\u0648\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u0631\u0627 \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u0645:<\/p>\n<ol>\n<li>\u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u0645\u062f\u0644: \u0647\u0631 \u0645\u062f\u0644 \u062f\u0631 \u062a\u06a9\u062b\u06cc\u0631 \u062f\u0627\u0631\u0627\u06cc \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0647\u0634 \u0647\u0627\u06cc \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0645\u0634\u062e\u0635 \u0645\u06cc \u0634\u0648\u062f<\/li>\n<li>\u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0647\u0627: \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062f\u0644 &#8220;\u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc&#8221; \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f &#8211; \u06cc\u06a9 \u06a9\u0627\u0631 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u06a9\u0647 \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u0634\u0645\u0627 \u0631\u0627 \u067e\u0631\u062f\u0627\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<li>Webhooks: \u062a\u0645\u0627\u0633 \u0647\u0627\u06cc \u0628\u0631\u06af\u0634\u062a \u067e\u0630\u06cc\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u0627\u062a\u0645\u0627\u0645 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0627\u0637\u0644\u0627\u0639 \u0645\u06cc \u062f\u0647\u0646\u062f<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D9%85%D8%AD%DB%8C%D8%B7_%D8%AA%D9%88%D8%B3%D8%B9%D9%87\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u0645\u062d\u06cc\u0637 \u062a\u0648\u0633\u0639\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u063a\u0648\u0627\u0635\u06cc \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u0631\u0648\u0698\u0647 GO \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\n    <span class=\"s\">\"bytes\"<\/span>\n    <span class=\"s\">\"encoding\/json\"<\/span>\n    <span class=\"s\">\"fmt\"<\/span>\n    <span class=\"s\">\"io\/ioutil\"<\/span>\n    <span class=\"s\">\"net\/http\"<\/span>\n    <span class=\"s\">\"os\"<\/span>\n    <span class=\"s\">\"time\"<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"c\">\/\/ Configuration struct to hold our Replicate API settings.<\/span>\n<span class=\"k\">type<\/span> <span class=\"n\">Config<\/span> <span class=\"k\">struct<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">Token<\/span> <span class=\"kt\">string<\/span>\n    <span class=\"n\">BaseURL<\/span>  <span class=\"kt\">string<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c\">\/\/ NewConfig creates a new configuration instance.<\/span>\n<span class=\"k\">func<\/span> <span class=\"n\">NewConfig<\/span><span class=\"p\">()<\/span> <span class=\"o\">*<\/span><span class=\"n\">Config<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">return<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">Config<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">Token<\/span><span class=\"o\">:<\/span> <span class=\"n\">os<\/span><span class=\"o\">.<\/span><span class=\"n\">Getenv<\/span><span class=\"p\">(<\/span><span class=\"s\">\"REPLICATE_API_TOKEN\"<\/span><span class=\"p\">),<\/span>\n        <span class=\"n\">BaseURL<\/span><span class=\"o\">:<\/span>  <span class=\"s\">\"https:\/\/api.replicate.com\/v1\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}<\/span>\n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%D9%85%D8%B4%D8%AA%D8%B1%DB%8C_%D9%82%D9%88%DB%8C\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u0634\u062a\u0631\u06cc \u0642\u0648\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0634\u062a\u0631\u06cc \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062a\u0639\u0627\u0645\u0644 API \u0645\u0627 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"c\">\/\/ Client represents our Replicate API client<\/span>\n<span class=\"k\">type<\/span> <span class=\"n\">Client<\/span> <span class=\"k\">struct<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">config<\/span> <span class=\"o\">*<\/span><span class=\"n\">Config<\/span>\n    <span class=\"n\">http<\/span>   <span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Client<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c\">\/\/ NewClient creates a new Replicate client instance with retry functionality.<\/span>\n<span class=\"k\">func<\/span> <span class=\"n\">NewClient<\/span><span class=\"p\">(<\/span><span class=\"n\">config<\/span> <span class=\"o\">*<\/span><span class=\"n\">Config<\/span><span class=\"p\">)<\/span> <span class=\"o\">*<\/span><span class=\"n\">Client<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">client<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">retryablehttp<\/span><span class=\"o\">.<\/span><span class=\"n\">NewClient<\/span><span class=\"p\">()<\/span>\n    <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">RetryMax<\/span> <span class=\"o\">=<\/span> <span class=\"m\">3<\/span>\n    <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">RetryWaitMin<\/span> <span class=\"o\">=<\/span> <span class=\"m\">1<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Second<\/span>\n    <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">RetryWaitMax<\/span> <span class=\"o\">=<\/span> <span class=\"m\">30<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Second<\/span>\n    <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">HTTPClient<\/span><span class=\"o\">.<\/span><span class=\"n\">Timeout<\/span> <span class=\"o\">=<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Second<\/span> <span class=\"o\">*<\/span> <span class=\"m\">30<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">Client<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">config<\/span><span class=\"o\">:<\/span> <span class=\"n\">config<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">http<\/span><span class=\"o\">:<\/span>   <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">StandardClient<\/span><span class=\"p\">(),<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c\">\/\/ createRequest helps build HTTP requests with appropriate headers<\/span>\n<span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span><span class=\"n\">Client<\/span><span class=\"p\">)<\/span> <span class=\"n\">createRequest<\/span><span class=\"p\">(<\/span><span class=\"n\">method<\/span><span class=\"p\">,<\/span> <span class=\"n\">endpoint<\/span> <span class=\"kt\">string<\/span><span class=\"p\">,<\/span> <span class=\"n\">body<\/span> <span class=\"n\">any<\/span><span class=\"p\">)<\/span> <span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Request<\/span><span class=\"p\">,<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">buf<\/span> <span class=\"n\">bytes<\/span><span class=\"o\">.<\/span><span class=\"n\">Buffer<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">body<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewEncoder<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">buf<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Encode<\/span><span class=\"p\">(<\/span><span class=\"n\">body<\/span><span class=\"p\">);<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"encoding request body: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">NewRequest<\/span><span class=\"p\">(<\/span><span class=\"n\">method<\/span><span class=\"p\">,<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">config<\/span><span class=\"o\">.<\/span><span class=\"n\">APIBase<\/span><span class=\"o\">+<\/span><span class=\"n\">endpoint<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">buf<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"creating request: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">req<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Authorization\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"Token \"<\/span><span class=\"o\">+<\/span><span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">config<\/span><span class=\"o\">.<\/span><span class=\"n\">APIToken<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">req<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"application\/json\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"no\">nil<\/span>\n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%DA%A9%D8%A7%D8%B1_%D8%A8%D8%A7_%D8%A7%D9%86%D8%AA%D8%B4%D8%A7%D8%B1_%D9%BE%D8%A7%DB%8C%D8%AF%D8%A7%D8%B1\"><\/span>\n<p>  \u06a9\u0627\u0631 \u0628\u0627 \u0627\u0646\u062a\u0634\u0627\u0631 \u067e\u0627\u06cc\u062f\u0627\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0639\u0645\u0644\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631 \u067e\u0627\u06cc\u062f\u0627\u0631 \u060c \u06cc\u06a9 \u0645\u062f\u0644 \u062a\u0648\u0644\u06cc\u062f \u0645\u062d\u0628\u0648\u0628 \u062a\u0635\u0648\u06cc\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"c\">\/\/ PredictionInput represents the input parameters for Stable Diffusion.<\/span>\n<span class=\"k\">type<\/span> <span class=\"n\">StableDiffusionInput<\/span> <span class=\"k\">struct<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">Prompt<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"prompt\"`<\/span>\n    <span class=\"n\">Width<\/span>  <span class=\"kt\">int<\/span>    <span class=\"s\">`json:\"width,omitempty\"`<\/span>\n    <span class=\"n\">Height<\/span> <span class=\"kt\">int<\/span>    <span class=\"s\">`json:\"height,omitempty\"`<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c\">\/\/ CreatePrediction starts a new image generation task<\/span>\n<span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span><span class=\"n\">Client<\/span><span class=\"p\">)<\/span> <span class=\"n\">CreateStableDiffusionPrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">input<\/span> <span class=\"o\">*<\/span><span class=\"n\">StableDiffusionInput<\/span><span class=\"p\">)<\/span> <span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">Prediction<\/span><span class=\"p\">,<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">payload<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">string<\/span><span class=\"p\">]<\/span><span class=\"n\">any<\/span><span class=\"p\">{<\/span>\n        <span class=\"s\">\"version\"<\/span><span class=\"o\">:<\/span> <span class=\"s\">\"stable-diffusion-v1-5\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"s\">\"input\"<\/span><span class=\"o\">:<\/span> <span class=\"n\">input<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">createRequest<\/span><span class=\"p\">(<\/span><span class=\"s\">\"POST\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"\/predictions\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">payload<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">resp<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Do<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"making request: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n    <span class=\"k\">defer<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"o\">.<\/span><span class=\"n\">Close<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">StatusCode<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">StatusCreated<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">body<\/span><span class=\"p\">,<\/span> <span class=\"n\">_<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">ioutil<\/span><span class=\"o\">.<\/span><span class=\"n\">ReadAll<\/span><span class=\"p\">(<\/span><span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"API error: %s: %s\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Status<\/span><span class=\"p\">,<\/span> <span class=\"n\">body<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">prediction<\/span> <span class=\"n\">Prediction<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewDecoder<\/span><span class=\"p\">(<\/span><span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Decode<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">prediction<\/span><span class=\"p\">);<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"decoding response: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">prediction<\/span><span class=\"p\">,<\/span> <span class=\"no\">nil<\/span>\n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C_%DB%8C%DA%A9_%DA%AF%D8%A7%D9%84%D8%B1_%D9%BE%DB%8C%D8%B4_%D8%A8%DB%8C%D9%86%DB%8C\"><\/span>\n<p>  \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u06af\u0627\u0644\u0631 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0647\u0627\u06cc \u062a\u06a9\u062b\u06cc\u0631 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0627\u0633\u062a \u060c \u0645\u0627 \u0628\u0647 \u0631\u0648\u0634\u06cc \u0628\u0631\u0627\u06cc \u0646\u0638\u0631\u0633\u0646\u062c\u06cc \u0628\u0631\u0627\u06cc \u0646\u062a\u0627\u06cc\u062c \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"c\">\/\/ PredictionStatus represents the current state of a prediction<\/span>\n<span class=\"k\">type<\/span> <span class=\"n\">PredictionStatus<\/span> <span class=\"kt\">string<\/span>\n\n<span class=\"k\">const<\/span> <span class=\"p\">(<\/span>\n    <span class=\"n\">StatusStarting<\/span>    <span class=\"n\">PredictionStatus<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"starting\"<\/span>\n    <span class=\"n\">StatusProcessing<\/span>  <span class=\"n\">PredictionStatus<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"processing\"<\/span>\n    <span class=\"n\">StatusSucceeded<\/span>   <span class=\"n\">PredictionStatus<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"succeeded\"<\/span>\n    <span class=\"n\">StatusFailed<\/span>      <span class=\"n\">PredictionStatus<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"failed\"<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"c\">\/\/ PollPrediction continuously checks a prediction's status until completion<\/span>\n<span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span><span class=\"n\">Client<\/span><span class=\"p\">)<\/span> <span class=\"n\">PollPrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">id<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">Prediction<\/span><span class=\"p\">,<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">ticker<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">NewTicker<\/span><span class=\"p\">(<\/span><span class=\"m\">2<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Second<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">defer<\/span> <span class=\"n\">ticker<\/span><span class=\"o\">.<\/span><span class=\"n\">Stop<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"n\">timeout<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">After<\/span><span class=\"p\">(<\/span><span class=\"m\">10<\/span> <span class=\"o\">*<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Minute<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">select<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">case<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">ticker<\/span><span class=\"o\">.<\/span><span class=\"n\">C<\/span><span class=\"o\">:<\/span>\n            <span class=\"n\">prediction<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">GetPrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">id<\/span><span class=\"p\">)<\/span>\n            <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span>\n            <span class=\"p\">}<\/span>\n\n            <span class=\"k\">switch<\/span> <span class=\"n\">prediction<\/span><span class=\"o\">.<\/span><span class=\"n\">Status<\/span> <span class=\"p\">{<\/span>\n            <span class=\"k\">case<\/span> <span class=\"n\">StatusSucceeded<\/span><span class=\"o\">:<\/span>\n                <span class=\"k\">return<\/span> <span class=\"n\">prediction<\/span><span class=\"p\">,<\/span> <span class=\"no\">nil<\/span>\n\n            <span class=\"k\">case<\/span> <span class=\"n\">StatusFailed<\/span><span class=\"o\">:<\/span>\n                <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"prediction failed: %s\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">prediction<\/span><span class=\"o\">.<\/span><span class=\"n\">Error<\/span><span class=\"p\">)<\/span>\n\n            <span class=\"k\">case<\/span> <span class=\"n\">StatusStarting<\/span><span class=\"p\">,<\/span> <span class=\"n\">StatusProcessing<\/span><span class=\"o\">:<\/span>\n                <span class=\"k\">continue<\/span>\n\n            <span class=\"k\">default<\/span><span class=\"o\">:<\/span>\n                <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"unknown status: %s\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">prediction<\/span><span class=\"o\">.<\/span><span class=\"n\">Status<\/span><span class=\"p\">)<\/span>\n            <span class=\"p\">}<\/span>\n\n        <span class=\"k\">case<\/span> <span class=\"o\">&lt;-<\/span><span class=\"n\">timeout<\/span><span class=\"o\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"prediction timed out after 10 minutes\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%D9%82%D8%B1%D8%A7%D8%B1_%D8%AF%D8%A7%D8%AF%D9%86_%D9%87%D9%85%D9%87_%D8%A7%DB%8C%D9%86%D9%87%D8%A7\"><\/span>\n<p>  \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0647\u0645\u0647 \u0627\u06cc\u0646\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u0628\u0627 \u0627\u0646\u062a\u0634\u0627\u0631 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">config<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">NewConfig<\/span><span class=\"p\">()<\/span>\n    <span class=\"n\">client<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">NewClient<\/span><span class=\"p\">(<\/span><span class=\"n\">config<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">input<\/span> <span class=\"o\">:=<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">StableDiffusionInput<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">Prompt<\/span><span class=\"o\">:<\/span> <span class=\"s\">\"matte black sports car with purple neon wheels:1.2, low rider, neon lights, sunset, reflective puddles, scifi, concept car, sideview, tropical background, 35mm photograph, film, bokeh, professional, 4k, highly detailed\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">Width<\/span><span class=\"o\">:<\/span>  <span class=\"m\">768<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">Height<\/span><span class=\"o\">:<\/span> <span class=\"m\">512<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Create the prediction<\/span>\n    <span class=\"n\">prediction<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">CreateStableDiffusionPrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">input<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error creating prediction: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Poll for results<\/span>\n    <span class=\"n\">result<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">client<\/span><span class=\"o\">.<\/span><span class=\"n\">PollPrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">prediction<\/span><span class=\"o\">.<\/span><span class=\"n\">ID<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error polling prediction: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Handle the result<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">images<\/span><span class=\"p\">,<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">result<\/span><span class=\"o\">.<\/span><span class=\"n\">Output<\/span><span class=\"o\">.<\/span><span class=\"p\">([]<\/span><span class=\"kt\">string<\/span><span class=\"p\">);<\/span> <span class=\"n\">ok<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">images<\/span><span class=\"p\">)<\/span> <span class=\"o\">&gt;<\/span> <span class=\"m\">0<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Generated image URL: %s<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">images<\/span><span class=\"p\">[<\/span><span class=\"m\">0<\/span><span class=\"p\">])<\/span>\n    <span class=\"p\">}<\/span>\n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7_%D9%88_%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86_%D8%B1%D9%88%D8%B4%D9%87%D8%A7\"><\/span>\n<p>  \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0648 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0631\u0648\u0634\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 API \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u0642\u0648\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0634\u06cc\u0648\u0647 \u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u062f \u0645\u0627 \u0627\u062c\u0631\u0627 \u0634\u062f\u0647 \u0627\u0646\u062f \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>Timeouts: \u0645\u0634\u062a\u0631\u06cc HTTP \u0645\u0627 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u0632\u0645\u0627\u0646 \u0628\u0631\u0627\u06cc \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u0622\u0648\u06cc\u0632\u0627\u0646 \u0627\u0633\u062a<\/li>\n<li>\u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u062e\u0637\u0627\u06cc \u0645\u0646\u0627\u0633\u0628: \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0632\u0645\u06cc\u0646\u0647 \u062e\u0637\u0627 \u0627\u0632 fmt.errorf \u0628\u0627 \u066a w \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645<\/li>\n<li>\u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639: \u0645\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0627\u062c\u0633\u0627\u0645 \u067e\u0627\u0633\u062e \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0639\u0642\u06cc\u0628 \u0646\u0632\u062f\u06cc\u06a9 \u0645\u06cc \u06a9\u0646\u06cc\u0645<\/li>\n<li>\u0627\u06cc\u0645\u0646\u06cc \u062a\u0627\u06cc\u067e: \u0645\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u0647\u0627 \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc API \u0627\u0632 \u062a\u0627\u06cc\u067e \u0642\u0648\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645<\/li>\n<li>\u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc: \u0646\u0634\u0627\u0646\u0647 \u0647\u0627\u06cc API \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u0645\u06cc \u0634\u0648\u0646\u062f<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%DA%AF%D8%B3%D8%AA%D8%B1%D8%B4_%D8%A8%D9%87_%D9%85%D8%AF%D9%84_%D9%87%D8%A7%DB%8C_%D8%AF%DB%8C%DA%AF%D8%B1\"><\/span>\n<p>  \u06af\u0633\u062a\u0631\u0634 \u0628\u0647 \u0645\u062f\u0644 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0645\u062f\u0644 \u0647\u0627 \u0628\u0631 \u0631\u0648\u06cc \u062a\u06a9\u062b\u06cc\u0631 \u06af\u0633\u062a\u0631\u0634 \u062f\u0627\u062f. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0686\u06af\u0648\u0646\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062f\u0644 \u0645\u062a\u0641\u0627\u0648\u062a \u062a\u0637\u0628\u06cc\u0642 \u062f\u0647\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"c\">\/\/ Generic prediction creation function.<\/span>\n<span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span><span class=\"n\">Client<\/span><span class=\"p\">)<\/span> <span class=\"n\">CreatePrediction<\/span><span class=\"p\">(<\/span><span class=\"n\">version<\/span> <span class=\"kt\">string<\/span><span class=\"p\">,<\/span> <span class=\"n\">input<\/span> <span class=\"n\">any<\/span><span class=\"p\">)<\/span> <span class=\"p\">(<\/span><span class=\"o\">*<\/span><span class=\"n\">Prediction<\/span><span class=\"p\">,<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">payload<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">map<\/span><span class=\"p\">[<\/span><span class=\"kt\">string<\/span><span class=\"p\">]<\/span><span class=\"n\">any<\/span><span class=\"p\">{<\/span>\n        <span class=\"s\">\"version\"<\/span><span class=\"o\">:<\/span> <span class=\"n\">version<\/span><span class=\"p\">,<\/span>\n        <span class=\"s\">\"input\"<\/span><span class=\"o\">:<\/span>   <span class=\"n\">input<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">req<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">createRequest<\/span><span class=\"p\">(<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">MethodPost<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"\/predictions\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">payload<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">resp<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Do<\/span><span class=\"p\">(<\/span><span class=\"n\">req<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"making request: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">defer<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"o\">.<\/span><span class=\"n\">Close<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">StatusCode<\/span> <span class=\"o\">!=<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">StatusCreated<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"api error: %s\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Status<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">prediction<\/span> <span class=\"n\">Prediction<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewDecoder<\/span><span class=\"p\">(<\/span><span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Decode<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">prediction<\/span><span class=\"p\">);<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span><span class=\"p\">,<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"decoding response: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"o\">&amp;<\/span><span class=\"n\">prediction<\/span><span class=\"p\">,<\/span> <span class=\"no\">nil<\/span> \n<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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h2><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\"><\/span>\n<p>  \u067e\u0627\u06cc\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06a9\u0627\u0631 \u0628\u0627 API Replication \u062f\u0631 GO \u0631\u0648\u0634\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u0627\u062f\u063a\u0627\u0645 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0634\u0645\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u0627 \u067e\u06cc\u0631\u0648\u06cc \u0627\u0632 \u0634\u06cc\u0648\u0647 \u0647\u0627\u06cc \u062e\u0648\u0628 \u0645\u0647\u0646\u062f\u0633\u06cc \u0646\u0631\u0645 \u0627\u0641\u0632\u0627\u0631 \u0648 \u0627\u062c\u0631\u0627\u06cc \u062e\u0637\u0627\u06cc \u0642\u0648\u06cc \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u062f\u063a\u0627\u0645 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0645\u0627 \u0631\u0634\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u062f \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0645\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u0647 \u0645\u062d\u06a9\u0645 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631 \u0631\u0648\u06cc \u0622\u0646 \u0628\u0633\u0627\u0632\u06cc\u062f \u060c \u062e\u0648\u0627\u0647 \u0628\u0627 \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u060c \u067e\u0631\u062f\u0627\u0632\u0634 \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u06cc\u0627 \u0633\u0627\u06cc\u0631 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0622\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f. \u0628\u0647 \u06cc\u0627\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u0647\u0645\u06cc\u0634\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 API \u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u060c \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0648 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639 \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u062f\u0631 \u0646\u0638\u0631 \u0628\u06af\u06cc\u0631\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<ul>\n<li>\u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0647\u0627\u06cc \u0627\u0645\u062a\u062d\u0627\u0646 \u0634\u062f\u0647 \u0628\u0627 \u0628\u0631\u06af\u0634\u062a\u06cc \u0646\u0645\u0627\u06cc\u06cc<\/li>\n<li>\u0645\u062c\u0645\u0648\u0639\u0647 \u0645\u062a\u0631\u06cc\u06a9 \u0628\u0631\u0627\u06cc \u062a\u0645\u0627\u0633 \u0647\u0627\u06cc API<\/li>\n<li>\u0648\u0631\u0648\u062f \u0648 \u0646\u0638\u0627\u0631\u062a \u0645\u0646\u0627\u0633\u0628<\/li>\n<li>\u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u0646\u0631\u062e \u0627\u062c\u0631\u0627\u06cc<\/li>\n<li>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0648\u0628 \u0627\u0632 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646<\/li>\n<\/ul>\n<p>\u0627\u06cc\u0646 \u0628\u0646\u06cc\u0627\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 AI \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 \u0645\u062f\u0644 \u06af\u0633\u062a\u0631\u062f\u0647 Go \u0648 Replication \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u062d\u0627\u0644 \u062a\u062d\u0648\u0644 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u060c Replice.com \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0628\u0633\u062a\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0638\u0627\u0647\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0637\u06cc\u0641 \u06af\u0633\u062a\u0631\u062f\u0647 \u0627\u06cc \u0627\u0632 \u0645\u062f\u0644\u0647\u0627\u06cc AI \u0627\u0632 \u067e\u06cc\u0634 \u0622\u0645\u0648\u0632\u0634 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0631\u0627\u0628\u0637 API \u0633\u0627\u062f\u0647 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u0624\u062b\u0631 \u0627\u0632 API \u062a\u06a9\u062b\u06cc\u0631 \u0628\u0627 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":95271,"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-95270","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\/95270","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=95270"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/95270\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/95271"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=95270"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=95270"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=95270"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}