Spaces:
Build error
Build error
| import json | |
| from langchain_core.prompts import MessagesPlaceholder | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from langchain_core.messages import AIMessage, HumanMessage | |
| from langchain.agents.format_scratchpad.openai_tools import ( | |
| format_to_openai_tool_messages, | |
| ) | |
| from langchain import PromptTemplate, LLMChain | |
| import os | |
| from dotenv import load_dotenv | |
| from langchain.memory import ConversationBufferWindowMemory | |
| from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder, HumanMessagePromptTemplate | |
| from langchain.chains import ConversationChain | |
| from langchain_mongodb.chat_message_histories import MongoDBChatMessageHistory | |
| from pymongo import MongoClient | |
| from langchain_openai import ChatOpenAI | |
| load_dotenv() | |
| default_json = {} | |
| class FormFillingBot: | |
| def __init__(self): | |
| self.llm = ChatOpenAI(model="gpt-3.5-turbo", openai_api_key=os.getenv("OPENAI_API_KEY"), temperature=0) | |
| def get_current_form_json(self,uuid): | |
| CONNECTION_STRING = "mongodb+srv://dharasolanki:8apF57ZCeX16fKny@cluster0.egh8f3k.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0" | |
| # Connect to the MongoDB client | |
| client = MongoClient(CONNECTION_STRING) | |
| # Select the database and collection | |
| db = client['benefitboost'] | |
| collection = db['currentFormJson'] | |
| # The UUID to search for | |
| uuid_to_find = uuid | |
| # Find the document with the specified UUID | |
| document =collection.find_one({"uuid": uuid_to_find}) | |
| if document: | |
| currentformjson = document.get('currentformjson', None) | |
| if currentformjson: | |
| print("Current Form JSON:", currentformjson) | |
| else: | |
| print("The 'currentformjson' field is not found in the document.") | |
| else: | |
| print(f"No document found with UUID: {uuid_to_find}") | |
| return currentformjson | |
| def form_filling(self, form_data,default_json): | |
| "Use this tool for form filling task" | |
| friendly_prompt = PromptTemplate( | |
| input_variables=["user_input", "default_json"], | |
| template="""You are a form-filling expert that takes the data from user input and finds the related field in {default_json} and returns the json provided with the details of the user. If you do not encounter fields of form then give response as you are a question-answering bot. If you do not find the details put it blank, do not try to fill every detail if it is not present in user_input. Here are the details entered by the user: {user_input}""" | |
| ) | |
| friendly_chain = LLMChain(llm=self.llm, prompt=friendly_prompt) | |
| response = friendly_chain.invoke({"user_input": form_data, "default_json": default_json}) | |
| return response["text"] |