{"id":26590,"date":"2023-06-12T06:33:01","date_gmt":"2023-06-12T03:03:01","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/how-to-deploy-langchain-as-an-api-48mj\/"},"modified":"2023-06-12T06:33:01","modified_gmt":"2023-06-12T03:03:01","slug":"how-to-deploy-langchain-as-an-api-48mj","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/how-to-deploy-langchain-as-an-api-48mj\/","title":{"rendered":"\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 LangChain \ud83d\udc26\ud83d\udc47 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 API"},"content":{"rendered":"<div data-article-id=\"1500357\" id=\"article-body\">\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\/how-to-deploy-langchain-as-an-api-48mj\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C\" >\u0645\u0639\u0631\u0641\u06cc<\/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\/how-to-deploy-langchain-as-an-api-48mj\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc<\/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\/how-to-deploy-langchain-as-an-api-48mj\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_API\" >\u0627\u06cc\u062c\u0627\u062f API<\/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\/how-to-deploy-langchain-as-an-api-48mj\/#%D8%B3%D8%B1%D9%88%D8%B1_API_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B5%D9%88%D8%B1%D8%AA_%D9%85%D8%AD%D9%84%DB%8C_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0633\u0631\u0648\u0631 API \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<\/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\/how-to-deploy-langchain-as-an-api-48mj\/#%D9%85%D8%B3%D8%AA%D9%82%D8%B1_%D8%AF%D8%B1_Deta_Space\" >\u0645\u0633\u062a\u0642\u0631 \u062f\u0631 Deta Space<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u062e\u06cc\u0631\u0627\u064b \u0627\u06cc\u062f\u0647 \u0627\u06cc \u062f\u0627\u0634\u062a\u0645 \u06a9\u0647 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0648\u0628 \u0633\u0627\u06cc\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u0645 &#8211; www.akshaymakes.com.  \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u0645 \u0628\u0647 \u0633\u0624\u0627\u0644\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0645\u0646 \u0648 \u062e\u0648\u062f\u0645 \u067e\u0627\u0633\u062e \u062f\u0647\u062f \u0648 \u062f\u0631 \u0645\u0648\u0631\u062f \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646\u06cc \u0648 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0635\u062d\u0628\u062a \u06a9\u0646\u0645.  \u0648\u0628 \u0633\u0627\u06cc\u062a \u0645\u0646 \u0628\u0631 \u0631\u0648\u06cc SvelteKit \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0633\u062a\u0645 \u0627\u0632 API OpenAI \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0632 \u0642\u0633\u0645\u062a \u062c\u0644\u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645.  \u0627\u0645\u0627\u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0628\u0627\u0634\u062f.  \u06cc\u0639\u0646\u06cc \u062f\u0631 \u0622\u06cc\u0646\u062f\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u0645 \u0628\u062a\u0648\u0627\u0646\u062f \u0648\u0628\u0644\u0627\u06af\u200c\u0647\u0627\u060c \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627 \u0648 \u0633\u0627\u06cc\u0631 \u0645\u0637\u0627\u0644\u0628 \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0645\u0646 \u0645\u0631\u0648\u0631 \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0633\u0624\u0627\u0644\u0627\u062a \u062e\u06cc\u0644\u06cc \u0628\u0647\u062a\u0631 \u067e\u0627\u0633\u062e \u062f\u0647\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0645\u0646\u0638\u0648\u0631 \u0648 \u0628\u0631\u0627\u06cc \u0633\u0627\u062f\u0647 \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 \u0648\u0628 \u0633\u0627\u06cc\u062a\u060c \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 LangChain \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 FastAPI \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645 \u06a9\u0647 \u0628\u0627 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0645\u0646 \u0628\u0627 REST API \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u0627\u06cc\u0646 \u062a\u062c\u0631\u0628\u0647 \u0634\u0628\u06cc\u0647 \u0628\u0647 ChatGPT \u0628\u0627\u0634\u062f\u060c \u06cc\u0639\u0646\u06cc \u0628\u062a\u0648\u0627\u0646\u062f \u0632\u0645\u06cc\u0646\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0631\u0627 \u0628\u0647 \u062e\u0627\u0637\u0631 \u0628\u0633\u067e\u0627\u0631\u062f \u0648 \u0628\u0647 \u0637\u0648\u0631 \u0637\u0628\u06cc\u0639\u06cc \u0645\u06a9\u0627\u0644\u0645\u0647 \u0631\u0627 \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u062f.  \u0645\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062f\u0631 Deta Space \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u0645 \u06a9\u0647 \u0627\u0646\u062c\u0627\u0645 \u0622\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u0628\u0648\u062f.  \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0634\u0645\u0627 \u0631\u0627 \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f \u0631\u0627\u0647\u0646\u0645\u0627\u06cc\u06cc \u06a9\u0646\u0645.  \u0645\u0627 \u0647\u0645\u06cc\u0646 \u062d\u0627\u0644\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u06cc\u0645.  \u062f\u0631 \u0648\u0628\u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647\u060c \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u0627\u0646\u0646\u062f Weaviate \u06cc\u0627 Pinecone \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0632\u0645\u06cc\u0646\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0686\u062a \u062f\u0631 \u0645\u0648\u0631\u062f \u0634\u0645\u0627 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06cc\u0634\u062a\u0631\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0628\u0647 \u0634\u0645\u0627 \u0646\u0634\u0627\u0646 \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 API \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062e\u0631\u0648\u062c\u06cc OpenAI \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 LangChain\u060c FastAPI \u0648 Deta Space \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.  \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ol>\n<li>\n<p>\u0628\u0627 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u062c\u062f\u06cc\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u062f\u0631 \u06cc\u06a9 \u0641\u0647\u0631\u0633\u062a \u062c\u062f\u06cc\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0645\u062b\u0627\u0644 \u0645\u0627\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0641\u0647\u0631\u0633\u062a \u067e\u0631\u0648\u0698\u0647 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u06cc\u0645 <code>LangChainAPI.<\/code><\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0631 <code>LangChainAPI<\/code> \u062a\u0645\u0627\u0633 \u06af\u0631\u0641\u062a <code>app<\/code> \u0648 \u0641\u0627\u06cc\u0644 \u062c\u062f\u06cc\u062f <code>.env<\/code><\/p>\n<\/li>\n<li>\n<p>\u062f\u0631 \u062f\u0627\u062e\u0644 \u067e\u0648\u0634\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u060c \u06cc\u06a9 \u067e\u0648\u0634\u0647 \u062e\u0627\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>__init__.py<\/code> \u0641\u0627\u06cc\u0644 \u0648 \u062c\u062f\u06cc\u062f <code>main.py<\/code> \u0648 <code>conversation.py<\/code> \u0641\u0627\u06cc\u0644.<\/p>\n<\/li>\n<li>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062c\u062f\u06cc\u062f\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0632\u06cc\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"highlight shell\"><code>python <span class=\"nt\">-m<\/span> venv venv\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0633\u0627\u062e\u062a\u0627\u0631 \u067e\u0631\u0648\u0698\u0647 \u0627\u06cc\u0646\u06af\u0648\u0646\u0647 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f<\/p>\n<pre class=\"highlight plaintext\"><code>\n\u251c\u2500\u2500 app\u2502 \n\u2502   \u251c\u2500\u2500 __init__.py\n\u2502   \u251c\u2500\u2500 main.py\n\u2502   \u251c\u2500\u2500 conversation.py\n\u251c\u2500\u2500 .venv| \n\u2514\u2500\u2500 .gitignore\n\u2514\u2500\u2500 .env\n\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0645\u062d\u06cc\u0637 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0648\u06cc\u0646\u062f\u0648\u0632<\/p>\n<pre class=\"highlight shell\"><code>venv<span class=\"se\">\\S<\/span>cripts<span class=\"se\">\\a<\/span>ctivate.bat\n<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc MacOS\/Linux<\/p>\n<pre class=\"highlight shell\"><code><span class=\"nb\">source <\/span>venv\/bin\/activate\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f.<\/p>\n<pre class=\"highlight shell\"><code>pip <span class=\"nb\">install <\/span>langchain fastapi <span class=\"s2\">\"uvicorn[standard]\"<\/span> openai python-dotenv\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Deta Space CLI \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0648\u06cc\u0646\u062f\u0648\u0632<\/p>\n<pre class=\"highlight shell\"><code>iwr &lt;https:\/\/deta.space\/assets\/space-cli.ps1&gt; <span class=\"nt\">-useb<\/span> | iex\n<\/code><\/pre>\n<p>\u0628\u0631\u0627\u06cc MacOS\/Linux<\/p>\n<pre class=\"highlight shell\"><code>iwr &lt;https:\/\/deta.space\/assets\/space-cli.ps1&gt; <span class=\"nt\">-useb<\/span> | iex\n<\/code><\/pre>\n<\/li>\n<li>\n<p>Git Repository \u0631\u0627 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 commit \u06a9\u0646\u06cc\u062f<\/p>\n<pre class=\"highlight shell\"><code>git init\ngit add <span class=\"nb\">.<\/span>\ngit commit <span class=\"nt\">-m<\/span> <span class=\"s2\">\"First Commit\"<\/span>\n<\/code><\/pre>\n<\/li>\n<li>\n<p>\u06cc\u06a9 \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062f\u0631 https:\/\/deta.space\/signup \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p><\/p>\n<\/li>\n<li>\n<p>\u0648\u0627\u0631\u062f Deta Space \u062f\u0631 CLI \u0634\u0648\u06cc\u062f.  \u0631\u0645\u0632 \u062f\u0633\u062a\u0631\u0633\u06cc \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u062f.  \u0622\u0646 \u0631\u0627 \u0628\u0686\u0633\u0628\u0627\u0646\u06cc\u062f.<\/p>\n<pre class=\"highlight shell\"><code>space login\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>\u0627\u06cc\u0646 \u0647\u0645\u0647 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0633\u062a.  \u062d\u0627\u0644\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f API \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_API\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f API<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u067e\u0648\u0634\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f <code>conversation.py<\/code>.  \u0627\u06cc\u0646\u062c\u0627\u0633\u062a \u06a9\u0647 \u0645\u0646\u0637\u0642 LangChain \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code>    <span class=\"kn\">from<\/span> <span class=\"nn\">langchain<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">OpenAI<\/span><span class=\"p\">,<\/span> <span class=\"n\">ConversationChain<\/span><span class=\"p\">,<\/span> <span class=\"n\">LLMChain<\/span><span class=\"p\">,<\/span> <span class=\"n\">PromptTemplate<\/span>\n\n    <span class=\"n\">load_dotenv<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">conversation<\/span><span class=\"p\">(<\/span><span class=\"n\">human_input<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">template<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"\"Assistant is a large language model trained by  OpenAI.\n\n        Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\n        Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\n        Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n        {history}\n        Human: {human_input}\n        Assistant:\"\"\"<\/span>\n\n        <span class=\"n\">prompt<\/span> <span class=\"o\">=<\/span> <span class=\"n\">PromptTemplate<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">input_variables<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s\">\"history\"<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"human_input\"<\/span><span class=\"p\">],<\/span>\n            <span class=\"n\">template<\/span><span class=\"o\">=<\/span><span class=\"n\">template<\/span>\n        <span class=\"p\">)<\/span>\n\n        <span class=\"n\">chatgpt_chain<\/span> <span class=\"o\">=<\/span> <span class=\"n\">LLMChain<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">llm<\/span><span class=\"o\">=<\/span><span class=\"n\">OpenAI<\/span><span class=\"p\">(<\/span><span class=\"n\">temperature<\/span><span class=\"o\">=<\/span><span class=\"mi\">0<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">prompt<\/span><span class=\"o\">=<\/span><span class=\"n\">prompt<\/span><span class=\"p\">,<\/span>\n            <span class=\"n\">verbose<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">)<\/span>\n\n        <span class=\"n\">output<\/span> <span class=\"o\">=<\/span> <span class=\"n\">chatgpt_chain<\/span><span class=\"p\">.<\/span><span class=\"n\">predict<\/span><span class=\"p\">(<\/span><span class=\"n\">human_input<\/span><span class=\"o\">=<\/span><span class=\"n\">human_input<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">output<\/span>\n\n\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>\u062f\u0631 <code>main.py<\/code> \u0641\u0627\u06cc\u0644.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"nn\">fastapi<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">FastAPI<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">langcorn<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">create_service<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">fastapi.middleware.cors<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">CORSMiddleware<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">pydantic<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">BaseModel<\/span>\n<span class=\"kn\">from<\/span> <span class=\"nn\">app.conversation<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">conversation<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">Input<\/span><span class=\"p\">(<\/span><span class=\"n\">BaseModel<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">human_input<\/span><span class=\"p\">:<\/span> <span class=\"nb\">str<\/span>\n\n<span class=\"k\">class<\/span> <span class=\"nc\">Output<\/span><span class=\"p\">(<\/span><span class=\"n\">BaseModel<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">output<\/span><span class=\"p\">:<\/span> <span class=\"nb\">str<\/span>\n\n<span class=\"n\">app<\/span><span class=\"o\">=<\/span><span class=\"n\">FastAPI<\/span><span class=\"p\">()<\/span>\n\n<span class=\"o\">@<\/span><span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">post<\/span><span class=\"p\">(<\/span><span class=\"s\">\"\/conversation\"<\/span><span class=\"p\">)<\/span>\n<span class=\"k\">async<\/span> <span class=\"k\">def<\/span> <span class=\"nf\">input<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">:<\/span> <span class=\"n\">Input<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">output<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Output<\/span><span class=\"p\">(<\/span><span class=\"n\">output<\/span><span class=\"o\">=<\/span><span class=\"n\">conversation<\/span><span class=\"p\">(<\/span><span class=\"nb\">input<\/span><span class=\"p\">.<\/span><span class=\"n\">human_input<\/span><span class=\"p\">))<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">output<\/span>\n\n<span class=\"n\">origins<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s\">\"&lt;http:\/\/localhost&gt;\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"s\">\"&lt;http:\/\/localhost:5173&gt;\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"s\">\"...Your Domains...\"<\/span>\n<span class=\"p\">]<\/span>\n\n<span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"n\">add_middleware<\/span><span class=\"p\">(<\/span>\n    <span class=\"n\">CORSMiddleware<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">allow_origins<\/span><span class=\"o\">=<\/span><span class=\"n\">origins<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">allow_credentials<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">allow_methods<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s\">\"*\"<\/span><span class=\"p\">],<\/span>\n    <span class=\"n\">allow_headers<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s\">\"*\"<\/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>\u062f\u0631 <code>origins<\/code> \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0627\u0645\u0646\u0647 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f \u0628\u0647 api \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%B1%D9%88%D8%B1_API_%D8%B1%D8%A7_%D8%A8%D9%87_%D8%B5%D9%88%D8%B1%D8%AA_%D9%85%D8%AD%D9%84%DB%8C_%D8%A7%D8%AC%D8%B1%D8%A7_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0633\u0631\u0648\u0631 API \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0628\u0647 \u0635\u0648\u0631\u062a \u0645\u062d\u0644\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.  \u0634\u0631\u0648\u0639 \u062e\u0648\u0627\u0647\u062f \u0634\u062f <code>localhost:8000<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>uvicorn app.main:app <span class=\"nt\">--reload<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0633\u062a API \u062e\u0648\u062f\u060c \u0628\u0647 <code>localhost:8000\/docs<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0634\u0645\u0627  \u0627\u06cc\u0646 \u0628\u0627\u06cc\u062f Swagger Docs \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/06\/1686538980_677_\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-\u0628\u0631\u0646\u0627\u0645\u0647-LangChain-\u0628\u0647-\u0639\u0646\u0648\u0627\u0646-\u06cc\u06a9-API.png\" alt=\"\u0641\u062d\u0634 \u062f\u0627\u062f\u0646\" loading=\"lazy\" width=\"800\" height=\"345\" title=\"\"><\/p>\n<p>\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u067e\u0627\u0633\u062e \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u062f.  \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u060c \u0628\u0627 \u062e\u06cc\u0627\u0644 \u0631\u0627\u062d\u062a \u0628\u0627 LangChain \u0628\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062d\u0627\u0641\u0638\u0647\u060c \u0632\u0645\u06cc\u0646\u0647 \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c Deta Space \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0645\u062d\u0644\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0646\u0645\u06cc \u06a9\u0646\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06af\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0630\u062e\u06cc\u0631\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0632\u0645\u06cc\u0646\u0647 \u0648 \u062c\u0627\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u062f\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647\u200c\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u0632 \u0631\u0627\u0647 \u062f\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B3%D8%AA%D9%82%D8%B1_%D8%AF%D8%B1_Deta_Space\"><\/span>\n<p>  \u0645\u0633\u062a\u0642\u0631 \u062f\u0631 Deta Space<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0627\u0632 API \u0631\u0627\u0636\u06cc \u0647\u0633\u062a\u06cc\u062f\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u062f\u0631 git \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>git add <span class=\"nb\">.<\/span>\ngit commit <span class=\"nt\">-m<\/span> <span class=\"s2\">\"API Works\"<\/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>\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc Deta Space:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>space new\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 \u06cc\u06a9 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f <code>SpaceFile<\/code> \u062f\u0631 \u067e\u0631\u0648\u0698\u0647  \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0631\u0648\u06cc \u0622\u0646 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code># Spacefile Docs: &lt;https:\/\/go.deta.dev\/docs\/spacefile\/v0&gt;\nv: 0\nmicros:\n  - name: LangChainAPI\n    src: .\/\n    engine: python3.9\n    primary: true\n    run: uvicorn app.main:app\n    presets: \n      env: \n        - name: OPENAI_API_KEY\n          description: Secret message only available to this Micro\n          default: \"OpenAPI Key\"\n      api_keys: true\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>\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>space push\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 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 API \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Deta Space \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c &#8220;gpt_server&#8221; \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0631 \u0645\u0648\u0631\u062f \u0634\u0645\u0627\u060c &#8220;LangChainAPI&#8221; \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>\u0628\u0647 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0646\u0645\u0648\u0646\u0647 \u0628\u0631\u0648\u06cc\u062f \u0648 \u06a9\u0644\u06cc\u062f OpenAI API \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0628\u0631\u06af\u0647 &#8220;Configurations&#8221; \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.  \u0633\u067e\u0633\u060c \u0628\u0647 \u062a\u0628 domains \u0628\u0631\u0648\u06cc\u062f \u0648 URL \u067e\u0627\u06cc\u0647 API \u062e\u0648\u062f \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0628\u062a\u062f\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Swagger Docs \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f \u0648 \u0633\u067e\u0633 \u0627\u0632 \u0622\u0646 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 REST API \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/06\/\u0646\u062d\u0648\u0647-\u0627\u0633\u062a\u0642\u0631\u0627\u0631-\u0628\u0631\u0646\u0627\u0645\u0647-LangChain-\u0628\u0647-\u0639\u0646\u0648\u0627\u0646-\u06cc\u06a9-API.gif\" alt=\"\u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0647\u0627\" loading=\"lazy\" width=\"800\" height=\"450\" data-animated=\"true\" title=\"\"><\/p>\n<hr\/>\n<p>\u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0648\u0635\u0644 \u0634\u0648\u06cc\u062f\u061f<\/p>\n<p>\ud83c\udf0d\u0648\u0628 \u0633\u0627\u06cc\u062a \u0645\u0646<\/p>\n<p>\ud83d\udc26<a href=\"https:\/\/twitter.com\/akshayballal95\" rel=\"nofollow noopener\" target=\"_blank\">\u062a\u0648\u06cc\u06cc\u062a\u0631 \u0645\u0646<\/a><\/p>\n<p>\ud83d\udc68\u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646 \u0645\u0646<\/p>\n<\/p><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0639\u0631\u0641\u06cc \u0627\u062e\u06cc\u0631\u0627\u064b \u0627\u06cc\u062f\u0647 \u0627\u06cc \u062f\u0627\u0634\u062a\u0645 \u06a9\u0647 \u062f\u0633\u062a\u06cc\u0627\u0631 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0648\u0628 \u0633\u0627\u06cc\u062a \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u0645 &#8211; www.akshaymakes.com. \u0645\u06cc\u200c\u062e\u0648\u0627\u0633\u062a\u0645 \u0628\u0647 \u0633\u0624\u0627\u0644\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u067e\u0631\u0648\u0698\u0647\u200c\u0647\u0627\u06cc \u0645\u0646 \u0648 \u062e\u0648\u062f\u0645 \u067e\u0627\u0633\u062e \u062f\u0647\u062f \u0648 \u062f\u0631 \u0645\u0648\u0631\u062f \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646\u06cc \u0648 \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0635\u062d\u0628\u062a \u06a9\u0646\u0645. \u0648\u0628 \u0633\u0627\u06cc\u062a \u0645\u0646 \u0628\u0631 \u0631\u0648\u06cc SvelteKit \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0633\u062a\u0645 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":26591,"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-26590","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\/26590","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=26590"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/26590\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/26591"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=26590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=26590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=26590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}