KingNish commited on
Commit
ef27d85
1 Parent(s): 3d11659

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -3
app.py CHANGED
@@ -157,7 +157,8 @@ async def web_search_and_extract(
157
  safesearch: str = "moderate",
158
  region: str = "wt-wt",
159
  backend: str = "api",
160
- max_chars: int = 6000 # Adjust based on token limit
 
161
  ):
162
  """
163
  Searches using WEBS, extracts text from the top results, and returns both.
@@ -185,11 +186,38 @@ async def web_search_and_extract(
185
  extracted_results.append({"link": link, "text": None})
186
  else:
187
  extracted_results.append({"link": None, "text": None})
188
-
189
- return JSONResponse(content=jsonable_encoder({"search_results": search_results, "extracted_results": extracted_results}))
 
 
 
190
  except Exception as e:
191
  raise HTTPException(status_code=500, detail=f"Error during search and extraction: {e}")
192
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  @app.get("/api/maps")
194
  async def maps(
195
  q: str,
@@ -240,6 +268,7 @@ async def youtube_transcript(
240
  return JSONResponse(content=jsonable_encoder(transcript))
241
  except Exception as e:
242
  raise HTTPException(status_code=500, detail=f"Error getting YouTube transcript: {e}")
 
243
  import requests
244
  @app.get("/weather/json/{location}")
245
  def get_weather_json(location: str):
 
157
  safesearch: str = "moderate",
158
  region: str = "wt-wt",
159
  backend: str = "api",
160
+ max_chars: int = 6000
161
+ extract_only: bool = False
162
  ):
163
  """
164
  Searches using WEBS, extracts text from the top results, and returns both.
 
186
  extracted_results.append({"link": link, "text": None})
187
  else:
188
  extracted_results.append({"link": None, "text": None})
189
+ if extract_only:
190
+ return JSONResponse(content=jsonable_encoder({extracted_results}))
191
+ else:
192
+ return JSONResponse(content=jsonable_encoder({"search_results": search_results, "extracted_results": extracted_results}))
193
+ return
194
  except Exception as e:
195
  raise HTTPException(status_code=500, detail=f"Error during search and extraction: {e}")
196
 
197
+ @app.get("/api/website_summarizer")
198
+ async def website_summarizer(url: str):
199
+ """Summarizes the content of a given URL using a chat model."""
200
+ try:
201
+ # Extract text from the given URL
202
+ response = requests.get(url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0"})
203
+ response.raise_for_status()
204
+ visible_text = extract_text_from_webpage(response.text)
205
+ if len(visible_text) > 7500: # Adjust max_chars based on your needs
206
+ visible_text = visible_text[:7500] + "..."
207
+
208
+ # Use chat model to summarize the extracted text
209
+ with WEBS() as webs:
210
+ summary_prompt = f"Summarize this in detail in Paragraph: {visible_text}"
211
+ summary_result = webs.chat(keywords=summary_prompt, model="gpt-3.5")
212
+
213
+ # Return the summary result
214
+ return JSONResponse(content=jsonable_encoder({summary_result}))
215
+
216
+ except requests.exceptions.RequestException as e:
217
+ raise HTTPException(status_code=500, detail=f"Error fetching or processing URL: {e}")
218
+ except Exception as e:
219
+ raise HTTPException(status_code=500, detail=f"Error during summarization: {e}")
220
+
221
  @app.get("/api/maps")
222
  async def maps(
223
  q: str,
 
268
  return JSONResponse(content=jsonable_encoder(transcript))
269
  except Exception as e:
270
  raise HTTPException(status_code=500, detail=f"Error getting YouTube transcript: {e}")
271
+
272
  import requests
273
  @app.get("/weather/json/{location}")
274
  def get_weather_json(location: str):