Spaces:
Sleeping
Sleeping
from langchain_community.utilities import SerpAPIWrapper | |
from langgraph.prebuilt import create_react_agent | |
import getpass | |
import os | |
import sqlite3 | |
from langchain_openai import ChatOpenAI | |
from langchain_community.tools.tavily_search import TavilySearchResults | |
from langchain_core.messages import HumanMessage,AIMessage | |
from langchain.agents import initialize_agent | |
from langchain.agents.agent_types import AgentType | |
from langchain_community.agent_toolkits.sql.toolkit import SQLDatabaseToolkit | |
from langchain_community.utilities.sql_database import SQLDatabase | |
from langchain_openai import ChatOpenAI | |
from langchain_groq import ChatGroq | |
from dotenv import load_dotenv | |
load_dotenv('.env') | |
class Script: | |
def __init__(self): | |
self.model = ChatOpenAI(model="gpt-4o-mini") | |
self.groq = ChatGroq(model='llama3-70b-8192') | |
self.db = SQLDatabase.from_uri("sqlite:///sample_database.db") | |
self.toolkit = SQLDatabaseToolkit(db=self.db, llm=self.model) | |
search = TavilySearchResults(name='Search-Tool',max_results=1,max_retries=3, description='A Search Tool that can be used to get zip codes, city, state, etc.') | |
tools = self.toolkit.get_tools()+[search] | |
self.agent = create_react_agent(self.model, tools) | |
def history(self,hist): | |
message = [] | |
for i in hist[-5:]: | |
if(i['role']=='user'): | |
message+=[HumanMessage(content=i['content'])] | |
else: | |
message+=[AIMessage(content=i['content'])] | |
return message | |
def request(self,message): | |
message = self.history(message) | |
try : | |
response = self.agent.invoke({"messages": message}) | |
return response["messages"][-1].content | |
except: | |
return 'Sorry unable to process the request' |