Recipe / app.py
HabibaMoataz's picture
Upload 2 files
dfdccdc verified
import gradio as gr
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_openai import ChatOpenAI
from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS
def recipe_generator(ingredients):
"""
This function takes a list of ingredients as input and returns a recipe using the LangChain library and OpenAI API.
"""
# Load the LangChain model and vector store
embedd = HuggingFaceEmbeddings(model_name="intfloat/multilingual-e5-large")
vector_store = FAISS.load_local("faiss_index", embedd,allow_dangerous_deserialization=True)
# Create the LangChain chain
llm = ChatOpenAI(
openai_api_key="sk-proj-JjAAcDuAsxPkm3zg9Iz2T3BlbkFJ5txMWIx2TS6T24rPYhjN",
model="gpt-3.5-turbo",
temperature=0.3
)
qa_chain = RetrievalQA.from_chain_type(
llm,
retriever=vector_store.as_retriever(),
return_source_documents=True
)
# Generate the recipe
question = f"Make a recipe using the following ingredients: {ingredients}"
result = qa_chain({"query": question})
return result["result"]
# Create the Gradio interface
interface = gr.Interface(
fn=recipe_generator,
inputs=[
gr.Textbox(
show_label=False,
placeholder="Enter your ingredients separated by commas"
),
],
outputs=[
"textbox",
],
examples=[
["chicken, rice, vegetables"],
["pasta, tomato sauce, cheese"],
],
title="Recipe Generator",
description="Enter a list of ingredients and I will generate a recipe for you."
)
# Launch the Gradio app
interface.launch()