Spaces:
Configuration error
Configuration error
| print('bdldjfld') | |
| from flask import Flask, render_template, jsonify, request | |
| from src.helper import download_embeddings | |
| from langchain_pinecone import PineconeVectorStore | |
| from langchain_openai import ChatOpenAI | |
| from langchain.chains import create_retrieval_chain | |
| from langchain.chains.combine_documents import create_stuff_documents_chain | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from langchain.schema import Document | |
| from dotenv import load_dotenv | |
| from src.prompt import * | |
| import os | |
| from transformers import pipeline | |
| from langchain_community.llms import HuggingFacePipeline | |
| # Cleaning function for model output | |
| import re | |
| def clean_text(text): | |
| text = re.sub(r'-\n', '', text) | |
| text = text.replace('\n', ' ') | |
| text = re.sub(r' +', ' ', text) | |
| text = re.sub(r'/C\d+', '', text) | |
| # Remove lines with 'Reproduced by permission' or 'GALE ENCYCLOPEDIA OF MEDICINE' | |
| text = re.sub(r'Reproduced by permission[^\.\n]*[\.]?', '', text, flags=re.IGNORECASE) | |
| text = re.sub(r'GALE ENCYCLOPEDIA OF MEDICINE[^\.\n]*[\.]?', '', text, flags=re.IGNORECASE) | |
| text = re.sub(r'Researchers,? Inc[^\.\n]*[\.]?', '', text, flags=re.IGNORECASE) | |
| return text.strip() | |
| app = Flask(__name__) | |
| # Add a greeting document to the Pinecone index | |
| load_dotenv() | |
| Pinecone_API_KEY = os.getenv("Pinecone_API_KEY") | |
| os.environ["Pinecone_API_KEY"] = Pinecone_API_KEY | |
| if not Pinecone_API_KEY: | |
| raise ValueError("Missing Pinecone API key. Set it in Hugging Face secrets.") | |
| embeddings = download_embeddings() | |
| index_name = "doctor-ai" | |
| docsearch=PineconeVectorStore.from_existing_index( | |
| index_name=index_name, | |
| embedding=embeddings | |
| ) | |
| retriever= docsearch.as_retriever(search_type="similarity",search_kwargs={"k": 3}) | |
| generator = pipeline( "text2text-generation", model="google/flan-t5-large", device=-1) | |
| chat_model = HuggingFacePipeline(pipeline=generator) | |
| #prompt= ChatPromptTemplate.from_messages( | |
| # [ | |
| # ("system", system_prompt), | |
| # ("human", "{input}") | |
| # ] | |
| #) | |
| prompt = ChatPromptTemplate.from_template(system_prompt) | |
| question_answer_chain = create_stuff_documents_chain(chat_model, prompt) | |
| rag_chain = create_retrieval_chain(retriever, question_answer_chain) | |
| #question_answer_chain = create_stuff_documents_chain(chat_model, prompt) | |
| #rag_chain = create_retrieval_chain(retriever, question_answer_chain) | |
| def index(): | |
| return render_template('chat.html') | |
| def chat(): | |
| msg=request.form["msg"] | |
| input=msg | |
| print(input) | |
| response = rag_chain.invoke({"input": input}) | |
| cleaned_answer = clean_text(response["answer"]) | |
| print("Response:", cleaned_answer) | |
| return str(cleaned_answer) | |
| if __name__ == '__main__': | |
| app.run(host='0.0.0.0', port=7860, debug=True) | |