Spaces:
Sleeping
Sleeping
| from langchain.chat_models import ChatOpenAI | |
| import gradio as gr | |
| import os | |
| from langchain.embeddings.openai import OpenAIEmbeddings | |
| from langchain.vectorstores import DeepLake | |
| from langchain import PromptTemplate | |
| from langchain import OpenAI | |
| from langchain.vectorstores import DeepLake | |
| os.environ['OPENAI_API_KEY'] = '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' | |
| os.environ["ACTIVELOOP_TOKEN"] = "eyJhbGciOiJIUzUxMiIsImlhdCI6MTY5NTE5MTAyNiwiZXhwIjoxNzU4MzQ5NDA3fQ.eyJpZCI6InV0a2Fyc2h0aXdhcmkifQ.PK_iz7uybeSmgqFvOYrICw-CQDbDY1aOjYhkMu-0Jle6gU33dCwxah7bmy39O0hPN4jYLu_RfLuU-XejyNvXrw" | |
| def predict(query,history): | |
| template = """You are an exceptional customer support chatbot for the company Modelwise that gently answers questions related to the company. | |
| You know the following context information. | |
| {chunks_formatted} | |
| Answer the following question from a customer. Use only information from the context. Do not provide wrong answers and do not make up any answers. | |
| If you don't know the answer, say you don't the answer and request the customer to contact Arnold and provide his contact details. | |
| If you know the answer, don't ask the customer to contact Arnold unless the customer specifically asks for someone's contact details. | |
| Question: {query} | |
| Answer:""" | |
| # Create a PromptTemplate instance | |
| prompt = PromptTemplate( | |
| input_variables=["chunks_formatted", "query"], | |
| template=template, | |
| ) | |
| embeddings = OpenAIEmbeddings(model="text-embedding-ada-002") | |
| my_activeloop_org_id = "utkarshtiwari" | |
| my_activeloop_dataset_name = "modelwise-dataset" | |
| dataset_path = f"hub://{my_activeloop_org_id}/{my_activeloop_dataset_name}" | |
| db = DeepLake(dataset_path=dataset_path, read_only=True, embedding_function = embeddings) | |
| # Retrieve relevant chunks from the Knowledge Base | |
| docs = db.similarity_search(query) | |
| retrieved_chunks = [doc.page_content for doc in docs] | |
| # Format the prompt with retrieved chunks and user query | |
| chunks_formatted = "\n\n".join(retrieved_chunks) | |
| prompt_formatted = prompt.format(chunks_formatted=chunks_formatted, query=query) | |
| # Create an OpenAI instance for text generation | |
| llm = OpenAI(model="text-davinci-003", temperature=0) | |
| # Generate the answer using GPT-3 | |
| answer = llm(prompt_formatted) | |
| print(answer) | |
| return answer | |
| gr.ChatInterface(predict).launch() |