import gradio as gr import sqlite3 import pandas as pd import time import huggingface_hub import shutil import os import datetime from apscheduler.schedulers.background import BackgroundScheduler from rag_output import rag_response TOKEN = os.environ.get('HFW_TOKEN') def llm_response(message, history): res = rag_response(message) for i in range(len(res)): time.sleep(0.02) yield res[: i+1] # return res def vote(response: gr.LikeData): if response.liked: add_review(1, response.value) else: add_review(0, response.value) examples = ["What are the recommended NPK dosage for maize varieties?", # "What are the recommended chemical treatments to control army worms in wheat crops?", "Heavy rains are predicted next week. Is my rice crop ready for this, or should I harvest early?", "What crops can I grow during the dry season to use water more efficiently?", "How can I improve the health of my soil after a wheat harvest, using natural methods?", # "Are there crop rotation techniques that can reduce fertilizer needs for barley?" ] # js_func = """ # function refresh() { # const url = new URL(window.location); # if (url.searchParams.get('__theme') !== 'light') { # url.searchParams.set('__theme', 'light'); # window.location.href = url.href; # } # } # """ description = "Hi! I am akṣara, an AI agronomist and I am here to help you with agriculture advisories for crops like paddy, wheat, maize, Sorghum, Barley, Cotton, Sugarcane, Soybean and Millets for the Indian subcontinent." title = "akṣara" theme = gr.themes.Soft(primary_hue="sky",) chatbot = gr.Chatbot(height="450px", show_copy_button=True, show_label=False, avatar_images=("user.webp","cropin.png")) textbox = gr.Textbox(placeholder="Ask akṣara...", min_width=300) with gr.Blocks(theme=theme, title=title, css="footer {visibility: hidden}") as akshara: gr.HTML("""

akṣara

""") gr.HTML("""

Welcome!

""") # with gr.Column(): chatbot.like(vote, None, None) gr.ChatInterface(fn=llm_response, examples=examples, cache_examples=False, chatbot=chatbot, description=description, retry_btn="Retry", undo_btn="Undo", clear_btn="Clear", submit_btn="Ask", textbox=textbox ) gr.HTML("""

Disclaimer: Beta Test version #1.0 - akṣara is still in the beta testing stage and please verify information with agronomy experts or local extensions officers """) def display_ui(): akshara.launch() if __name__ == "__main__": display_ui() pass