eat2fit / agent.py
DurgaDeepak's picture
Create agent.py
ec0a2ba verified
raw
history blame
1.16 kB
from meal_loader import documents
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_community.llms import HuggingFaceHub
from langchain.chains import ConversationalRetrievalChain
from langchain.memory import ConversationBufferMemory
embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
db = FAISS.from_documents(documents, embeddings)
retriever = db.as_retriever(search_kwargs={"k": 3})
llm = HuggingFaceHub(repo_id="mistralai/Mistral-7B-Instruct-v0.1", model_kwargs={"temperature": 0.3, "max_new_tokens": 500})
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
qa_chain = ConversationalRetrievalChain.from_llm(llm=llm, retriever=retriever, memory=memory)
def generate_response(message, history, preferences):
prompt = f"""
You are a meal plan assistant. The user has the following preferences:
- Diet: {', '.join(preferences['diet'])}
- Goal: {preferences['goal']}
- Duration: {preferences['weeks']} week(s)
User query: {message}
"""
result = qa_chain({"question": prompt})
return result["answer"]