# SPDX-License-Identifier: Apache-2.0 # © 2026 Lutar, Stephen P. — SZL Holdings # Doctrine v11 LOCKED 749/14/163. Authored by Yachay (CTO). # DCO: Signed-off-by: Yachay # Co-Authored-By: Perplexity Computer Agent """ hf_inference_voter.py — Three HF Inference free-tier voters: - hf-inference-llama (Meta-Llama-3.1-70B-Instruct) - hf-inference-mistral (Mistral-7B-Instruct-v0.3) - hf-inference-qwen (Qwen2.5-72B-Instruct via HF) All three use HF_TOKEN. Off by default; activate by including voter_id in the `voters` list AND having HF_TOKEN in the env. """ from __future__ import annotations import os from typing import Any, Optional import httpx from .base_voter import BaseVoter HF_INFERENCE_BASE = "https://api-inference.huggingface.co/models" class _HFInferenceBaseVoter(BaseVoter): ENV_VARS = ["HF_TOKEN"] LICENSE = "various-open" PROVIDER = "HuggingFace Inference API" BFCL_SCORE = None async def _call( self, prompt: str, system: Optional[str] = None, max_tokens: int = 512, temperature: float = 0.7, **kwargs: Any, ) -> str: token = os.environ.get("HF_TOKEN", "") headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} messages = [] if system: messages.append({"role": "system", "content": system}) messages.append({"role": "user", "content": prompt}) payload = { "model": self.MODEL_ID, "messages": messages, "max_tokens": max_tokens, "temperature": temperature, } url = "https://api-inference.huggingface.co/v1/chat/completions" async with httpx.AsyncClient(timeout=30.0) as client: resp = await client.post(url, json=payload, headers=headers) resp.raise_for_status() data = resp.json() return data["choices"][0]["message"]["content"] class HFInferenceLlamaVoter(_HFInferenceBaseVoter): VOTER_ID = "hf-inference-llama" LICENSE = "Llama 3 Community" PROVIDER = "HuggingFace Inference API (Meta-Llama)" CONTEXT_WINDOW = 131072 MODEL_ID = "meta-llama/Meta-Llama-3.1-70B-Instruct" class HFInferenceMistralVoter(_HFInferenceBaseVoter): VOTER_ID = "hf-inference-mistral" LICENSE = "Apache-2.0" PROVIDER = "HuggingFace Inference API (Mistral)" CONTEXT_WINDOW = 32768 MODEL_ID = "mistralai/Mistral-7B-Instruct-v0.3" class HFInferenceQwenVoter(_HFInferenceBaseVoter): VOTER_ID = "hf-inference-qwen" LICENSE = "Apache-2.0" PROVIDER = "HuggingFace Inference API (Qwen)" CONTEXT_WINDOW = 131072 MODEL_ID = "Qwen/Qwen2.5-72B-Instruct"