JairoDanielMT's picture
Upload 12 files
bfb5d08 verified
from langchain.agents import tool
import requests
import os
from dotenv import load_dotenv
from urllib.parse import urljoin
load_dotenv()
API_URL = os.getenv("API_DATABASE_VECTORIAL_URL")
ENDPOINTS = {
"base": "/db_vectorial", # base path
"list": "/list",
"search": "/search",
"exists": "/exists",
}
@tool
def exists_database(database_name: str) -> str:
"""Check if a database exists."""
url = urljoin(API_URL, f"{ENDPOINTS['base']}{ENDPOINTS['exists']}/{database_name}")
return str(requests.get(url).json())
@tool
def list_databases() -> str:
"""List databases."""
url = urljoin(API_URL, f"{ENDPOINTS['base']}{ENDPOINTS['list']}")
return str(requests.get(url).json())
@tool
def search_database(
database_name: str, query: str, k: int = 5, source: str = None
) -> str:
"""Search in a database."""
url = urljoin(API_URL, f"{ENDPOINTS['base']}{ENDPOINTS['search']}")
data = {"database_name": database_name, "query": query, "k": k, "source": source}
response = requests.post(url, json=data)
return str(response.json())