Import source: axon/routers/tavily
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
from fastapi import APIRouter
|
||||||
|
|
||||||
|
from axon.models import (
|
||||||
|
CrawlRequest,
|
||||||
|
ExtractRequest,
|
||||||
|
MapRequest,
|
||||||
|
SearchRequest,
|
||||||
|
TavilyExtractRequest,
|
||||||
|
TavilySearchRequest,
|
||||||
|
)
|
||||||
|
from axon.routers.crawl import crawl
|
||||||
|
from axon.routers.extract import extract
|
||||||
|
from axon.routers.map import map_site
|
||||||
|
from axon.routers.search import search
|
||||||
|
|
||||||
|
router = APIRouter(prefix="/tavily")
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/search")
|
||||||
|
async def tavily_search(request: TavilySearchRequest):
|
||||||
|
include_answer = request.include_answer not in (False, "false", "none", "basic")
|
||||||
|
response = await search(
|
||||||
|
SearchRequest(
|
||||||
|
query=request.query,
|
||||||
|
max_results=request.max_results,
|
||||||
|
search_depth=request.search_depth,
|
||||||
|
include_answer=include_answer,
|
||||||
|
include_raw_content=request.include_raw_content,
|
||||||
|
domains_whitelist=request.include_domains,
|
||||||
|
domains_blacklist=request.exclude_domains,
|
||||||
|
topic=request.topic,
|
||||||
|
time_range=request.time_range,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return response.model_dump()
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/extract")
|
||||||
|
async def tavily_extract(request: TavilyExtractRequest):
|
||||||
|
urls = [request.urls] if isinstance(request.urls, str) else request.urls
|
||||||
|
response = await extract(ExtractRequest(urls=urls, include_images=request.include_images))
|
||||||
|
return response.model_dump()
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/crawl")
|
||||||
|
async def tavily_crawl(request: CrawlRequest):
|
||||||
|
return (await crawl(request)).model_dump()
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/map")
|
||||||
|
async def tavily_map(request: MapRequest):
|
||||||
|
return (await map_site(request)).model_dump()
|
||||||
Reference in New Issue
Block a user