builder / hf_client.py
mgbam's picture
Update hf_client.py
ac4a3a2 verified
raw
history blame
1.41 kB
### hf_client.py
from huggingface_hub import InferenceClient, HfApi
from tavily import TavilyClient
import os
# HF Inference Client
# Supported billing targets
_VALID_BILL_TO = {"huggingface", "fairworksai", "groq"}
HF_TOKEN = os.getenv("HF_TOKEN")
if not HF_TOKEN:
raise RuntimeError(
"HF_TOKEN environment variable is not set. "
"Please set it to your Hugging Face API token."
)
def get_inference_client(model_id: str, provider: str = "auto") -> InferenceClient:
"""
Return an InferenceClient configured with the correct provider and billing target.
- If model_id == "moonshotai/Kimi-K2-Instruct", force provider to "groq".
- If the requested provider is not one of the supported billing targets,
default billing to "groq".
"""
# force certain models onto groq hardware
if model_id == "moonshotai/Kimi-K2-Instruct":
provider = "groq"
# determine billing target
bill_to = provider if provider in _VALID_BILL_TO else "groq"
return InferenceClient(
provider=provider,
api_key=HF_TOKEN,
bill_to=bill_to
)
# Tavily Search Client
TAVILY_API_KEY = os.getenv('TAVILY_API_KEY')
tavily_client = None
if TAVILY_API_KEY:
try:
tavily_client = TavilyClient(api_key=TAVILY_API_KEY)
except Exception as e:
print(f"Failed to initialize Tavily client: {e}")
tavily_client = None