Ishanpardeshi commited on
Commit
3e11bca
1 Parent(s): 6c7d301

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -36
app.py CHANGED
@@ -7,7 +7,6 @@ from crewai_tools import PDFSearchTool, FileReadTool, DOCXSearchTool, CSVSearchT
7
  from langchain_google_genai import ChatGoogleGenerativeAI
8
  from langchain.agents.agent_types import AgentType
9
  from langchain_experimental.agents.agent_toolkits import create_csv_agent
10
- import asyncio
11
 
12
  # API keys-----------------move them to ENV
13
  os.environ["OPENAI_API_KEY"] = "NA"
@@ -91,7 +90,7 @@ class tools:
91
 
92
  class AgentLoader:
93
 
94
- async def csvReaderAgent(path):
95
  agent = create_csv_agent(
96
  ChatGoogleGenerativeAI(temperature=0.6, model="gemini-1.5-flash-latest"),
97
  path,
@@ -100,7 +99,7 @@ class AgentLoader:
100
  )
101
  return agent
102
 
103
- async def fileReaderAgent(path):
104
  FileReader = Agent(
105
  role='File searcher',
106
  goal='To analyse and generate optimal and reliable results',
@@ -114,7 +113,7 @@ class AgentLoader:
114
  )
115
  return FileReader
116
 
117
- async def PdfReaderAgent(path):
118
  PdfReader = Agent(
119
  role='PDF searcher',
120
  goal='To analyse and generate optimal and reliable results',
@@ -128,7 +127,7 @@ class AgentLoader:
128
  )
129
  return PdfReader
130
 
131
- async def DocsReaderAgent(path):
132
  DocsReader = Agent(
133
  role='Docs searcher',
134
  goal='To analyse and generate optimal and reliable results',
@@ -142,11 +141,11 @@ class AgentLoader:
142
  )
143
  return DocsReader
144
 
145
- async def writerAgent():
146
- writer = Agent(
147
  role='Content Writer',
148
  goal='To produce higly accurate and easy to understand information',
149
- backstory="""You are a content specialist and are responsible to generate reliable and easy to understand content or information based on the summary of data.
150
  You should provide indetail results on the summary data.""",
151
  verbose=True,
152
  llm=llm
@@ -156,18 +155,16 @@ class AgentLoader:
156
  #<------------------------------Agents END------------------------->
157
 
158
  #<-------------------------------Tasks---------------------------->
159
- async def getTasks(query, agent, exp):
160
- task_read = Task(
161
  description=f'{query}',
162
  agent=agent,
163
  expected_output=f'A detailed information on {query}'
164
  )
165
 
166
- writer_agent = await AgentLoader.writerAgent()
167
-
168
- task_write = Task(
169
  description=f'{query}',
170
- agent=writer_agent,
171
  expected_output=exp
172
  )
173
 
@@ -176,32 +173,29 @@ async def getTasks(query, agent, exp):
176
  # Gradio interface function
177
  def process_file(file, query, expected_output):
178
  path = file.name
179
-
180
- async def process_async():
181
- if path.endswith(".pdf"):
182
- agent = await AgentLoader.PdfReaderAgent(path)
183
- elif path.endswith(".docx"):
184
- agent = await AgentLoader.DocsReaderAgent(path)
185
- elif path.endswith(".json") or path.endswith(".txt"):
186
- agent = await AgentLoader.fileReaderAgent(path)
187
- elif path.endswith(".csv"):
188
- agent = await AgentLoader.csvReaderAgent(path)
189
- results = agent.run(query)
190
- return results
191
- else:
192
- return 'File NOT supported'
193
-
194
- tasks = await getTasks(query, agent, expected_output)
195
  mycrew = Crew(
196
- agents=[agent, await AgentLoader.writerAgent()],
197
- tasks=tasks,
198
  verbose=True
199
  )
200
  results = mycrew.kickoff()
201
- return results
202
-
203
- loop = asyncio.get_event_loop()
204
- return loop.run_until_complete(process_async())
205
 
206
  # Create the Gradio interface
207
  interface = gr.Interface(
 
7
  from langchain_google_genai import ChatGoogleGenerativeAI
8
  from langchain.agents.agent_types import AgentType
9
  from langchain_experimental.agents.agent_toolkits import create_csv_agent
 
10
 
11
  # API keys-----------------move them to ENV
12
  os.environ["OPENAI_API_KEY"] = "NA"
 
90
 
91
  class AgentLoader:
92
 
93
+ def csvReaderAgent(path):
94
  agent = create_csv_agent(
95
  ChatGoogleGenerativeAI(temperature=0.6, model="gemini-1.5-flash-latest"),
96
  path,
 
99
  )
100
  return agent
101
 
102
+ def fileReaderAgent(path):
103
  FileReader = Agent(
104
  role='File searcher',
105
  goal='To analyse and generate optimal and reliable results',
 
113
  )
114
  return FileReader
115
 
116
+ def PdfReaderAgent(path):
117
  PdfReader = Agent(
118
  role='PDF searcher',
119
  goal='To analyse and generate optimal and reliable results',
 
127
  )
128
  return PdfReader
129
 
130
+ def DocsReaderAgent(path):
131
  DocsReader = Agent(
132
  role='Docs searcher',
133
  goal='To analyse and generate optimal and reliable results',
 
141
  )
142
  return DocsReader
143
 
144
+ def writerAgent():
145
+ writer=Agent(
146
  role='Content Writer',
147
  goal='To produce higly accurate and easy to understand information',
148
+ backstory="""You are an content specialist and are respinsible to generate reliable and easy to understand content or information based on the summary of data.
149
  You should provide indetail results on the summary data.""",
150
  verbose=True,
151
  llm=llm
 
155
  #<------------------------------Agents END------------------------->
156
 
157
  #<-------------------------------Tasks---------------------------->
158
+ def getTasks(query, agent, exp):
159
+ task_read=Task(
160
  description=f'{query}',
161
  agent=agent,
162
  expected_output=f'A detailed information on {query}'
163
  )
164
 
165
+ task_write=Task(
 
 
166
  description=f'{query}',
167
+ agent=AgentLoader.writerAgent(),
168
  expected_output=exp
169
  )
170
 
 
173
  # Gradio interface function
174
  def process_file(file, query, expected_output):
175
  path = file.name
176
+
177
+ if path.endswith(".pdf"):
178
+ agent = AgentLoader.PdfReaderAgent(path)
179
+ elif path.endswith(".docx"):
180
+ agent = AgentLoader.DocsReaderAgent(path)
181
+ elif path.endswith(".json") or path.endswith(".txt"):
182
+ agent = AgentLoader.fileReaderAgent(path)
183
+ elif path.endswith(".csv"):
184
+ agent = AgentLoader.csvReaderAgent(path)
185
+ results = agent.run(query)
186
+ else:
187
+ return 'File NOT supported'
188
+
189
+ if not path.endswith(".csv"):
190
+ task1 = getTasks(query, agent, expected_output)
 
191
  mycrew = Crew(
192
+ agents=[agent, AgentLoader.writerAgent()],
193
+ tasks=task1,
194
  verbose=True
195
  )
196
  results = mycrew.kickoff()
197
+
198
+ return results
 
 
199
 
200
  # Create the Gradio interface
201
  interface = gr.Interface(