Spaces:
Sleeping
Sleeping
add test
Browse files
app.py
CHANGED
|
@@ -11,6 +11,10 @@ from langchain_community.retrievers import WikipediaRetriever
|
|
| 11 |
from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
|
| 12 |
from langchain_community.utilities import WikipediaAPIWrapper
|
| 13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
from langchain_core import messages
|
| 15 |
from langchain_core.messages import (
|
| 16 |
BaseMessage,
|
|
@@ -173,17 +177,29 @@ class BasicAgent:
|
|
| 173 |
|
| 174 |
def wiki_search(self, state: AnswerState) -> Dict[str, Any]:
|
| 175 |
print("[wiki_search] Searching for: " + str(state["wiki_request"]))
|
| 176 |
-
|
| 177 |
wikipedia.set_lang("en")
|
| 178 |
page_titles = wikipedia.search(
|
| 179 |
state["wiki_request"], results=1
|
| 180 |
)
|
| 181 |
-
print(
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
|
|
|
|
| 186 |
wiki_tool = WikipediaRetriever(
|
|
|
|
| 187 |
top_k_results=1,
|
| 188 |
doc_content_chars_max=100000,
|
| 189 |
load_all_available_meta=True,
|
|
@@ -198,20 +214,23 @@ class BasicAgent:
|
|
| 198 |
+ results[0].page_content,
|
| 199 |
)
|
| 200 |
)
|
| 201 |
-
|
| 202 |
-
|
| 203 |
-
|
| 204 |
-
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
| 208 |
-
|
| 209 |
-
|
| 210 |
-
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
|
|
|
|
|
|
| 214 |
)
|
|
|
|
| 215 |
return {"messages": state["messages"]}
|
| 216 |
|
| 217 |
def python_exec(self, state: AnswerState) -> Dict[str, Any]:
|
|
|
|
| 11 |
from langchain_community.tools import DuckDuckGoSearchRun, WikipediaQueryRun
|
| 12 |
from langchain_community.utilities import WikipediaAPIWrapper
|
| 13 |
|
| 14 |
+
import wikipedia
|
| 15 |
+
import wikipediaapi
|
| 16 |
+
from bs4 import BeautifulSoup
|
| 17 |
+
|
| 18 |
from langchain_core import messages
|
| 19 |
from langchain_core.messages import (
|
| 20 |
BaseMessage,
|
|
|
|
| 177 |
|
| 178 |
def wiki_search(self, state: AnswerState) -> Dict[str, Any]:
|
| 179 |
print("[wiki_search] Searching for: " + str(state["wiki_request"]))
|
| 180 |
+
|
| 181 |
wikipedia.set_lang("en")
|
| 182 |
page_titles = wikipedia.search(
|
| 183 |
state["wiki_request"], results=1
|
| 184 |
)
|
| 185 |
+
print("[wiki_search] Fetching the whole page")
|
| 186 |
+
wiki = wikipediaapi.Wikipedia(language='en', user_agent='gaia_example')
|
| 187 |
+
page = wiki.page(page_titles[0])
|
| 188 |
+
if page.exists():
|
| 189 |
+
html_url = f"https://en.wikipedia.org/wiki/{page.title.replace(' ', '_')}"
|
| 190 |
+
html = requests.get(html_url).text
|
| 191 |
+
soup = BeautifulSoup(html, 'html.parser')
|
| 192 |
+
state["messages"].append(
|
| 193 |
+
ChatMessage(
|
| 194 |
+
role="user",
|
| 195 |
+
content="WikipediaAgent tool results are: " + str(soup)
|
| 196 |
+
)
|
| 197 |
+
)
|
| 198 |
+
return {"messages": state["messages"]}
|
| 199 |
|
| 200 |
+
print("[wiki_search] Fetching the page via wikiRetriever")
|
| 201 |
wiki_tool = WikipediaRetriever(
|
| 202 |
+
wiki_client = wikipedia,
|
| 203 |
top_k_results=1,
|
| 204 |
doc_content_chars_max=100000,
|
| 205 |
load_all_available_meta=True,
|
|
|
|
| 214 |
+ results[0].page_content,
|
| 215 |
)
|
| 216 |
)
|
| 217 |
+
return {"messages": state["messages"]}
|
| 218 |
+
|
| 219 |
+
print("[wiki_search] Fetching the page via WikipediaAPIWrapper")
|
| 220 |
+
wiki_tool = WikipediaAPIWrapper(
|
| 221 |
+
wiki_client = wikipedia,
|
| 222 |
+
top_k_results=1,
|
| 223 |
+
doc_content_chars_max=100000,
|
| 224 |
+
load_all_available_meta=True,
|
| 225 |
+
)
|
| 226 |
+
results = wiki_tool.run(str(state["wiki_request"]))
|
| 227 |
+
print(f"Wiki results: {results}")
|
| 228 |
+
state["messages"].append(
|
| 229 |
+
ChatMessage(
|
| 230 |
+
role="user",
|
| 231 |
+
content="WikipediaAgent tool results are: " + results,
|
| 232 |
)
|
| 233 |
+
)
|
| 234 |
return {"messages": state["messages"]}
|
| 235 |
|
| 236 |
def python_exec(self, state: AnswerState) -> Dict[str, Any]:
|