|
import os |
|
from dotenv import load_dotenv |
|
import google.generativeai as genai |
|
|
|
load_dotenv() |
|
|
|
SYS_INSTR = "You are a plant disease expert. You will be given queries regarding plant diseases. Always respond in Markdown" |
|
TXT_PROMPT = "Suggest remedy for the disease in bullet points" |
|
IMG_TXT_PROMPT = "Based on the given image, suggest the possible disease the plant is suffering from, along with the remedy in 150 words" |
|
|
|
|
|
def llm_strategy(llm_name, disease_name, image_file=None): |
|
if llm_name.lower() == "gemini": |
|
return get_response_from_gemini(disease_name, image_file) |
|
else: |
|
raise ValueError(f"LLM {llm_name} not supported") |
|
|
|
|
|
def get_response_from_gemini(disease_name, image_file=None) -> str: |
|
genai.configure(api_key=os.environ["GEMINI_API_KEY"]) |
|
model = genai.GenerativeModel("gemini-1.5-flash", system_instruction=SYS_INSTR) |
|
|
|
generation_config = genai.GenerationConfig(max_output_tokens=300) |
|
|
|
prompt = [TXT_PROMPT, disease_name] |
|
if image_file: |
|
prompt = [IMG_TXT_PROMPT, image_file] |
|
response = model.generate_content(prompt, generation_config=generation_config) |
|
return response.text |
|
|