Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -11,6 +11,7 @@ from langchain_community.tools import DuckDuckGoSearchResults
|
|
| 11 |
from langchain_google_community import GoogleSearchAPIWrapper
|
| 12 |
from langchain_community.document_loaders import YoutubeLoader,PyPDFLoader,Docx2txtLoader,TextLoader,ArxivLoader
|
| 13 |
from langchain_community.document_loaders import WikipediaLoader
|
|
|
|
| 14 |
import wikipedia
|
| 15 |
import speech_recognition as sr
|
| 16 |
import tempfile
|
|
@@ -234,7 +235,29 @@ def wiki_search(query: str) -> str:
|
|
| 234 |
]
|
| 235 |
)
|
| 236 |
return {"wiki_results": formatted_search_docs}
|
| 237 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 238 |
#### add duckduckGoSearch into tool
|
| 239 |
tools = [
|
| 240 |
divide,
|
|
@@ -250,6 +273,7 @@ tools = [
|
|
| 250 |
# youtube_transcript_tool,
|
| 251 |
# transcribe_audio,
|
| 252 |
# analyze_python_code,
|
|
|
|
| 253 |
arvix_search,
|
| 254 |
wiki_search,
|
| 255 |
GoogleSearchAPIWrapper(k=10).run,
|
|
@@ -309,6 +333,7 @@ def assistant(state: AgentState, llm_with_tools):
|
|
| 309 |
Tools:
|
| 310 |
1. GoogleSearchAPIWrapper(k=10).run
|
| 311 |
2. PDF access
|
|
|
|
| 312 |
|
| 313 |
- FINAL ANSWER: 0.1777
|
| 314 |
|
|
@@ -336,7 +361,8 @@ class BasicAgent:
|
|
| 336 |
raise ValueError("GOOGLE_CSE_ID environment variable not set or loaded.")
|
| 337 |
|
| 338 |
# self.visionLLM = ChatOpenAI(model="gpt-4o",api_key=api_key) # multi-modal LLM
|
| 339 |
-
self.LLM = ChatOpenAI(model="gpt-4o",api_key=api_key) # manager LLM
|
|
|
|
| 340 |
self.LLM_with_tools = self.LLM.bind_tools(tools, parallel_tool_calls=False)
|
| 341 |
|
| 342 |
assistant_with_llm = lambda state:assistant(state, self.LLM_with_tools)
|
|
|
|
| 11 |
from langchain_google_community import GoogleSearchAPIWrapper
|
| 12 |
from langchain_community.document_loaders import YoutubeLoader,PyPDFLoader,Docx2txtLoader,TextLoader,ArxivLoader
|
| 13 |
from langchain_community.document_loaders import WikipediaLoader
|
| 14 |
+
from langchain_tavily import TavilySearch
|
| 15 |
import wikipedia
|
| 16 |
import speech_recognition as sr
|
| 17 |
import tempfile
|
|
|
|
| 235 |
]
|
| 236 |
)
|
| 237 |
return {"wiki_results": formatted_search_docs}
|
| 238 |
+
|
| 239 |
+
@tool
|
| 240 |
+
def web_search(query: str) -> str:
|
| 241 |
+
"""Search Tavily on the web for a query and return maximum 3 results.
|
| 242 |
+
|
| 243 |
+
Args:
|
| 244 |
+
query: The search query."""
|
| 245 |
+
search_docs = TavilySearch(max_results=3).invoke({'query': query})
|
| 246 |
+
|
| 247 |
+
print(f"Search query: {query}")
|
| 248 |
+
print(f"Search results count: {len(search_docs)}")
|
| 249 |
+
|
| 250 |
+
if isinstance(search_docs, dict):
|
| 251 |
+
search_docs = search_docs.get('results', [])
|
| 252 |
+
|
| 253 |
+
|
| 254 |
+
formatted_search_docs = "\n\n---\n\n".join(
|
| 255 |
+
[
|
| 256 |
+
f"""<Document source="{doc.get('url', '')}" page="{doc.get('title', '')}"/>\n{doc.get('content', '')}\n</Document>"""
|
| 257 |
+
for doc in search_docs
|
| 258 |
+
])
|
| 259 |
+
return {"web_results": formatted_search_docs}
|
| 260 |
+
|
| 261 |
#### add duckduckGoSearch into tool
|
| 262 |
tools = [
|
| 263 |
divide,
|
|
|
|
| 273 |
# youtube_transcript_tool,
|
| 274 |
# transcribe_audio,
|
| 275 |
# analyze_python_code,
|
| 276 |
+
web_search,
|
| 277 |
arvix_search,
|
| 278 |
wiki_search,
|
| 279 |
GoogleSearchAPIWrapper(k=10).run,
|
|
|
|
| 333 |
Tools:
|
| 334 |
1. GoogleSearchAPIWrapper(k=10).run
|
| 335 |
2. PDF access
|
| 336 |
+
3. web_search
|
| 337 |
|
| 338 |
- FINAL ANSWER: 0.1777
|
| 339 |
|
|
|
|
| 361 |
raise ValueError("GOOGLE_CSE_ID environment variable not set or loaded.")
|
| 362 |
|
| 363 |
# self.visionLLM = ChatOpenAI(model="gpt-4o",api_key=api_key) # multi-modal LLM
|
| 364 |
+
# self.LLM = ChatOpenAI(model="gpt-4o",api_key=api_key) # manager LLM
|
| 365 |
+
self.LLM = ChatOpenAI(model="gpt-4.1",api_key=api_key) # manager LLM
|
| 366 |
self.LLM_with_tools = self.LLM.bind_tools(tools, parallel_tool_calls=False)
|
| 367 |
|
| 368 |
assistant_with_llm = lambda state:assistant(state, self.LLM_with_tools)
|