Kitcher / app.py
Samilincoln
reverted
19d5716
import os
import pandas as pd
import google.generativeai as genai
import gradio as gr
from google.api_core import retry
my_api_key = os.environ.get("GOOGLE-API-KEY")
genai.configure(api_key=my_api_key)
MODEL_NAME = 'gemini-1.5-flash-latest'
retry_policy = {"retry": retry.Retry(predicate=retry.if_transient_error, initial=10, multiplier= 1.5, timeout=300)}
model = genai.GenerativeModel(
MODEL_NAME,
generation_config= genai.GenerationConfig(
temperature= 1.0,
top_p= 1,
max_output_tokens=1000,
)
)
data_path = os.path.join("docs", "Nigerian_Foods.csv")
json_path = os.path.join("docs", "food_data.json")
food_data = pd.read_csv(data_path)
json_data = food_data.to_json(orient="records", lines=False, indent=4)
with open(json_path, "w") as json_file:
json_file.write(json_data)
few_shot_prompt = f"""
You are an interactive recipe assistant. Use the following dataset to recommend recipes:
{json_data}
Instructions:
1. Provide recipes based on the user's query.
2. If the requested recipe is unavailable, suggest the most similar one.
3. Maintain context across multiple messages.
"""
history = []
def recipe_chatbot(messages: str, history: list[str]):
ask = {
"current message" : messages,
"previous message": history[::-1]
}
history.append(messages)
response = model.generate_content([few_shot_prompt,ask], request_options=retry_policy)
return response.text
bot = gr.ChatInterface(
fn=recipe_chatbot,
type="messages"
)
bot.launch()