Spaces:
Paused
Paused
Update crew.py
Browse files
crew.py
CHANGED
|
@@ -1,10 +1,6 @@
|
|
| 1 |
import os
|
| 2 |
from crewai import Agent, Crew, Process, Task
|
| 3 |
from crewai.tools import tool
|
| 4 |
-
#from crewai_tools import (
|
| 5 |
-
# SerperDevTool,
|
| 6 |
-
# WebsiteSearchTool
|
| 7 |
-
#)
|
| 8 |
from google import genai
|
| 9 |
from google.genai import types
|
| 10 |
from openinference.instrumentation.crewai import CrewAIInstrumentor
|
|
@@ -44,9 +40,6 @@ CrewAIInstrumentor().instrument(tracer_provider=tracer_provider)
|
|
| 44 |
def run_crew(question, file_path):
|
| 45 |
# Tools
|
| 46 |
|
| 47 |
-
#web_search_tool = SerperDevTool()
|
| 48 |
-
#web_rag_tool = WebsiteSearchTool()
|
| 49 |
-
|
| 50 |
@tool("Web Search Tool")
|
| 51 |
def web_search_tool(question: str) -> str:
|
| 52 |
"""Search the web to answer a question.
|
|
@@ -60,15 +53,6 @@ def run_crew(question, file_path):
|
|
| 60 |
Raises:
|
| 61 |
RuntimeError: If processing fails"""
|
| 62 |
try:
|
| 63 |
-
#client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
|
| 64 |
-
|
| 65 |
-
#response = client.models.generate_content(
|
| 66 |
-
# model=IMAGE_MODEL,
|
| 67 |
-
# contents=[file, question]
|
| 68 |
-
#)
|
| 69 |
-
|
| 70 |
-
#return response.text
|
| 71 |
-
###
|
| 72 |
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
|
| 73 |
|
| 74 |
response = client.models.generate_content(
|
|
@@ -80,7 +64,6 @@ def run_crew(question, file_path):
|
|
| 80 |
)
|
| 81 |
|
| 82 |
return response.text
|
| 83 |
-
###
|
| 84 |
except Exception as e:
|
| 85 |
raise RuntimeError(f"Processing failed: {str(e)}")
|
| 86 |
|
|
@@ -194,7 +177,7 @@ def run_crew(question, file_path):
|
|
| 194 |
@tool("Document Analysis Tool")
|
| 195 |
def document_analysis_tool(question: str, file_path: str) -> str:
|
| 196 |
"""Answer a question about a document file. Supported document types include:
|
| 197 |
-
.txt, .csv, .xml, .rtf, .pdf, .md, .html, .css, .js
|
| 198 |
|
| 199 |
Args:
|
| 200 |
question (str): Question about a document file
|
|
@@ -341,7 +324,7 @@ def run_crew(question, file_path):
|
|
| 341 |
|
| 342 |
document_analysis_agent = Agent(
|
| 343 |
role="Document Analysis Agent",
|
| 344 |
-
goal="Analyze document of type .txt, .csv, .xml, .rtf, .pdf, .md, .html, .css, .js to help answer question \"{question}\"",
|
| 345 |
backstory="As an expert document analysis assistant, you analyze the document to help answer the question.",
|
| 346 |
allow_delegation=False,
|
| 347 |
llm=AGENT_MODEL,
|
|
@@ -400,7 +383,7 @@ def run_crew(question, file_path):
|
|
| 400 |
audio_analysis_agent,
|
| 401 |
video_analysis_agent,
|
| 402 |
youtube_analysis_agent,
|
| 403 |
-
document_analysis_agent,
|
| 404 |
code_generation_agent,
|
| 405 |
code_execution_agent],
|
| 406 |
manager_agent=manager_agent,
|
|
@@ -413,10 +396,6 @@ def run_crew(question, file_path):
|
|
| 413 |
if file_path:
|
| 414 |
question = f"{question} File path: {file_path}."
|
| 415 |
|
| 416 |
-
#if file_path.endswith(".py"):
|
| 417 |
-
# with open(f"{file_path}", "r") as file:
|
| 418 |
-
# question = f"{question} File data:\n{file.read()}"
|
| 419 |
-
|
| 420 |
initial_answer = crew.kickoff(inputs={"question": question})
|
| 421 |
final_answer = get_final_answer(FINAL_ANSWER_MODEL, question, str(initial_answer))
|
| 422 |
|
|
|
|
| 1 |
import os
|
| 2 |
from crewai import Agent, Crew, Process, Task
|
| 3 |
from crewai.tools import tool
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
from google import genai
|
| 5 |
from google.genai import types
|
| 6 |
from openinference.instrumentation.crewai import CrewAIInstrumentor
|
|
|
|
| 40 |
def run_crew(question, file_path):
|
| 41 |
# Tools
|
| 42 |
|
|
|
|
|
|
|
|
|
|
| 43 |
@tool("Web Search Tool")
|
| 44 |
def web_search_tool(question: str) -> str:
|
| 45 |
"""Search the web to answer a question.
|
|
|
|
| 53 |
Raises:
|
| 54 |
RuntimeError: If processing fails"""
|
| 55 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
|
| 57 |
|
| 58 |
response = client.models.generate_content(
|
|
|
|
| 64 |
)
|
| 65 |
|
| 66 |
return response.text
|
|
|
|
| 67 |
except Exception as e:
|
| 68 |
raise RuntimeError(f"Processing failed: {str(e)}")
|
| 69 |
|
|
|
|
| 177 |
@tool("Document Analysis Tool")
|
| 178 |
def document_analysis_tool(question: str, file_path: str) -> str:
|
| 179 |
"""Answer a question about a document file. Supported document types include:
|
| 180 |
+
.txt, .csv, .xml, .rtf, .pdf, .md, .html, .css, .js, .py
|
| 181 |
|
| 182 |
Args:
|
| 183 |
question (str): Question about a document file
|
|
|
|
| 324 |
|
| 325 |
document_analysis_agent = Agent(
|
| 326 |
role="Document Analysis Agent",
|
| 327 |
+
goal="Analyze document of type .txt, .csv, .xml, .rtf, .pdf, .md, .html, .css, .js, .py to help answer question \"{question}\"",
|
| 328 |
backstory="As an expert document analysis assistant, you analyze the document to help answer the question.",
|
| 329 |
allow_delegation=False,
|
| 330 |
llm=AGENT_MODEL,
|
|
|
|
| 383 |
audio_analysis_agent,
|
| 384 |
video_analysis_agent,
|
| 385 |
youtube_analysis_agent,
|
| 386 |
+
#document_analysis_agent,
|
| 387 |
code_generation_agent,
|
| 388 |
code_execution_agent],
|
| 389 |
manager_agent=manager_agent,
|
|
|
|
| 396 |
if file_path:
|
| 397 |
question = f"{question} File path: {file_path}."
|
| 398 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 399 |
initial_answer = crew.kickoff(inputs={"question": question})
|
| 400 |
final_answer = get_final_answer(FINAL_ANSWER_MODEL, question, str(initial_answer))
|
| 401 |
|