Spaces:
Running
Running
Commit ·
60ee681
1
Parent(s): 8b86bcd
Fixing get website tool
Browse files- main.py +2 -2
- src/manager/manager.py +2 -0
- src/tools/default_tools/get_website_tool.py +14 -5
main.py
CHANGED
|
@@ -180,7 +180,7 @@ no_auth = args.no_auth
|
|
| 180 |
|
| 181 |
with gr.Blocks(title="HASHIRU AI", css=css, fill_width=True, fill_height=True) as demo:
|
| 182 |
model_manager = GeminiManager(
|
| 183 |
-
gemini_model="gemini-2.
|
| 184 |
|
| 185 |
def update_model(modeIndexes: List[int]):
|
| 186 |
modes = [Mode(i+1) for i in modeIndexes]
|
|
@@ -230,6 +230,6 @@ if __name__ == "__main__":
|
|
| 230 |
import uvicorn
|
| 231 |
|
| 232 |
if no_auth:
|
| 233 |
-
demo.launch(favicon_path="favicon.ico", server_name="localhost")
|
| 234 |
else:
|
| 235 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
|
| 180 |
|
| 181 |
with gr.Blocks(title="HASHIRU AI", css=css, fill_width=True, fill_height=True) as demo:
|
| 182 |
model_manager = GeminiManager(
|
| 183 |
+
gemini_model="gemini-2.5-flash-preview-04-17", modes=[mode for mode in Mode])
|
| 184 |
|
| 185 |
def update_model(modeIndexes: List[int]):
|
| 186 |
modes = [Mode(i+1) for i in modeIndexes]
|
|
|
|
| 230 |
import uvicorn
|
| 231 |
|
| 232 |
if no_auth:
|
| 233 |
+
demo.launch(favicon_path="favicon.ico", server_name="localhost", share=True)
|
| 234 |
else:
|
| 235 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|
src/manager/manager.py
CHANGED
|
@@ -20,6 +20,7 @@ from google.genai.errors import APIError
|
|
| 20 |
import backoff
|
| 21 |
import mimetypes
|
| 22 |
import json
|
|
|
|
| 23 |
|
| 24 |
logger = logging.getLogger(__name__)
|
| 25 |
handler = logging.StreamHandler(sys.stdout)
|
|
@@ -326,6 +327,7 @@ class GeminiManager:
|
|
| 326 |
messages = messages + function_call_requests
|
| 327 |
yield messages
|
| 328 |
except Exception as e:
|
|
|
|
| 329 |
print(messages)
|
| 330 |
print(chat_history)
|
| 331 |
messages.append({
|
|
|
|
| 20 |
import backoff
|
| 21 |
import mimetypes
|
| 22 |
import json
|
| 23 |
+
import traceback
|
| 24 |
|
| 25 |
logger = logging.getLogger(__name__)
|
| 26 |
handler = logging.StreamHandler(sys.stdout)
|
|
|
|
| 327 |
messages = messages + function_call_requests
|
| 328 |
yield messages
|
| 329 |
except Exception as e:
|
| 330 |
+
traceback.print_exc(file=sys.stdout)
|
| 331 |
print(messages)
|
| 332 |
print(chat_history)
|
| 333 |
messages.append({
|
src/tools/default_tools/get_website_tool.py
CHANGED
|
@@ -21,9 +21,9 @@ class GetWebsite():
|
|
| 21 |
},
|
| 22 |
"output_type": {
|
| 23 |
"type": "string",
|
| 24 |
-
"enum": ["summary", "full_text"],
|
| 25 |
-
"description": "The type of output to return. 'summary' returns a summary of the text, 'full_text' returns the full text content.",
|
| 26 |
-
"default": "
|
| 27 |
},
|
| 28 |
"css_selector": {
|
| 29 |
"type": "string",
|
|
@@ -121,17 +121,26 @@ class GetWebsite():
|
|
| 121 |
response = requests.get(url, headers=headers, timeout=10)
|
| 122 |
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
|
| 123 |
response.encoding = response.apparent_encoding # Handle encoding
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 124 |
|
| 125 |
# Parse the content using BeautifulSoup
|
| 126 |
-
soup = BeautifulSoup(response.
|
| 127 |
|
| 128 |
if css_selector:
|
| 129 |
# Extract text from the selected elements
|
| 130 |
elements = soup.select(css_selector)
|
| 131 |
-
text = ('\n'.join([element.get_text() for element in elements]))
|
|
|
|
| 132 |
else:
|
| 133 |
# Extract text from the parsed HTML
|
| 134 |
text = soup.get_text()
|
|
|
|
| 135 |
|
| 136 |
if output_type == "summary":
|
| 137 |
# Summarize the text
|
|
|
|
| 21 |
},
|
| 22 |
"output_type": {
|
| 23 |
"type": "string",
|
| 24 |
+
"enum": ["summary", "full_text", "html"],
|
| 25 |
+
"description": "The type of output to return. 'summary' returns a summary of the text, 'full_text' returns the full text content, and 'html' returns the raw HTML content.",
|
| 26 |
+
"default": "summary"
|
| 27 |
},
|
| 28 |
"css_selector": {
|
| 29 |
"type": "string",
|
|
|
|
| 121 |
response = requests.get(url, headers=headers, timeout=10)
|
| 122 |
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
|
| 123 |
response.encoding = response.apparent_encoding # Handle encoding
|
| 124 |
+
if output_type == "html":
|
| 125 |
+
# Return the raw HTML content
|
| 126 |
+
return {
|
| 127 |
+
"status": "success",
|
| 128 |
+
"message": "Search completed successfully",
|
| 129 |
+
"output": response.text,
|
| 130 |
+
}
|
| 131 |
|
| 132 |
# Parse the content using BeautifulSoup
|
| 133 |
+
soup = BeautifulSoup(response.text, 'html.parser')
|
| 134 |
|
| 135 |
if css_selector:
|
| 136 |
# Extract text from the selected elements
|
| 137 |
elements = soup.select(css_selector)
|
| 138 |
+
text = ('\n'.join([element.get_text() for element in elements]))
|
| 139 |
+
text = text.encode('utf-8', 'ignore').decode('utf-8')
|
| 140 |
else:
|
| 141 |
# Extract text from the parsed HTML
|
| 142 |
text = soup.get_text()
|
| 143 |
+
text = text.encode('utf-8', 'ignore').decode('utf-8')
|
| 144 |
|
| 145 |
if output_type == "summary":
|
| 146 |
# Summarize the text
|