{"id":66400,"date":"2024-06-13T06:46:49","date_gmt":"2024-06-13T03:16:49","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d9%85%d8%af%db%8c%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%d9%87%d9%88%d8%b4%d9%85%d9%86%d8%af-%d8%b3%d8%a7%d8%af%d9%87-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c\/"},"modified":"2024-06-13T06:46:49","modified_gmt":"2024-06-13T03:16:49","slug":"%d9%85%d8%af%db%8c%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%d9%87%d9%88%d8%b4%d9%85%d9%86%d8%af-%d8%b3%d8%a7%d8%af%d9%87-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d9%85%d8%af%db%8c%d8%b1-%d8%ae%d8%a7%d9%86%d9%87-%d9%87%d9%88%d8%b4%d9%85%d9%86%d8%af-%d8%b3%d8%a7%d8%af%d9%87-%d9%87%d9%88%d8%b4-%d9%85%d8%b5%d9%86%d9%88%d8%b9%db%8c\/","title":{"rendered":"\u0645\u062f\u06cc\u0631 \u062e\u0627\u0646\u0647 \u0647\u0648\u0634\u0645\u0646\u062f \u0633\u0627\u062f\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc"},"content":{"rendered":"<p><\/p>\n<div data-article-id=\"1886357\" id=\"article-body\">\n<p>\u06a9\u062f \u0627\u06cc\u0646 \u067e\u0633\u062a \u0647\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a: https:\/\/github.com\/aaronblondeau\/genkit-smarthome<\/p>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 https:\/\/smarthome.aaronblondeau.com\/ \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0627\u06af\u0631\u0686\u0647 \u0645\u0646 \u062f\u0631 \u062a\u0644\u0627\u0634 \u0647\u0633\u062a\u0645 \u062a\u0627 \u0632\u0646\u062f\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u06af\u0648\u06af\u0644 \u062e\u0627\u0631\u062c \u06a9\u0646\u0645\u060c \u0627\u0645\u0627 \u0628\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u062e\u06cc\u0631 Firebase Genkit \u062a\u0648\u062c\u0647 \u06a9\u0631\u062f\u0645.  \u0645\u0646 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f LangChain \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062e\u0648\u0628 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631\u06cc\u0627\u0641\u062a\u0647 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062f\u0647 \u0627\u0645.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0648 \u062e\u0631\u0648\u062c\u06cc JSON \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645 \u0627\u0633\u062a\u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 Genkit \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u0645.  Genkit \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0627\u0646\u062a\u0638\u0627\u0631\u0627\u062a \u0645\u0646 \u0628\u0648\u062f \u0648 \u0627\u06a9\u0646\u0648\u0646 \u0639\u0636\u0648\u06cc \u0627\u0632 \u062c\u0639\u0628\u0647 \u0627\u0628\u0632\u0627\u0631 \u0641\u0646\u0627\u0648\u0631\u06cc \u0645\u0646 \u0627\u0633\u062a.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0633\u0646\u0627\u0631\u06cc\u0648\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 Genkit \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645.  \u062a\u0635\u0648\u0631 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0645 \u06cc\u06a9 \u062a\u0631\u0645\u0648\u0633\u062a\u0627\u062a \u0647\u0648\u0634\u0645\u0646\u062f \u0648 \u0647\u0645 \u06cc\u06a9 \u0686\u0631\u0627\u063a \u0647\u0648\u0634\u0645\u0646\u062f \u062f\u0631 \u062f\u0641\u062a\u0631 \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u062f \u0648 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u062f \u0628\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u0628\u0627\u0646 \u0637\u0628\u06cc\u0639\u06cc \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f.  \u0628\u0631\u0627\u06cc \u0645\u062b\u0627\u0644\u060c \u00ab\u0644\u0637\u0641\u0627\u064b \u0686\u0631\u0627\u063a\u200c\u0647\u0627 \u0631\u0627 \u0631\u0648\u06cc \u0633\u0628\u0632 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u00bb.  \u06cc\u0627 &#8220;\u0644\u0637\u0641\u0627 \u062f\u0645\u0627 \u0631\u0627 \u0631\u0648\u06cc \u0647\u0634\u062a\u0627\u062f \u062f\u0631\u062c\u0647 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.&#8221;<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u062f\u0644 \u0632\u0628\u0627\u0646\u06cc \u0628\u0647 \u0686\u0646\u062f \u0686\u06cc\u0632 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f:<br \/>1) \u0627\u0639\u0644\u0627\u0646 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0646\u062a\u06cc\u062c\u0647 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc \u06a9\u0646\u062f.<br \/>2) \u0641\u0647\u0631\u0633\u062a\u06cc \u0627\u0632 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0633\u0637\u062d \u0628\u0627\u0644\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f.<br \/>3) \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0641\u0631\u0645\u062a \u0634\u062f\u0647 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u0646\u062f (\u0645\u062b\u0644\u0627\u064b &#8220;\u0647\u0634\u062a\u0627\u062f&#8221; \u0631\u0627 \u0628\u0647 80 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062a\u0648\u0633\u0637 \u062f\u0633\u062a\u06af\u0627\u0647 \u062a\u0631\u0645\u0648\u0633\u062a\u0627\u062a \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0627\u0634\u062f).<\/p>\n<p>\u0648 \u0645\u0646 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u06a9\u0647 \u0631\u0648\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u0627\u06cc\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627 \u0631\u0627 \u062f\u0627\u0631\u0645:<br \/>1) \u0627\u0645\u06a9\u0627\u0646 \u062a\u0633\u062a \u0648 \u062a\u06a9\u0631\u0627\u0631 \u0633\u0631\u06cc\u0639 \u062f\u0631 \u0647\u0631 \u0627\u0639\u0644\u0627\u0646.<br \/>2) \u062e\u0631\u0648\u062c\u06cc \u062f\u0642\u06cc\u0642 \u0632\u0646\u062c\u06cc\u0631\u0647 \u0627\u0639\u0644\u0627\u0646 \u0647\u0627 \u0648 \u067e\u0627\u0633\u062e \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646\u062c\u0631 \u0628\u0647 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627\u0631\u0628\u0631 \u0645\u06cc \u0634\u0648\u062f.<br \/>3) \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0645\u062f\u0644 (\u062d\u062a\u06cc \u0622\u0646\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0648\u0644\u0627\u0645\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f).<br \/>4) <strong>\u062e\u0631\u0648\u062c\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0633\u0627\u062e\u062a \u06cc\u0627\u0641\u062a\u0647 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0632 llm.<\/strong><\/p>\n<p>Genkit \u062f\u0631 \u0628\u0631\u0622\u0648\u0631\u062f\u0646 \u0627\u06cc\u0646 \u0646\u06cc\u0627\u0632\u0647\u0627 \u06a9\u0627\u0631 \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f.  \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u0647\u060c \u06cc\u06a9 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0648\u0631\u0648\u062f\u06cc\/\u062e\u0631\u0648\u062c\u06cc\u200c\u0647\u0627\u06cc \u0647\u0631 \u0645\u0631\u062d\u0644\u0647 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u06af\u0631\u062f\u0634 \u06a9\u0627\u0631 \u0686\u0646\u062f\u06af\u0627\u0646\u0647 \u062a\u062d\u0644\u06cc\u0644 \u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u062a \u0627\u0632 \u0646\u0645\u0648\u0646\u0647 Genkit UI \u0645\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0645\u0627\u0645 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u0645\u0646 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsxyyqqrs30qqmt5j9ao.png\" alt=\"\u0627\u0633\u06a9\u0631\u06cc\u0646 \u0634\u0627\u062a \u0627\u0632 Genkit UI\" loading=\"lazy\" width=\"800\" height=\"574\" title=\"\"><\/p>\n<p>\u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u0627\u0632 \u0645\u062f\u0644 \u0647\u0627\u06cc \u063a\u06cc\u0631 \u06af\u0648\u06af\u0644 \u0646\u06cc\u0632 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f: https:\/\/github.com\/TheFireCo\/genkit-plugins\/tree\/main<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0645\u062f\u0644 \u0647\u0627\u06cc \u0632\u0628\u0627\u0646\u060c Genkit \u0645\u0641\u0647\u0648\u0645 Flow \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0627\u0633\u0627\u0633\u0627\u064b \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 &#8220;\u0627\u0628\u0632\u0627\u0631\u0647\u0627&#8221; \u06cc\u0627 \u0627\u0642\u062f\u0627\u0645\u0627\u062a\u06cc \u06a9\u0647 llm \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc \u06a9\u0646\u062f.  \u0645\u0627\u0646\u0646\u062f \u0633\u0627\u06cc\u0631 \u0686\u0627\u0631\u0686\u0648\u0628\u200c\u0647\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0636\u0627\u060c \u0627\u0632 ZOD \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u062e\u0631\u0648\u062c\u06cc \u062c\u0631\u06cc\u0627\u0646\u200c\u0647\u0627 \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0628\u0631\u0627\u06cc \u0645\u0646 \u0627\u0633\u062a <strong>\u062c\u0631\u06cc\u0627\u0646<\/strong> \u06a9\u0647 \u0631\u0646\u06af \u0686\u0631\u0627\u063a \u0647\u0627\u06cc \u0627\u062a\u0627\u0642 \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc \u06a9\u0646\u062f.  \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0627\u0639\u0644\u0627\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0632\u0645\u06cc\u0646\u0647 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f.  \u0647\u0645\u0686\u0646\u06cc\u0646 \u062f\u0627\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f: extractColor\u060c convertColorToHex\u060c setLEDColor<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Primary level flow for setting the room's lighting.<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">setLightsFlow<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">defineFlow<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">{<\/span>\n    <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">setLightsFlow<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">command<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">().<\/span><span class=\"nf\">describe<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">The user<\/span><span class=\"se\">\\'<\/span><span class=\"s1\">s request for a lighting color change.<\/span><span class=\"dl\">'<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}),<\/span>\n    <span class=\"na\">outputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">(),<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">input<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">llmResponse<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">generate<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">prompt<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`Please respond to this command to set the color of lights in the room : <\/span><span class=\"p\">${<\/span><span class=\"nx\">input<\/span><span class=\"p\">.<\/span><span class=\"nx\">command<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">model<\/span><span class=\"p\">:<\/span> <span class=\"nx\">geminiPro<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">tools<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"nx\">extractColor<\/span><span class=\"p\">,<\/span> <span class=\"nx\">convertColorToHex<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setLEDColor<\/span><span class=\"p\">],<\/span>\n      <span class=\"na\">config<\/span><span class=\"p\">:<\/span> <span class=\"nx\">standardConfig<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">});<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">llmResponse<\/span><span class=\"p\">.<\/span><span class=\"nf\">text<\/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>\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>\u0648 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06a9\u062f \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0627\u0633\u062a <strong>\u0639\u0645\u0644<\/strong> \u06a9\u0647 \u0645\u062f\u0644 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u0646\u0627\u0645 \u0631\u0646\u06af \u0647\u0627 \u0628\u0647 \u06a9\u062f\u0647\u0627\u06cc \u0647\u06af\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f.  \u0646\u06a9\u062a\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0634\u0633\u062a\u0647 \u0648 \u0631\u0641\u062a\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0639\u0645\u0644 \u062c\u0627\u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Provides the convertColorToHexFlow as a tool<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">convertColorToHex<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">action<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">{<\/span>\n    <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">convertColorToHex<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">description<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Converts a color string to hex. For example, an input of \"blue\" outputs \"0000FF\"<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span> <span class=\"na\">colorString<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">()<\/span> <span class=\"p\">}),<\/span>\n    <span class=\"na\">outputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span> <span class=\"na\">hexColorCode<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">().<\/span><span class=\"nf\">length<\/span><span class=\"p\">(<\/span><span class=\"mi\">6<\/span><span class=\"p\">)<\/span> <span class=\"p\">}),<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">input<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">runFlow<\/span><span class=\"p\">(<\/span><span class=\"nx\">convertColorToHexFlow<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n      <span class=\"na\">color<\/span><span class=\"p\">:<\/span> <span class=\"nx\">input<\/span><span class=\"p\">.<\/span><span class=\"nx\">colorString<\/span>\n    <span class=\"p\">});<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">response<\/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>\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>\u0633\u0627\u062f\u0647 \u062a\u0631 <strong>\u0639\u0645\u0644<\/strong> \u06a9\u0647 \u0627\u0632 \u0637\u0631\u0641 \u06a9\u0627\u0631\u0628\u0631 \u0627\u0642\u062f\u0627\u0645 \u0645\u0634\u062e\u0635\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"c1\">\/\/ Low level tool that sets the color of the room's lights<\/span>\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">setLEDColor<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">action<\/span><span class=\"p\">(<\/span>\n  <span class=\"p\">{<\/span>\n    <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">setLEDColor<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">description<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">Sets the color of the room<\/span><span class=\"se\">\\'<\/span><span class=\"s1\">s lighting by sending commands to the fixture<\/span><span class=\"se\">\\'<\/span><span class=\"s1\">s bluetooth API.<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span> <span class=\"na\">hexColorCode<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">().<\/span><span class=\"nf\">length<\/span><span class=\"p\">(<\/span><span class=\"mi\">6<\/span><span class=\"p\">)<\/span> <span class=\"p\">}),<\/span>\n    <span class=\"na\">outputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">boolean<\/span><span class=\"p\">().<\/span><span class=\"nf\">describe<\/span><span class=\"p\">(<\/span><span class=\"dl\">'<\/span><span class=\"s1\">True if the color is successfully set.<\/span><span class=\"dl\">'<\/span><span class=\"p\">),<\/span>\n  <span class=\"p\">},<\/span>\n  <span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">input<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">homeActor<\/span><span class=\"p\">.<\/span><span class=\"nf\">send<\/span><span class=\"p\">({<\/span> <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">SETCOLOR<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span> <span class=\"na\">value<\/span><span class=\"p\">:<\/span> <span class=\"nx\">input<\/span><span class=\"p\">.<\/span><span class=\"nx\">hexColorCode<\/span> <span class=\"p\">})<\/span>\n    <span class=\"k\">return<\/span> <span class=\"kc\">true<\/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>\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>homeActor \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0627\u0644\u062a \u0645\u062d\u062f\u0648\u062f XState \u0627\u0633\u062a.  \u0645\u0646 \u0627\u06cc\u062f\u0647 \u0627\u0631\u0627\u0626\u0647 \u0645\u062f\u0644 \u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0645\u0627\u0634\u06cc\u0646 \u062d\u0627\u0644\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u0646\u062a\u06cc\u062c\u0647 \u062f\u0644\u062e\u0648\u0627\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u06a9\u0646\u0646\u062f\u060c \u0628\u0633\u06cc\u0627\u0631 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645.  \u0645\u0627\u0634\u06cc\u0646 \u062d\u0627\u0644\u062a \u0645\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u06a9\u0627\u0631 \u0632\u06cc\u0627\u062f\u06cc \u0627\u0646\u062c\u0627\u0645 \u0646\u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0645\u0627 \u0645\u0646 \u0627\u062d\u0633\u0627\u0633 \u0645\u06cc \u06a9\u0646\u0645 \u06a9\u0647 genkit+xstate \u06cc\u06a9 \u062a\u0631\u06a9\u06cc\u0628 \u0628\u0633\u06cc\u0627\u0631 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u0645 \u0628\u06cc\u0634\u062a\u0631 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u0645.<\/p>\n<p>\u0645\u0646 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0648\u0627\u0631\u062f \u062a\u0645\u0627\u0645 \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u062f\u06cc\u06af\u0631 \u0646\u0645\u06cc \u0634\u0648\u0645\u060c \u0627\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 3 \u0645\u0647\u0645 \u062a\u0631\u06cc\u0646 \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u062c\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u06cc\u0627\u062f \u06af\u0631\u0641\u062a\u0645 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<ol>\n<li>\u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0644\u0627\u06cc\u0647 \u0627\u06cc \u0627\u0632 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627 \u0648 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u06cc\u062f<\/li>\n<\/ol>\n<p>Genkit \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0631\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u062f\u0631\u0633\u062a \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u06cc\u06a9 \u0641\u0631\u0645\u0627\u0646 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0633\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0633\u0639\u06cc \u06a9\u0631\u062f\u0645 \u062c\u0631\u06cc\u0627\u0646 \u06cc\u06a9\u0633\u0627\u0646\u06cc \u0645\u0633\u0626\u0648\u0644 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0627\u0634\u062f\u060c \u0686\u0646\u062f\u06cc\u0646 \u062e\u0637\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0645.  \u0645\u0646 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0627\u0644\u06af\u0648\u06cc\u06cc \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0645 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0627\u0648\u0644\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0686\u0647 \u0646\u0648\u0639 \u0641\u0631\u0645\u0627\u0646\u06cc \u0631\u0627 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a (\u0686\u0631\u0627\u063a \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u062a\u0631\u0645\u0648\u0633\u062a\u0627\u062a).  \u0627\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 \u0633\u0637\u062d \u0628\u0627\u0644\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0627\u0628\u0632\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u0646\u0648\u0639 \u0641\u0631\u0645\u0627\u0646 \u0645\u0648\u06a9\u0648\u0644 \u0634\u0648\u062f.  \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0628\u0647 \u0646\u0648\u0628\u0647 \u062e\u0648\u062f \u06cc\u06a9 \u062c\u0631\u06cc\u0627\u0646 \u0641\u0631\u0639\u06cc \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f \u06a9\u0647 \u0645\u062e\u062a\u0635 \u06a9\u0627\u0631 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc\u0631\u0633\u062f:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media.dev.to\/cdn-cgi\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9hc9xdkvuv7fyowwv3lj.png\" alt=\"\u0646\u0645\u0648\u062f\u0627\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\/\u0627\u0642\u062f\u0627\u0645\u0627\u062a\" loading=\"lazy\" width=\"800\" height=\"496\" title=\"\"><\/p>\n<ol>\n<li>\u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0633\u06cc\u0633\u062a\u0645 \u0627\u062c\u062a\u0646\u0627\u0628 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ol>\n<p>\u0627\u0633\u0646\u0627\u062f Genkit \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0634\u0631\u062d \u0645\u06cc\u200c\u062f\u0647\u062f: https:\/\/firebase.google.com\/docs\/genkit\/models<\/p>\n<p>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0646 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u06cc\u0633\u062a\u0645 \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0646 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0647 llm \u0639\u0627\u062f\u062a \u062f\u0627\u0631\u0645\u060c \u0627\u0628\u062a\u062f\u0627 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0631\u062f\u0645.  \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644\u060c \u062c\u0645\u06cc\u0646\u06cc \u06cc\u06a9 \u067e\u0627\u0633\u062e &#8220;\u0641\u0647\u0645\u06cc\u062f\u0647&#8221; \u0631\u0627 \u0627\u0632 \u0647\u0631 \u0641\u0631\u0645\u0627\u0646 \u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 \u0632\u0646\u062c\u06cc\u0631\u0647 \u0627\u062c\u0631\u0627 \u0631\u0627 \u062d\u0630\u0641 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0633\u06cc\u0633\u062a\u0645 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0631\u062f\u0645 \u0648 \u062a\u0645\u0627\u0645 \u0632\u0645\u06cc\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0627\u0639\u0644\u0627\u0646 \u0627\u0635\u0644\u06cc \u0647\u0631 \u062c\u0631\u06cc\u0627\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0645.  \u0645\u062f\u0644 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u0631\u0641\u062a\u0627\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062f\u0627\u0631\u0646\u062f.<\/p>\n<ol>\n<li>\u0627\u0632 \u0637\u0631\u062d \u0647\u0627\u06cc \u0631\u0634\u062a\u0647 \u0627\u06cc \u0633\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0647\u0627 \u0648 \u062e\u0631\u0648\u062c\u06cc \u0647\u0627 \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f<\/li>\n<\/ol>\n<p>\u0627\u06a9\u062b\u0631 \u0627\u0642\u062f\u0627\u0645\u0627\u062a \u0648 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u0645\u0646 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u06cc\u06a9 \u062a\u06a9\u0647 \u062f\u0627\u062f\u0647 \u0645\u0627\u0646\u0646\u062f &#8220;\u0622\u0628\u06cc&#8221; \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u062f\u0631 \u0627\u0628\u062a\u062f\u0627 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"p\">{<\/span>\n  <span class=\"nl\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">convertColorToHexFlow<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">(),<\/span>\n  <span class=\"nx\">outputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">().<\/span><span class=\"nf\">length<\/span><span class=\"p\">(<\/span><span class=\"mi\">6<\/span><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>\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\u06cc\u0646 \u0637\u0631\u062d \u0645\u0633\u0637\u062d \u0645\u0646\u062c\u0631 \u0628\u0647 \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627\u06cc\u06cc \u0634\u062f \u06a9\u0647 \u0645\u0642\u062f\u0627\u0631 {} \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0631\u062f.  \u0648\u0642\u062a\u06cc \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0647\u0627 \u0631\u0627 \u0628\u0647 \u0634\u0631\u062d \u0632\u06cc\u0631 \u062a\u0648\u0635\u06cc\u0641 \u06a9\u0631\u062f\u0645\u060c \u0627\u06cc\u0646 \u0645\u0634\u06a9\u0644 \u0628\u0631\u0637\u0631\u0641 \u0634\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight javascript\"><code><span class=\"p\">{<\/span>\n  <span class=\"nl\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">'<\/span><span class=\"s1\">convertColorToHexFlow<\/span><span class=\"dl\">'<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">color<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">()<\/span>\n  <span class=\"p\">}),<\/span>\n  <span class=\"nx\">outputSchema<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">object<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">hexColorCode<\/span><span class=\"p\">:<\/span> <span class=\"nx\">z<\/span><span class=\"p\">.<\/span><span class=\"nf\">string<\/span><span class=\"p\">().<\/span><span class=\"nf\">length<\/span><span class=\"p\">(<\/span><span class=\"mi\">6<\/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>\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<h3>\n<p>  \u062e\u0644\u0627\u0635\u0647<br \/>\n<\/h3>\n<p>Genkit \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f.  \u0627\u06cc\u0646 \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u062d\u062f\u0627\u0642\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u062a\u0645\u0627\u0645 \u0622\u0634\u0641\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0627\u0632 \u0645\u062f\u0627\u062e\u0644\u0647\u200c\u06af\u0631 \u0646\u0627\u0634\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06a9\u062f \u0627\u06cc\u0646 \u067e\u0633\u062a \u0647\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a: https:\/\/github.com\/aaronblondeau\/genkit-smarthome \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 https:\/\/smarthome.aaronblondeau.com\/ \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0627\u06af\u0631\u0686\u0647 \u0645\u0646 \u062f\u0631 \u062a\u0644\u0627\u0634 \u0647\u0633\u062a\u0645 \u062a\u0627 \u0632\u0646\u062f\u06af\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u06af\u0648\u06af\u0644 \u062e\u0627\u0631\u062c \u06a9\u0646\u0645\u060c \u0627\u0645\u0627 \u0628\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u062e\u06cc\u0631 Firebase Genkit \u062a\u0648\u062c\u0647 \u06a9\u0631\u062f\u0645. \u0645\u0646 \u0628\u0631\u0627\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u062f\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f LangChain \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062e\u0648\u0628 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":66401,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media.dev.to\/cdn-cgi\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdpcdfn4ogv0yjn08ou1p.jpg","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-66400","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\/66400","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=66400"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/66400\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/66401"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=66400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=66400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=66400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}