Files
langgraph/examples/research/webscraper.py
T
2023-08-18 12:30:24 +01:00

39 lines
910 B
Python

# main.py
from duckduckgo_search import DDGS
from fastapi import FastAPI
from langchain.document_loaders import AsyncHtmlLoader
from langchain.document_transformers import Html2TextTransformer
ddgs = DDGS()
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/query")
def read_item(query: str):
query = query.strip().strip('"')
search_results = ddgs.text(query)
urls_to_look = []
for res in search_results:
if res.get("href", None):
urls_to_look.append(res["href"])
if len(urls_to_look) >= 4:
break
# Relevant urls
# Load, split, and add new urls to vectorstore
if urls_to_look:
loader = AsyncHtmlLoader(urls_to_look)
html2text = Html2TextTransformer()
docs = loader.load()
docs = list(html2text.transform_documents(docs))
else:
docs = []
return docs