{"id":83629,"date":"2025-02-12T09:04:12","date_gmt":"2025-02-12T09:04:12","guid":{"rendered":"https:\/\/som2nynetwork.com\/analytics\/a-multilingual-ai-agent-for-farmers-using-langchain\/"},"modified":"2025-02-12T09:04:12","modified_gmt":"2025-02-12T09:04:12","slug":"a-multilingual-ai-agent-for-farmers-using-langchain","status":"publish","type":"post","link":"https:\/\/som2nynetwork.com\/?p=83629","title":{"rendered":"A Multilingual AI Agent for Farmers Using LangChain"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"article-start\">\n<p>In a recent hackathon, I developed Agri Bot, an AI-powered chatbot designed to assist farmers and agricultural enthusiasts by providing accurate and multilingual farming-related information. This article will walk you through the features, architecture, and code behind Agri Bot, showcasing how it leverages advanced technologies to create a user-friendly experience. In the Agriculture sector, access to timely and accurate information is crucial for farmers and agricultural enthusiasts. Enter <strong>Agri Bot<\/strong>, an AI in Agriculture chatbot designed to bridge the information gap by providing multilingual support and real-time data.<\/p>\n<p>This is the UI of the streamlit Agribot app, it is a multilingual, conversational and real-time bot:<\/p>\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"995\" height=\"601\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576.webp\" alt=\"Agri Bot\" class=\"wp-image-221078\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576.webp 995w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576-300x181.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576-768x464.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576-200x120.webp 200w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122854.576-150x91.webp 150w\" sizes=\"(max-width: 995px) 100vw, 995px\"\/><\/figure>\n<h2 class=\"wp-block-heading\" id=\"h-key-features-of-agri-bot-ai-for-farmers\">Key Features of Agri Bot: AI for Farmers<\/h2>\n<p>Agri Bot is equipped with several standout features that make it an invaluable AI for farmers:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Multilingual Support<\/strong>: Communicates in multiple languages, including English, Hindi, Telugu, Tamil, Bengali, Marathi, and Punjabi.<\/li>\n<li><strong>AI-Powered Conversations<\/strong>: Utilizes the <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2024\/12\/meta-llama-3-3-70b\/\" target=\"_blank\" rel=\"noreferrer noopener\">Llama 3-70B model<\/a> to deliver intelligent and contextual responses.<\/li>\n<li><strong>Real-Time Information Retrieval<\/strong>: Integrates with Wikipedia, <a href=\"https:\/\/arxiv.org\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Arxiv<\/a>, and <a href=\"https:\/\/duckduckgo.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">DuckDuckGo<\/a> to fetch the latest agricultural data.<\/li>\n<li><strong>Context-Aware Memory<\/strong>: Remembers previous interactions, ensuring a seamless user experience.<\/li>\n<li><strong>User-Friendly Interface<\/strong>: Built with Streamlit, the interface is intuitive and easy to navigate.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-tech-stack-for-agri-bot\">Tech Stack for Agri Bot<\/h2>\n<p>The tech stack for Agri Bot includes:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Frontend<\/strong>: Streamlit (Python)<\/li>\n<li><strong>Backend<\/strong>: LangChain, OpenAI LLM (via Groq API)<\/li>\n<li><strong>Search Tools<\/strong>: Wikipedia, Arxiv, DuckDuckGo<\/li>\n<li><strong>Translation<\/strong>: Google Translator API<\/li>\n<li><strong>Memory Management<\/strong>: LangChain ConversationBufferMemory<\/li>\n<\/ul>\n<p>Also read: <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/2024\/07\/ai-agent-frameworks\/\" target=\"_blank\" rel=\"noreferrer noopener\">Top 7 Frameworks for Building AI Agents in 2025<\/a><\/p>\n<h2 class=\"wp-block-heading\" id=\"h-steps-involved-to-build-the-agri-bot\">Steps Involved to Build the Agri Bot<\/h2>\n<p>Here\u2019s a breakdown of the code that powers Agri Bot:<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-1-importing-libraries\"><strong>1. Importing Libraries<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>import os\n\nimport time\n\nimport streamlit as st\n\nfrom langchain.memory import ConversationBufferMemory\n\nfrom langchain.agents import initialize_agent, AgentType\n\nfrom langchain.chat_models import ChatOpenAI\n\nfrom langchain.schema import SystemMessage, HumanMessage, AIMessage\n\nfrom langchain_community.tools import WikipediaQueryRun, ArxivQueryRun, DuckDuckGoSearchRun\n\nfrom langchain_community.utilities import WikipediaAPIWrapper, ArxivAPIWrapper, DuckDuckGoSearchAPIWrapper\n\nfrom langdetect import detect\n\nfrom deep_translator import GoogleTranslator\n\nfrom dotenv import load_dotenv, find_dotenv<\/code><\/pre>\n<p>We start by importing the necessary libraries. streamlit is used for the web interface, while langchain provides tools for building conversational agents. The deep_translator library is used for language translation.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-2-loading-environment-variables\"><strong>2. Loading Environment Variables<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>load_dotenv(find_dotenv())<\/code><\/pre>\n<p>This line loads environment variables from a .env file, which includes sensitive information like API keys.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-3-initializing-ai-tools\"><strong>3. Initializing AI Tools<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>wiki = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper(top_k_results=1, doc_content_chars_max=200))\n\narxiv = ArxivQueryRun(api_wrapper=ArxivAPIWrapper(top_k_results=1, doc_content_chars_max=200))\n\nduckduckgo_search = DuckDuckGoSearchRun(api_wrapper=DuckDuckGoSearchAPIWrapper(region=\"in-en\", time=\"y\", max_results=2))\n\ntools = [wiki, arxiv, duckduckgo_search]<\/code><\/pre>\n<p>Here, we initialize the tools for fetching information from Wikipedia, Arxiv, and DuckDuckGo. Each tool is configured to return a limited number of results to ensure quick responses.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-4-loading-the-language-model\"><strong>4. Loading the Language Model<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>def load_llm():\n\n\u00a0\u00a0\u00a0return ChatOpenAI(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0model_name=\"llama3-70b-8192\",\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0temperature=1,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0openai_api_key=os.getenv(\"GROQ_API_KEY\"),\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0openai_api_base=\"https:\/\/api.groq.com\/openai\/v1\"\n\n\u00a0\u00a0\u00a0)<\/code><\/pre>\n<p>This function loads the language model using the Groq API. The temperature parameter controls the randomness of the model\u2019s responses.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-5-translation-functions\"><strong>5. Translation Functions<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>def translate_to_english(text):\n\n\u00a0\u00a0\u00a0try:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0detected_lang = detect(text)\u00a0 # Detect language\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if detected_lang == \"en\":\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return text, \"en\"\u00a0 # No translation needed\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0translated_text = GoogleTranslator(source=detected_lang, target=\"en\").translate(text)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return translated_text, detected_lang\u00a0 # Return translated text and original language\n\n\u00a0\u00a0\u00a0except Exception as e:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return text, \"unknown\"\u00a0 # Return original text if translation fails\n\ndef translate_back(text, target_lang):\n\n\u00a0\u00a0\u00a0try:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if target_lang == \"en\":\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return text\u00a0 # No translation needed\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return GoogleTranslator(source=\"en\", target=target_lang).translate(text)\n\n\u00a0\u00a0\u00a0except Exception as e:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return text\u00a0 # Return original if translation fails<\/code><\/pre>\n<p>These functions handle the translation of user input to English and back to the original language. They use the deep_translator library to perform the translations.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-6-memory-management\"><strong>6. Memory Management<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>if \"chat_memory\" not in st.session_state:\n\n\u00a0\u00a0\u00a0st.session_state.chat_memory = ConversationBufferMemory(memory_key=\"chat_history\", return_messages=True)<\/code><\/pre>\n<p>This code ensures that the chat memory is persistent across sessions, allowing the bot to remember previous interactions.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-7-creating-the-conversational-agent\"><strong>7. Creating the Conversational Agent<\/strong><\/h3>\n<pre class=\"wp-block-code\"><code>def get_conversational_agent():\n\n\u00a0\u00a0\u00a0llm = load_llm()\n\n\u00a0\u00a0\u00a0return initialize_agent(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tools=tools,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0llm=llm,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0memory=st.session_state.chat_memory,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0verbose=True,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return_intermediate_steps=False,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0max_iterations=5,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0handle_parsing_errors=True\n\n\u00a0\u00a0\u00a0)<\/code><\/pre>\n<p>This function initializes the conversational agent with the loaded language model and the tools for information retrieval.<\/p>\n<h3 class=\"wp-block-heading\" id=\"h-8-streamlit-chat-ui\">8. Streamlit Chat UI<\/h3>\n<pre class=\"wp-block-code\"><code>def main():\n\n\u00a0\u00a0\u00a0# Set Background Image\n\n\u00a0\u00a0\u00a0...\n\n\u00a0\u00a0\u00a0st.title(\"\ud83c\udf3e Agri Bot (Multilingual) \ud83c\udf3e\")\n\n\u00a0\u00a0\u00a0st.subheader(\"Your Smart Assistant for Farming and Agriculture\")\n\n\u00a0\u00a0\u00a0if st.button(\"Reset Conversation\"):\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.chat_memory.clear()\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.messages = []\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.success(\"Chat history cleared!\")\n\n\u00a0\u00a0\u00a0if \"messages\" not in st.session_state:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.messages = []\n\n\u00a0\u00a0\u00a0# Display past chat history\n\n\u00a0\u00a0\u00a0for message in st.session_state.messages:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.chat_message(message[\"role\"]).markdown(message[\"content\"])\n\n\u00a0\u00a0\u00a0# Get user input\n\n\u00a0\u00a0\u00a0prompt = st.chat_input(\"Ask your farming-related question here (in any language)...\")\n\n\u00a0\u00a0\u00a0if prompt:\n\nst.chat_message(\"user\").markdown(prompt)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.messages.append({\"role\": \"user\", \"content\": prompt})\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0translated_query, original_lang = translate_to_english(prompt)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.write(f\"\ud83d\udd0d *Detected Language:* {original_lang.upper()}\")\u00a0 # Show detected language\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.write(f\"\ud83d\udd04 *Translated Query:* {translated_query}\")\u00a0 # Show translated query\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0agent = get_conversational_agent()\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0def trim_chat_memory(max_length=5):#\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"\"\" Retains only the last `max_length` messages in memory. \"\"\"\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chat_history = st.session_state.chat_memory.load_memory_variables({})[\"chat_history\"]\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if len(chat_history) &gt; max_length:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.chat_memory.chat_memory.messages = chat_history[-max_length:]#\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return chat_history\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0# Apply trimming before invoking the agent\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0chat_history = trim_chat_memory(max_length=5)#\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0conversation_context = \"\\n\".join([msg.content for msg in chat_history])\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0full_prompt = f\"\"\"\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Previous conversation:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{conversation_context}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0User: {prompt}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Assistant: Think carefully. You are allowed to search a maximum of 2 times strictly.\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0If you have found enough information from previous searches, STOP searching and generate an convincing answer using the available data.\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"\"\"\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0# Retry in case of rate-limit errors\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0max_retries = 3\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for attempt in range(max_retries):\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0response = agent.invoke({\"input\": full_prompt})\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break\u00a0 # Exit loop if successful\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0except Exception as e:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.warning(f\"\u26a0 API Rate Limit! Retrying {attempt + 1}\/{max_retries}...\")\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time.sleep(2)\u00a0 # Wait and retry\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0response_text = response[\"output\"] if isinstance(response, dict) and \"output\" in response else str(response)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0final_response = translate_back(response_text, original_lang)\u00a0 # Translate back to original language\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.chat_message(\"assistant\").markdown(final_response)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.session_state.messages.append({\"role\": \"assistant\", \"content\": final_response})\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0except Exception as e:\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0st.error(f\"Error: {str(e)}\")<\/code><\/pre>\n<p><a href=\"https:\/\/github.com\/harshxmishra\/agribot\">GitHub Link for Agri Bot<\/a><\/p>\n<h3 class=\"wp-block-heading\" id=\"h-code-explanation\">Code Explanation<\/h3>\n<p>Let\u2019s break down the code\u2019s functionality, step by step:<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-1-streamlit-setup\">1. Streamlit Setup<\/h4>\n<p>The code initializes a Streamlit application, creating the user interface for the chatbot.<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-2-chat-input\">2. Chat Input<\/h4>\n<p>st.chat_input creates a text input area where the user can type their messages.<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-3-user-message-handling\">3. User Message Handling<\/h4>\n<p>When the user submits a message:<\/p>\n<ul class=\"wp-block-list\">\n<li>The message is captured.<\/li>\n<li>translate_to_english converts the user\u2019s message to English. This is crucial for consistent interaction with the English-centric LLM.<\/li>\n<li>The original (user language) and translated (English) messages are displayed in the chat window using st.chat_message.<\/li>\n<\/ul>\n<h4 class=\"wp-block-heading\" id=\"h-4-langchain-agent-query\">4. LangChain Agent Query<\/h4>\n<ul class=\"wp-block-list\">\n<li>get_conversational_agent is called to retrieve or initialize a LangChain agent. This agent is designed to handle conversational queries, likely using an LLM and potentially other tools.<\/li>\n<li>The current conversation history (from st.session_state.chat_memory) is included in the prompt sent to the agent. This context is essential for a coherent conversation.<\/li>\n<li>The agent processes the prompt (including the user\u2019s translated message and the chat history) and generates a response in English.<\/li>\n<\/ul>\n<h4 class=\"wp-block-heading\" id=\"h-5-response-handling\">5. Response Handling<\/h4>\n<ul class=\"wp-block-list\">\n<li>The English response from the agent is stored.<\/li>\n<li>translate_back converts the agent\u2019s English response back to the user\u2019s original language.<\/li>\n<li>The translated response is displayed in the chat window using st.chat_message.<\/li>\n<\/ul>\n<h4 class=\"wp-block-heading\" id=\"h-6-context-management\">6. Context Management<\/h4>\n<p>trim_chat_memory is called to limit the conversation history stored in st.session_state.chat_memory. This prevents the context from becoming too large for the LLM to handle, which is a common limitation. It usually keeps only the most recent messages.<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-7-retry-mechanism\">7. Retry Mechanism<\/h4>\n<p>The code incorporates a retry loop. If the API call to the LLM or translation service fails (e.g., due to rate limiting or temporary network issues), the code will retry the request a certain number of times before giving up. This makes the chatbot more robust.<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-8-error-handling\">8. Error Handling<\/h4>\n<p>The code includes try\u2026except blocks to catch potential errors during API calls or other operations. This prevents the application from crashing and provides a more user-friendly experience (e.g., displaying an error message).<\/p>\n<h4 class=\"wp-block-heading\" id=\"h-9-session-state\">9. Session State<\/h4>\n<p>st.session_state is used to store data that persists across user interactions. Specifically, it stores the chat_memory, which is the history of the conversation. This allows the chatbot to maintain context over multiple turns. Without st.session_state, the conversation would start fresh with every new message.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-testing-the-agribot-an-ai-for-farmers\">Testing the Agribot: An AI for farmers<\/h2>\n<p>This is the UI of the streamlit app.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"784\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999.webp\" alt=\"Agri Bot - UI of the streamlit app\" class=\"wp-image-221079\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999.webp 1600w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999-300x147.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999-768x376.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999-1536x753.webp 1536w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T122945.999-150x74.webp 150w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"\/><\/figure>\n<p>Here, I asked the bot \u201cWhat are the crops grown in Haryana?\u201d, we can see that it detected the language is \u201cen\u201d.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"785\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514.webp\" alt=\"Agri Bot\" class=\"wp-image-221080\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514.webp 1600w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514-300x147.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514-768x377.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514-1536x754.webp 1536w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123031.514-150x74.webp 150w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"\/><\/figure>\n<p>Now it gives real-time answers using Web search, Wikipedia and Arxiv AI agents and presents answers precisely.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"783\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110.webp\" alt=\"Agribot\" class=\"wp-image-221081\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110.webp 1600w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110-300x147.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110-768x376.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110-1536x752.webp 1536w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123105.110-150x73.webp 150w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\"\/><\/figure>\n<p>This image shows that Agribot can understand different regional languages and can answer in those languages, here we can see that the detected language is Tamil \u201cte\u201d and the output is also in Tamil language.<\/p>\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"995\" height=\"601\" src=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374.webp\" alt=\"AI for farmers\" class=\"wp-image-221082\" srcset=\"https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374.webp 995w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374-300x181.webp 300w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374-768x464.webp 768w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374-200x120.webp 200w, https:\/\/cdn.analyticsvidhya.com\/wp-content\/uploads\/2025\/02\/unnamed-2025-02-12T123130.374-150x91.webp 150w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\"\/><\/figure>\n<h2 class=\"wp-block-heading\" id=\"h-future-improvements-in-ai-for-farmers\">Future Improvements in AI for Farmers<\/h2>\n<p>While Agri Bot is functional, there are several areas for improvement:<\/p>\n<ul class=\"wp-block-list\">\n<li>Voice Input and Responses: Adding support for voice interactions could enhance accessibility.<\/li>\n<li>Domain-Specific Fine-Tuning: Fine-tuning the model on agricultural data could improve response accuracy.<\/li>\n<li>UI\/UX Enhancements: Further improvements to the user interface could provide a better user experience.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n<p>Agri Bot is a powerful tool that leverages AI and multilingual capabilities to assist farmers and agricultural enthusiasts. The combination of real-time information retrieval, language translation, and conversational memory makes it a unique and valuable resource. I look forward to further developing this project and exploring new features to enhance its functionality of AI in Agriculture.<\/p>\n<div class=\"border-top py-3 author-info my-4\">\n<div class=\"author-card d-flex align-items-center\">\n<div class=\"flex-shrink-0 overflow-hidden\">\n                                    <a href=\"https:\/\/www.analyticsvidhya.com\/blog\/author\/harsh9480979\/\" class=\"text-decoration-none active-avatar\"><br \/>\n                                                                       <img decoding=\"async\" src=\"https:\/\/av-eks-lekhak.s3.amazonaws.com\/media\/lekhak-profile-images\/converted_image_0fBqNLi.webp\" width=\"48\" height=\"48\" alt=\"Harsh Mishra\" loading=\"lazy\" class=\"rounded-circle\"\/><\/p>\n<p>                                <\/a>\n                                <\/div>\n<\/p><\/div>\n<p>Harsh Mishra is an AI\/ML Engineer who spends more time talking to Large Language Models than actual humans. Passionate about GenAI, NLP, and making machines smarter (so they don\u2019t replace him just yet). When not optimizing models, he\u2019s probably optimizing his coffee intake. \ud83d\ude80\u2615<\/p>\n<\/p><\/div>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>In a recent hackathon, I developed Agri Bot, an AI-powered chatbot designed to assist farmers and agricultural enthusiasts by providing accurate and multilingual farming-related information. This article will walk you through the features, architecture, and code behind Agri Bot, showcasing how it leverages advanced technologies to create a user-friendly experience. In the Agriculture sector, access [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":83632,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[3038,15919,37075,41503],"dealstore":[],"offerexpiration":[],"class_list":["post-83629","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-agent","tag-farmers","tag-langchain","tag-multilingual"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/som2nynetwork.com\/?p=83629\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"In a recent hackathon, I developed Agri Bot, an AI-powered chatbot designed to assist farmers and agricultural enthusiasts by providing accurate and multilingual farming-related information. This article will walk you through the features, architecture, and code behind Agri Bot, showcasing how it leverages advanced technologies to create a user-friendly experience. In the Agriculture sector, access [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/som2nynetwork.com\/?p=83629\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-12T09:04:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"872\" \/>\n\t<meta property=\"og:image:height\" content=\"473\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#article\",\"isPartOf\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30\"},\"headline\":\"A Multilingual AI Agent for Farmers Using LangChain\",\"datePublished\":\"2025-02-12T09:04:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629\"},\"wordCount\":1095,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/som2nynetwork.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#primaryimage\"},\"thumbnailUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp\",\"keywords\":[\"Agent\",\"Farmers\",\"LangChain\",\"Multilingual\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/som2nynetwork.com\/?p=83629#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629\",\"url\":\"https:\/\/som2nynetwork.com\/?p=83629\",\"name\":\"A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/som2nynetwork.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#primaryimage\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#primaryimage\"},\"thumbnailUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp\",\"datePublished\":\"2025-02-12T09:04:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/som2nynetwork.com\/?p=83629\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#primaryimage\",\"url\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp\",\"contentUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp\",\"width\":872,\"height\":473},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=83629#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/som2nynetwork.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Multilingual AI Agent for Farmers Using LangChain\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/som2nynetwork.com\/#website\",\"url\":\"https:\/\/som2nynetwork.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/som2nynetwork.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/som2nynetwork.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/som2nynetwork.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/som2nynetwork.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/som2nynetwork.com\"],\"url\":\"https:\/\/som2nynetwork.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/som2nynetwork.com\/?p=83629","og_locale":"en_US","og_type":"article","og_title":"A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network","og_description":"In a recent hackathon, I developed Agri Bot, an AI-powered chatbot designed to assist farmers and agricultural enthusiasts by providing accurate and multilingual farming-related information. This article will walk you through the features, architecture, and code behind Agri Bot, showcasing how it leverages advanced technologies to create a user-friendly experience. In the Agriculture sector, access [&hellip;]","og_url":"https:\/\/som2nynetwork.com\/?p=83629","og_site_name":"Som2ny Network","article_published_time":"2025-02-12T09:04:12+00:00","og_image":[{"width":872,"height":473,"url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp","type":"image\/webp"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/som2nynetwork.com\/?p=83629#article","isPartOf":{"@id":"https:\/\/som2nynetwork.com\/?p=83629"},"author":{"name":"admin","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30"},"headline":"A Multilingual AI Agent for Farmers Using LangChain","datePublished":"2025-02-12T09:04:12+00:00","mainEntityOfPage":{"@id":"https:\/\/som2nynetwork.com\/?p=83629"},"wordCount":1095,"commentCount":0,"publisher":{"@id":"https:\/\/som2nynetwork.com\/#organization"},"image":{"@id":"https:\/\/som2nynetwork.com\/?p=83629#primaryimage"},"thumbnailUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp","keywords":["Agent","Farmers","LangChain","Multilingual"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/som2nynetwork.com\/?p=83629#respond"]}]},{"@type":"WebPage","@id":"https:\/\/som2nynetwork.com\/?p=83629","url":"https:\/\/som2nynetwork.com\/?p=83629","name":"A Multilingual AI Agent for Farmers Using LangChain - Som2ny Network","isPartOf":{"@id":"https:\/\/som2nynetwork.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/som2nynetwork.com\/?p=83629#primaryimage"},"image":{"@id":"https:\/\/som2nynetwork.com\/?p=83629#primaryimage"},"thumbnailUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp","datePublished":"2025-02-12T09:04:12+00:00","breadcrumb":{"@id":"https:\/\/som2nynetwork.com\/?p=83629#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/som2nynetwork.com\/?p=83629"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/?p=83629#primaryimage","url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp","contentUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/02\/Agri-Bot-A-Multilingual-AI-Assistant-for-Farmers-using-AI-Agents-.webp.webp","width":872,"height":473},{"@type":"BreadcrumbList","@id":"https:\/\/som2nynetwork.com\/?p=83629#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/som2nynetwork.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"A Multilingual AI Agent for Farmers Using LangChain"}]},{"@type":"WebSite","@id":"https:\/\/som2nynetwork.com\/#website","url":"https:\/\/som2nynetwork.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/som2nynetwork.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/som2nynetwork.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/som2nynetwork.com\/#organization","name":"Som2ny Network","url":"https:\/\/som2nynetwork.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/","url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/som2nynetwork.com"],"url":"https:\/\/som2nynetwork.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/83629","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=83629"}],"version-history":[{"count":0,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/83629\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/media\/83632"}],"wp:attachment":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=83629"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=83629"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=83629"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=83629"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=83629"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}